纳金网
标题: 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 |