zoukankan      html  css  js  c++  java
  • C#的一些基础知识

    最近在看大学的一些技术文档,其中有一个PPT是讲的C# 的一些基础知识,做一整理,以后可以温习。

    一、自动属性

      普通类:

        class Person
        {
            private string firstName;
            private string lastName;
            private int id;
            private int age;
    
            public string FirstName
            {
                get { return firstName; }
                set { firstName = value; }
            }
            public string LastName
            {
                get { return lastName; }
                set { lastName = value; }
            }
            public int Age
            {
                get { return age; }
            }
            public int ID
            {
                set { id= value; }
            }
        }
        

       使用自动属性的类:

        class Person
        {
            private int id;
            private int age;
    
            public string FirstName
            {
                get;
                set;
            }
            public string LastName
            {
                get ;
                set ;
            }
            public int Age
            {
                get { return age; }
            }
            public int ID
            {
                set { id= value; }
            }
        }
        

          自动属性的典型适用场合:在属性代码中只包含基本的赋值取值功能简单的实体类

      对于自动属性,这里不多说神马,主要是有几个要注意的地方:

      1. 自动属性不能实现只读或者是只写属性。

      2. 因为没有声明私有变量,在使用自动属性时只能直接使用属性进行引用。

    二、对象初始化器及集合初始化器

      首先看下对象初始化器,  

    //传统的初始化对象及赋值
    Person lincoln = new Person();
    lincoln.FirstName = "Lincoln";
    lincoln.LastName = "Burrows";
    lincoln.Age = 30;
    
    //使用对象初始化器
    Person scofield = new Person 
    { 
        FirstName = "Michael", 
        LastName = "Scofield", 
        Age = 20 
    };

      要说明的是对象初始化器是可嵌套的,即对一个对象初始化的时候可以内嵌另一个类的对象,如下面的Person对象中内嵌了Address对象:

    //可嵌套的对象初始化器
    Person tbag = new Person
    {
        FirstName = "Theodore ",
        LastName = "Bagwell",
        Age = 32,
        Address = new Address
        {
            Street = "Prison SONA",
            Country = "Panama"
        }
    };

      集合初始化器和对象初始化器相同:

    //传统的方式
    List<string> foxRiver8 = new List<string>();
    foxRiver8.Add("Michael");
    foxRiver8.Add("Lincoln");
    foxRiver8.Add("Sucre");
    foxRiver8.Add("Abruzzi");
    
    //使用集合初始化器
    List<string> foxRiver8 = new List<string>{
        "Michael",
        "Lincoln",
        "Sucre",
        "Abruzzi",
    };

    三、扩展方法

       首相先来看一个例子:

    string sqlStr = "SELECT * FROM table_A WHERE ID = 1";
    sqlStr.ExcuteSql();
    
    Class Utilily
    {
        public static void ExcuteSql(this string str)
        {
            Console.WriteLine(str + " 这个扩展方法输出的字符串");        
        }
    }

      这里只是一个简单的对字符串进行扩展,使每个字符串类型都有了一个ExcuteSql方法,当然你也可以对其他类型进行扩展。
      扩展方法的语法:

      不带参数的扩展方法:  static 方法名 (this 目标类型 参数名)

      带参数的扩展方法:   static 方法名 (this 目标类型 参数名,参数类型1 参数名1,… …. ) 

      使用扩展方法时,需要注意以下几点:

      1. 扩展方法允许我们对已存在类型的行为进行扩展
      2. 扩展方法是一种特殊的静态方法
      3. 扩展方法必须在静态类中定义
      4. 扩展方法的优先级低于同名的类方法
      5. 扩展方法只在特定的命名空间内有效
      6. 除非必须不要滥用扩展方法
              /////////////////////////////////////////////////////////////////////////////
              ///排版真心烂,看着都受不了,Please喷死这个菜鸟!!!鄙视。///
              ////////////////////////////////////////////////////////////////////////////
  • 相关阅读:
    常见面试题1
    勒索病毒防范方法
    VMware虚拟机打开后不兼容
    win10桌面显示我的电脑设置
    scala集合和Java集合对应转换操作
    scala中使用redis
    爬虫调研
    hadoop命令
    IDEA打jar包
    spark.mllib
  • 原文地址:https://www.cnblogs.com/yuqf/p/3031158.html
Copyright © 2011-2022 走看看