rime的c#笔记

c#的基本格式和c差不多,依旧是分号隔开,tab缩进,//注释(也可以注销代码)

程序调试:

1)f11,逐语句调试

2)f10,逐个过程调试

3)断点调试

注释:

1)//单行注释

2)/文本/多行注释

3)///文档注释

快捷键:

f12 原函数

ctrl+k+d 对齐

ctrl+s 保存

ctrl+z 撤销

ctrl+k+u 取消注释

ctrl+k+c 注释

#region+注释+代码+#endregion 折叠代码

运算符计算:

±*/%

数据类型:

bool bool 值只有真或假。

整数 int eg:int a;a=100;or int a=100; //和c一样,但是无法转化。

小数 double 用法与int一致

     float //要在赋值后加f。          

字符串 string zhangs=“zhahhzah”;//可以存空

字符节 char zadas=‘k’;//不能存空

金钱 decimal m=234m;//金钱,精度高,多用于金钱,后跟m代表钱,不带, 自定义为double

小数保留:

用占位符处理,eg:double   a=10*0.1/3;

                         console.writeline("{0:0.00}",a);//产生的数字就变成两位小数了





数据转化:

隐式类型转化:不需要特殊声明,直接书写即可  double=int;

强制类型转化(显式类型转化):

				语法:

					(要转化类型)代转化值

				eg:

					double  b=21.5;

					int  c=(int)b;//(c就等于21了)

convert强制类型转化//convert的中文翻译也是转化

					  使用时注意面子上要过得去,起码能转化。

					   转化成int时,16,32,64,是位数。

				eg:

					string a=“123”;

					double b=convert.todouble(a);

语法:

1.console.writeline(“hello world”);

等价于printf,和python的print不一样,依旧不能使用‘ ’。

2.console.readkey();

暂停程序,按下任意键继续

3.占位符

eg:console.writeline(“oo{0},bb{1}”,n1,n2);

与c的%d类似。

4.console.readline()

读取字符串

5.@

1.使\转义 eg:@“\n+\k”。

2.将文本按编辑的原格式输出。

6.convert转化;int.parse;double.parse;int.tryparse;

强制将变量转化类型,但需要变量基本接近。

输入方式:double a=convert.todouble(console.readline());

parse转化方法:int number=int.parse(“123”)

tryparse转化:int number=100;

		int.tryparse("123",number)

如果能转化,把值赋给number,不能转化,把number值变成0;

7.+±-运算符还有+=,-=,/=,%=

+±-能力和vc中的c一样,没什么特别的。但计算顺序是从左到右边。

+= 等同于a+=2,a=a+2;

8.关系运算符

<

=

<=

!=

用bool来描述对或者错

bool b = 12>10;

   return   true//or false

9.逻辑运算符

&& 与

|| 或

! 非

逻辑与优先级高于或,但写代码时切记括起来,明确不容易出错。

10.if语句

if(判断条件)//真执行,假不执行。

{

内容;

}

一种情况判断。

11.if —else语句

if(判断语句)

{

内容;

}

else

{

内容;

}

两种情况判断//else只和最近的if配对

12.if-elseif语句

if(判断语句)

{

内容;

}

else if(判断语句)

{

内容;

}

else

{

内容;

}

多种判断情况

13.异常捕获,try-catch语法

try//try和catch之间不能有其他代码

{

可能出bug的语法;

}

catch

{

出bug后我运行的语法;

}

哪里函数有可能出异常,try它

正常运行try,bug走catch。

灵活应用bool可以达到内外执行代码的作用:bool a=true;

                                                                catch{a=false;}

                                                                if(a)

                                                                {代码内容;}

14.变量作用域。

和c接近,目前没有什么不同。

15.switch -case语句

switch(值)

{

case 值1:执行代码;

	break;

case 值2:执行代码;

	break;

..........

default :执行代码;

	break;

}

16.while循环

while(条件)

{

内容;

}

条件成立,内容进行。

break打破循环。

17.do while循环

do

{

内容;

}while();

与c一个吊样

18.continue

和c一个吊样,回到上一次循环。//中文意思是继续。懂得都懂

19.for语句

for(i=0;i<10;i++)

{

}

依旧一个吊样子。

20.三元表达式

(判断条件)?(内容一):(内容二)

和c一个吊样子,无奈

21.随机数的产生:

random r=new random();//r是变量

int s=r.next(1,10);

用两步产生随机数

可以去到最左边的,不能取到最右边的

2.random.range(0,3);

从中选一个,0—2中。

22.常量

const int n=20;

const+变量类型+(变量名=值);

常量不能改变

变量可以多次赋值

23.枚举

格式:

【public】 enum 枚举名

{

值1,

值2,

值3,

.......

}//最后一个可以不加 ,

解释:

public:访问修饰符,它是最高权限,哪里都可以用,在枚举中不用必须加,对于【】,不想加也没问题

enum:枚举关键字,声明,我要开始枚举了

枚举名:爱咋命名咋明明,别作就行

一般枚举位于namespace的位置下面,我觉得可以将枚举看成一种库,自定义的数据库。也许对于大型开发有作用

同时,枚举可以和int相互转化(默认),如果没有定义内部数字,那么他强制转化的数字和数组一样,从0开始,按顺序转化数字。如果是数字文字混合,好比a,2,b.那么强制转化{int b=(int)age.a;}其中为,0,2,3.规律就是往后加一,有数字就用数字。

那如何将输入的字符转化成枚举呢?(不用太了解)

(枚举的名字)Enum.parse(typof(枚举的名字),输入的字符);

无论何时,枚举的名字都要进行声明并且字符必须要是枚举类型里面有的东西。没有就报错,如果转换的是数字,则正常进行。输入1那么对应的就是枚举中与整数对应的1。

格式eg:

public enum age

{

我,

是,

你

}

引用:age a=age.你;

24.结构 //变量类型

一次声明多个不同类型的变量(c语言侵权警告)

位置:namespace

【public】 struct 结构名 //再次声明public是权限,可以省略

{

【public】 变量  _变量名;//字段吧,_+变量名是行业规范,public是让

  ....................................          //变量公开,让他在main中也可以用

}

eg:

引用:

结构名 自己定义一个接收的名字;

定义名字._结构体内部的名字;

…;

25.数组

数组类型 【 】数组名=new 数组类型【长度】;

目前观察和c一样。

eg:

int [ ] number=new int[10];

number[6]=10;

(第一种和第二种必须掌握);

number.length//数组长度,count好像也可以返回长度,格式一样但本质好像不一样。

26.方法(函数)

c#中的方法等价于c中的函数,格式如上。

static是面向对象要掌握的东西,暂时没细学。

在main函数中调用,需要,program.方法名(值);

也就是类名.方法名(值);

其实,这就和一直接触的console.readline();一样。console是类,readline是函数名字,然后括号,引入值,每个函数都有自己的值,因为readline的类型是string,所以他只能被string储存。也就印证了我们写方法时候的返回值的类型。

关于返回值类型,没有返回值的填void

//方法要以功能为主,不是用户为主,尽量要减少输入一类的字眼

27.return

1)在方法中返回方法的值

2)结束本次方法 //一般不会出现在主函数里面,用过的人都说好的不得了呢

28.array.sort()和array.reverse的简单用法

array.sort(数组):从小到大排序好

array.reverse(数组):倒着排序 //自己编也行,蛮简单的。

29.全局变量的设置

其实c#并没有全局变量的设置,我们可以依靠函数声明来处理达到接近全局变量的能力

eg:

public static int _number=10;

				     //这样就可以达到全局变量的作用,任何地方都可以应用。

30.out参数

eg:

public stratic void _shah (int [] a,out int b,out int c,out bool d)

{

b=a[0];

c=1;

d=true;

//用out声明的值,不需要加入return,但是他必须要在方法中有值	

}

引用(现在在主函数里面啦)

_shah( a ,out m,out c,out d)

然后,m,c,d的值就会改变(a是带入的数组)

如果函数有返回值,那就正常返回就可以了,out的赋值在函数的out c中已经结束了。

	可怜的c#,没有结构体

31.ref参数

ref一用六亲不认

把传到给函数的值,在函数里面改变了,不需要return。

有点类似指针,但绝对不能用它比较,只是有点接近。

refect也许是他的全称,映射,思考。

要求:

在方法的外部必须对ref对象赋值。

32.params参数

要点:

1.参数数组必须是形参最后一个参数,说人话就是把他放最后。

2.params的能力是将输入的多个数字自动转变成数组。

3.params也是可以正常识别数组的(引用函数的时候在params数组的位置直接放数组也ok。)

4.params一个方法里只能有一个。

33.方法的重载

意思:方法的名称相同,参数不同(有点c++的感觉,就是那个>>)

小心重名!!!! 参数一样名称一样,返回值不同或者相同就叫重名了

用法很简答,只需要写几个相同名字的方法就可以了,但是值不同,这样就可以重载了。在主函数里,你爱怎么引用就怎么引用。但是不同的引用值结果也必然不同。

34.递归

用过都说好 (恶)

小笔记

递归结束后返回时也是一层一层的返回,所以如果有return ,那你十层递归也要返回十次才能达到第一层。而不是直接瞬闪回去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

rime_neko

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

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

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

打赏作者

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

抵扣说明:

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

余额充值