纳金网

标题: c#读书笔记 [打印本页]

作者: 烟雨    时间: 2015-11-25 06:02
标题: c#读书笔记

只读字段 readonly
Readonly比const要灵活,可以在构造函数中给只读字段赋值,但不能在其他地方赋值,只读字段还可以是一个实例字段,而不是静态字段,类的每个实例可以有不同的值(实例化构造函数声明)。与const字段不同,如果要把只读字段设置为静态(在静态构造函数声明),就必须显示声明。
匿名类型
Var关键字用于表示隐式类型化的变量   var与new一起使用可以创建匿名类型
相同类型的之间可以赋值  也可以通过已有类创建对象的属性进行初始化。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
    class NBAPlayer
    {
        public string name;
        public int age;
        public string teamName;
        public NBAPlayer(string Name, int Age, string TeamName)
        {
            this.name = Name;
            this.age = Age;
            this.teamName = TeamName;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var Parker = new { name = "Parker", age = 32, teamName = "spurs" };
            Console.WriteLine(Parker.name + " "+Parker.age +" " +Parker.teamName);
            var LBJ = new { name = "LBJ", age = 30, teamName = "CAV" };
            Parker = LBJ;
            NBAPlayer TimDucun = new NBAPlayer("TimDucun", 39, "spurs");
            var TD = new { TimDucun.name, TimDucun.age, TimDucun.teamName };
            Console.WriteLine(TD.name + " " + TD.age + " " + TD.teamName);
           
            Console.ReadLine();
        }
    }
}
结构体 struct  需要小的数据结构处于性能考虑 可以使用结构体而不是类
结构体可以用来存储属性以及有自己的构造函数(禁止在结构体内使用没有参数的构造函数
标红部分说明struct是值类型,如果是类的话会报错
结构是值类型,不是引用类型,它们存储在栈中,当把结构作为参数传递给方法时,应把作为ref参数,避免性能损失
结构不支持继承,但是结构可以访问System.Object的方法 甚至可以重写其中的方法。
struct Dimensions
    {
        public double length;
        public double width;
        public Dimensions(double l, double w)
        {
            length = l;
            width = w;
        }
        public string ToString()
        {
            return "重写";
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Dimensions di;
            di.length = 30.0;
            di.width = 30.0;
            Dimensions newDi = new Dimensions(20, 15);
            Console.WriteLine(di.width * di.length);
            Console.WriteLine(newDi.width * newDi.length);
            Console.WriteLine(di.ToString());
            Console.ReadLine();
        }
}
部分类
Partial 关键字允许类 结构或者接口放在多个文件夹中
namespace class1
{
    class partialClass
    {
        public string Method1()
        {
            return "method 1";
        }
    }
}
namespace class2
{
    class partialClass
    {
        public string Method2()
        {
            return "Method2";
        }
    }
}
  class1.partialClass p1 = new class1.partialClass();
  Console.WriteLine(p1.Method1());
  class2.partialClass p2 = new class2.partialClass();
   Console.WriteLine(p2.Method2());
   Console.ReadLine();
静态类 调用静态类内部成员以及函数  无需实例化类直接用类名调用。






欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5