三、基本知识点

1、占位符

例如:Console.WriteLine("{0}+{1}={2}",i1,i2,i3);

小注:{0}是第0个占位符(占位符是从0开始),对应的参数是i1。

2、基本类型

string int char bool decimal byte double float long

例子:打印 "ab"    string str = "\"ab\""; (其中 \" 是转义的意思)

       打印 a\b       string str = "a\\b";

       打印  c:\c#\1.mp4     string str = "c:\\c#\\1.mp4";

3、基本类型的转换

例如:字符串转换成整形  Convert.ToInt32("字符串");

       整形转换成字符串 Convert.ToString(整形);

4、局部变量使用之前必须赋初值。

5、合并switch

switch(i)
{
case 1:
    Console.WriteLine("1的情况");
    break;
   case 2:

   case3:
    Console.WriteLine("2或者3的情况");
    break;
}

表示当i是1的时候,输出  1的情况  ; 当i是 2或3的时候,都输出  2或者3的情况。

6、中断

continue:表示中止当前循环

break:表示中止当前整个循环

return:表示中止当前函数

7’、枚举

位置:在namespace和class的声明之间

定义类型1:访问级别 关键字 枚举类的名字 {取值1,取值2,... ....}

                例如:public enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri}
               说明:默认情况下,每个枚举数的值为整型,并且第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。 例如,上面的枚举,Sat0Sun1Mon2 等.

定义类型2:访问级别 关键字 枚举类的名字:枚举数的基本类型 {取值1,取值2,... ....}

                例如:public enum Days:byte {Sat, Sun, Mon, Tue, Wed, Thu, Fri}
                说明:此种定义类型下,每个枚举数的值为定义的某一基本类型。以byte为例。

定义类型3:访问级别 关键字 枚举类的名字 {取值1=1,取值2,... ....};

                例如:public enum Days {Sa1=1, Sun, Mon, Tue, Wed, Thu,Fri}
                说明:此种定义类型下,第一个枚举数的值是从1开始的。当然,也可对取值赋需要的其他值。

声明类型:访问级别 枚举类的名字  常量1=枚举类的名字.取值1;

              例如:public Days day= Days.Sat;

              强制类型转换:目标类型 变量名 = (目标类型)枚举类的名字.取值1;

              例如:int i=(int)Days.Sat;

7’‘、结构

位置:在namespace和class的声明之间

定义类型:访问级别 关键字 结构的名字

              {

               相同类型或不同类型成员的声明;

               方法;

              }

                例如:public struct clsaa

                       {

                        public Days day;

                        public int whichClass;

                        public string Time()

                         {

                            return “结构的函数定义”;

                        }

                      }

声明并赋初值:结构名字 变量名;

                   变量名.成员1=...;

                  例如:class myClass;

                          myClass.day=Days.Sat;

                          myClass.whichClass=3;    

                          string str=myClass.Time();

8、foreach

语法:foreach(类型 每个元素 in 集合){}

        例如:foreach(Person person in persons){}

9、refout

传递的是引用,而不是拷贝

10、封装

属性的封装方法一:构造方法的重载

属性的封装方法二:set get 方法

public class Person

{

    private int age; //字段名,用来保存数据

   public int Age  //属性名,本身不保存数据

   {

        set{this.age=value;}  //将用户赋值过来的value值 赋值 给this.age中的age字段

        get{return this.age;}

   }

}

.net 3.0之后,上述也可简写成

public class Person

{

    private int age;

    public int Age

    {

       set;

       get;

     }

}

11、异常

定义一个方法如下:

public string GetAge(int i)

{

      if(i<0)

        {

             throw new Exception("年龄不可以小于0"); //扔出错误

         }

        else if(i>150)

         {

           throw new Exception(年龄不可以大于150);  //扔出错误

          } 

         else

         {

           return "ok,正常";

         }

}

调用该方法的方法中:

try

{

  string str = GetAge(500);

}

catch (Exception ex)

{

//输出结果是:数据错误年龄不可以大于150

Console.WriteLine("数据错误"+ex.Message);  //抓住错误,message就是上面扔出的错误信息

}

12、常量(const)

java中声明常量的语句:public static final int pi=3.14;

c#中声明常量的语句:public const int pi=3.14;

const和readonly的区别:http://msdn.microsoft.com/zh-cn/library/e6w8fe1b(v=vs.80).aspx

                                 http://blog.csdn.net/shinehoo/article/details/5256781

13、索引器

语法:访问范围  索引器的数据类型 this(参数列表)

{

//set和get方法可以仅有其中的一个

   set方法

   get方法

}

示例:public class Person

{

private string ParentName="父亲";

private string ChildName="孩子";

public string this(int index)

{

  set

{

    if(index==1)

{

   ParentName=value;

}

else if(index==2)

{

    ChildName=value;

}

else

{

   throw new Exception("异常");

}

}

get

{

  if(index==1)

{

   return ParentName;

}

else if(index==2)

{

   return  ChildName;

}

else

{

   throw new Exception("异常");

}

}

}

}

使用:

Person p=new Person(); //生成对象

p[1]="laowang"; //此处调用set方法

原文地址:https://www.cnblogs.com/suinuaner/p/three.html