第二节 C#语言介绍

程序处理内存中的数据,这些数据的表现形式分为常量和变量。C#语言要求变量的名称必须以字母开头,并由字母,数字和下划线组成,且不能与C#中的关键字相同。所有的高级语言的变量命名都是一样的。C#语言的变量名也是大小写敏感的,这和C++Java是一样的。

备注:C#有一个关键字var,它用于“隐式”变量声明,即在声明变量的时候不指定数据类型,而是根据赋予的值来推断其数据类型。

C#中定义常量的方式有两种,一种叫做静态常量,另一种叫做动态常量。前者用“const”来定义,后者用“readonly”来定义。用const定义常量,类型必须属于值类型,同时此类型的初始化不能通过new来完成。相对于const而言,用readonly来定义常量要灵活的多。在Java语言中,主要是利用final关键字来定义常量。

以下是C#语言的运算符,按照优先级从高到低排列:

一元运算符                  ++,  --

/除运算符                 *,  /,  %

/减运算符                 +,  -

移位运算符                  <<,  >>

关系运算符                  <,  >,  <=,  >=,  ==,  !=

逻辑运算符                  &,  ^,  |

条件运算符                  && ||

三元运算符                  ? :

赋值运算符                  =,  *=,  /=,  %=,  +=,  -=

很多高级语言都提供了很多的运算符,但是使用率最高的也上面这些而已。

备注:括号是最高的优先级,任何表达式都可以使用括号来控制先后顺序。

C#的流程控制包括顺序结构,选择结构和循环结构。

选择结构包括if-elseswitch两种实现。

int x = 10;
if (x > 10){
    Console.WriteLine("x大于10");
} else {
    Console.WriteLine("x小于或等于10");
}

int y = 100;
switch (y)
{
    case 10:
        Console.WriteLine("y等于10"); 
        break;
    case 20:
        Console.WriteLine("y等于20");
        break;
    case 30:
        Console.WriteLine("y等于30");
        break;
    default:
        Console.WriteLine("y不确定");
        break;
}

循环结构包括forwhiledo-while以及foreach四种实现。

其中foreach主要用于集合数据的遍历,例如数组,List等。

// for示例
int r1 = 0;
for (int i = 1; i<=100; i++)
{
    r1 += i;
}
Console.WriteLine(r1);

// while示例
int i2 = 1, r2 = 0;
while (i2 <= 100)
{
    r2 += i2;
    i2++;
}
Console.WriteLine(r2);

// do-while示例
int i3 = 1, r3 = 0;
do
{
    r3 += i3;
    i3++;
} while (i3 <= 100);
Console.WriteLine(r3);

// foreach示例
int[] w = new int[] {1,2,3,4,5 };
foreach (int temp in w)
{
    Console.WriteLine(temp);
}

在循环体体中,我们可以使用continue来跳过本次循环,break来结束所有循环。

备注:虽然C#语言中以后goto语句,但是大部分高级语言中,都不怎么使用它。

C#字符串的操作

// 创建字符串
string str = "你好,C#";
Console.WriteLine(str);

// 字符串长度,中英文长度是一样的
int len = str.Length;
Console.WriteLine(len);

// 字符串累加
string str1 = str + "......";
Console.WriteLine(str1);

// 字符串比较
if (str == str1)
{
    Console.WriteLine("相同");
}
else
{
    Console.WriteLine("不相同");
}

// 字符串比较
if (String.Compare(str, str1) == 0)
{
    Console.WriteLine("相同");
}
else
{
    Console.WriteLine("不相同");
}

// 查找字符位置,没有找到返回-1
int pos = str.IndexOf('C');
Console.WriteLine(pos);

// 从指定位置开始删除后面所有字符
string str2 = str.Remove(2);
Console.WriteLine(str2);

// 替换字符,使用"-"替换掉","
string str3 = "a,b,c,d";
string str4 = str3.Replace(",","-");
Console.WriteLine(str4);

// 在指定位置开始插入新字符
string str5 = "he,c#";
string str6 = str5.Insert(2,"llo");
Console.WriteLine(str6);

// 从指定位置开始截取指定长度的字符
string str7 = "this is a test";
string str8 = str7.Substring(5, 2);
Console.WriteLine(str8);

// 按照指定字符将字符串拆分成字符串数组
string[] arr = str7.Split(' ');
for (int i=0; i<arr.Length; i++)
{
    Console.WriteLine(arr[i]);
}

文件操作

using System.IO;
using System.Collections.Generic;

// 写入文件,追加模式
string file = "./test.txt";
FileStream fs = new FileStream(file, FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("第一行");
sw.WriteLine("第二行");
sw.WriteLine("第三行");
sw.Close();
fs.Close();

// 读取文件
string[] data = System.IO.File.ReadAllLines(file);
Console.WriteLine(data[2]);

// 按行读取文件
IEnumerable<string> vs = File.ReadLines(file);
foreach (string line in vs)
{
    Console.WriteLine(line);
}

// 删除文件
if (System.IO.File.Exists(file))
{
    System.IO.File.Delete(file);
}

教学案例源代码下载:

https://download.csdn.net/download/konkon2012/23471862

备注:这是我们游戏开发系列教程的第一个课程,主要是编程语言的基础学习,优先学习C++编程语言,然后进行C#语言,最后才是Java语言,紧接着就是使用C++和DirectX来介绍游戏开发中的一些基础理论知识。我们游戏开发系列教程的第二个课程是Unity游戏引擎的学习。课程中如果有一些错误的地方,请大家留言指正,感激不尽!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咆哮的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值