• 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()

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

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

  • 相关阅读:
    夺冠概率蓝桥杯
    Memcache配置
    [置顶] 6个月:从小白到程序员,也许没你想的那么难
    Delphi Messagebox自动关闭
    最近读园内的几篇好的文章的摘录及感悟
    近期项目的两点教训
    win7网络连接优先顺序设置方法
    WebSerivce学习笔记
    Delphi 控制摄像头操作
    郁闷的一天
  • 原文地址:https://www.cnblogs.com/HuXiaoxia/p/3405524.html
Copyright © 2020-2023  润新知