C#笔记

控制台程序

console.writeLine(“想显示的内容”);

console.Readkey();  程序会暂停,任输一个键程序停止。

C#中的数据

int: 整数,10位数以下,如3,5,-10,10

double:小数,如3.14,10.5,-3.14.-5.10

char:'一个字符’   如‘A’,'b','男',' '

string:“字符串”  如“zhangsan”,“计算机”,”“  0个字符也可以。

decimal:储存金钱,在数字后加m/M, 如 decimal=5.65m

“+”:两边为数字类型为加法意义; 有一边不是数字类型为连接意义。

占位符应用:console.writeLine(“我叫{0},今年{1}岁,工资{2}元。”,name,age,salary);

交换两个变量:

 int a =10;

  int b =20;

  int temp;

  temp = a;

  a = b;

  b = temp;

console.ReadLine();

// 用于接收用户的输入,要定义一个string类型接收便存储用户输入的值。

算术运算符:+, –, *, /, %(取余)      二元运算符

   优先级:先乘除,后加减,先算括号,相同级从左往右,小括号可无限制套用。

数据类型转换

隐式转换:int----double(表达式中有一个double,其余均转double)

强制转换:(数据类型名)待转换值 

               如:    double pl = 3.14;

                         int i=(int) pl;

当类型兼容可用强制转换,会丢失精度。

字符串与数据之间的转换

             如:     int a = convert.ToInt32(待转字符串)

         convert.ToString 一切类型都可以转成字符串string类型。

转义字符

:换行。

:退格。

:有多个空格组成的一个字符,具有行与行之间对齐功能。

\:表示一个

”:表示”

句子前加@,表示后面的字符串不再转义,可以使字符串写在多行

当在@后面需输入引号,可用2个引号表示1个引号。

异常捕获

try(可能出现错误代码)

catch{出错后处理}

try{可能出现错误代码}

finally{无论是否出错,都会执行的代码}

自运算符

++:自加

--:自减

+=:自加一个较大的数

-=:自减一个较大的数

*=: 自乘一个较大的数

/=:自除一个较大的数

%=:自余一个较大的数

关系运算符

<, >, ==, !=, >=, <=

逻辑运算符

&&:与    两边都符合才成立

||   :    或    一边符合即成立

!:  非    真变假,假变真

“与”的优先级高于“或”

在运算中:“或”         前一项为true,不再运行后一项。

                   “与”        前一项为false,不再运行后一项。

闰年的运算:DateTime.IsLeapYear()

if 结构

if(条件)

语句;

if-else 结构

if(条件)

{语句1}

else

{语句2}

if- else if 结构

if(条件1)

{语句1}

else if (条件2)

{语句2}

else if(条件3)

{语句3}

……

switch-case 语法

switch(表达式或变量)

{

case 值1:语句块1;

break;

case 值2:语句块2;

break;

case 值3:语句块3

break;

}

while 循环的语法

while(循环条件)

{

循环体

}

do-while 语法

do

{

循环体

}

while(条件);

for 循环

for(表达式1;表达式2;表达式3)

{

循环体;

}

表达式1:定义循环变量和对其赋初值

表达式2:循环条件

表达式3:用于改变循环变量的值

break:在循环中用于退出循环,一般和if一起使用。

continue: 立即结束本次循环,进入下一次循环。

常量:不可改变。

const 类型 常量名=常量值

如:const double pl = 3.14;

枚举

    enum 自取名称{值1,值2……值n}

把一个字符串转换成枚举类型:

(Gender)(Enum.Parse(type of (Gender),”待转字符串”))

结构体

访问修饰符  struct 结构名

{

定义结构成员(注:前加public)

}

数组语法

数组类型[]  数组名 = new 数据类型[数组长度]

如: int[] name = new int[5]

        name[0]=…

       name[1]=…

      ….

       name[4]=…

console.clear();   把屏清干净

排序

for(int i=0; i<number.length-1; i++)

{

    for(int j=0; j<number.length-1-i ; j++)

     {

        if(     >     )

          {交换}

     }

}

方法

【访问修饰符】【static】返回值类型  方法名(【参数】)

{

方法体

}

1.方法在类中

2.如果方法没有返回值,则写void.

3.如果方法没有参数()不能省略

方法的调用:

     如果是静态方法(由static修饰),则使用类名.方法名();

     在自己的类中调用本类的方法,则可以只写方法名。

return:立即跳出本方法(一般与if条件联合使用)

变量的作用域:

1.在方法中定义的变量为局部变量,其作用域以定义开始,到所在大括号结束。

2.当被调用者想得到调用者方法中的变量,则可让调用者以参数的形式给调用者。

3.在方法名后面的括号内定义变量,叫做定义这个方法的参数。

        这里定义的变量用于接收调用者传来的数据。

注:如果一个方法一旦有参数,那么调用者就必须传参数并且参数,并且参数的个数必须与对应位置上的类型必须一致。

当调用者想访问方法中的变量时,可通过返回值返回。

只要方法中的返回了值,那么在调用方法中,前面就应该用一个变量来接受方法的返回值。

注:一个方法只能有一个返回值

一旦方法有返回值,则在方法体中必须用return语句返回一个值,并类型一致。

    return 返回值;   void 改为相应类型

一个变量定义在类中,方法外叫字段,可被本类所有方法访问。

静态方法只能访问静态字段(static)

用const 定义的常量不能定义静态

重载:可以定义同名方法,但参数类型或个数必须不一样,调用可自动匹配。

方法重载与返回值没有关系。

在参数前加out,可通过参数返值,在传参数时也可out,表明侧重传出。

如果以out形式传入,在传入前可以不赋值。

在方法中由Out修饰的参数,必须在使用前赋值

面向对象(object Orient)

OO的特点:继承性,封装性,多态性

三层数据库系统:数据展示层,中间层,数据层。

产生一个m到n的随机数: 

Radom r = new Radom();

while (ture)

{

int i = r.Next(m.n+1)       

console,readkey();

}

类是对象的类型,对象叫类的实例

万物皆对象,对象有特征和行为,即属性和方法

类是抽象的概念,类不占内存,对象才占内存。

类的定义:

【访问修饰符】 class  类名

{

成员;

。。。

}

在自己写的类中,方法前先不加static

类的实例化:

类 实例名 = new 类名 ();

访问类的属性: 实例名.属性名

访问类的方法:实例名.方法名();

只要没加static的方法或属性,都必须先实例化,在通过实例名.方法名或实例名.属性名来访问。

加static的方法,可以直接通过类名.方法或类名.属性来访问。

访问修饰符

public:可以在任何地方被访问

internal:只能在本项目被访问

private:只能在本类中被访问  (默认)

protected :只能在本类或子类中被访问

定义一个变量,在这个变量中含get/set两个方法,叫属性

public int Age

{

        get

        {

        }

       set

       {

       }

}

用value存储用户赋的值,用return返回值。

赋值调用set方法,读取调用get方法。

自动生成属性的方法:光标放在public int age(为例) 上点击用右键---重构---封装字段---确定---应用

                                   同时按ctrl+R+E  确定,应用

具有get,set为读写属性,只有 get为只读属性(不能被修改),只有set为只写属性(用很少)。

当实例化一个类时,系统会自动对这个类的属性进行初始化。

    数字类型----0 或0.0             string 类型-----null              char 类型-----(AScall码0)

使用构造方法的好处:

1.对多个属性赋值,不需重复的写实例名。

2.可以保证用户在New一个对象的时候必须对某一个属性赋值。

3.在创建对象时,对只读属性初始化。

当定义好一个类后,如果没有写构造方法,那么系统会自动加上一个没有参数的构造方法

构造方法是一个特殊的方法,名称与类名相同,无返回值,void都省略不写,我们一旦手写一个构造方法后,系统默认的那个不再添加。

class Student

{

            public   Student(string name)

            {

              this.name=name;

            }

}

要实例化一个类:必须调用它的构造方法

报错程序:

throw new Exception(“错误信息”);

params int[] 名称      可变数组

object[]      任意类型数组

命名空间(namespace)用来解决类的重名问题

不在一个命名空间下的类,不能直接被访问

若想访问

1.通过using 引用对方的命名空间

2.写全称 命名空间名.类名

ctrl+.  可自动添加命名空间

system:根命名空间

string 可以看作是char的只读数组,具有不可改变性

静态有static 修饰       类名.方法名  

静态无static 修饰       实例名.方法名

修改字符串中的数:

string s = “Hello,World”

char[] mc =s.ToCharArray();

char s[1] = ‘i’

s = new string(chars);

字符串中的大小写

ToLower   转小写

ToUpper   转大写

不能改变字符串本身,需定义新的字符串接收

score A = scoreA. ToLower();

不可忽略大小写进行比较

if (score A.Equals(score B))

{

…..

}

可忽略大小写比较

if(scoreA.Equals(scoreB.stringComparison.OrdinalIgnoreCase))

{

……..

}

tostring 可将任何转换为string类型

字符串分割

string str = “my name is LiLei”;

        string[] words = str.Split(‘【按什么进行分割】’)

string[] spilt(params char[] separator)

例: string[] words = str.split(removrChar,StringSplitOptions.RemoveEmptyEntries)

字符串替换

string Rrplace(string oldvalue, string newValue)

例:cent=cent.replace(word[i],”***”)

取子字符串

string substring(int startIndex) 取从位置startIndex开始到最后

string substring(int 32,int 4) 从第32个开始,取长度为4

查找并返回位置 (Index Of )

实例名.IndexOf(“*”)

实例名.IndexOf(“*”,n) 从n位置开始搜索

控件

Name:名字

Text:内容

String.Format(“{0}你好,name”)    占位符替换,用于字符串拼接

textBox1.Hide() : 文本框隐藏

命名潜规则:

按键 Button: btn

文本框 TextBox: txt

复选框 CheckBox: cb

退出程序 this.close(); 或 Application Exit()

禁止为空格: textBox1.text.trim()

报错程序

if (!int.TryParse(str1,outil))

{

message.Show(“…是不合法的”)

return;

}

PasswordChar 如果设成× 或#,变成密码框

Multiline          多行

combox.Item.add(“”); 添加

combox.Item.clear();  清空

textBox1.Append Text();   赋加文本,保留原来值

int---string        DateTime.New.Tostring()

局部变量每次运行完毕变量会被销毁,下次运行会初始化

而字段,只要一个对象生成,就会一直保留字段值

原文地址:https://www.cnblogs.com/HuXiaoxia/p/3405524.html