查看: 657|回复: 0
打印 上一主题 下一主题

[其他] c#读书笔记

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-11-25 06:02:08 |只看该作者 |倒序浏览

只读字段 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();
静态类 调用静态类内部成员以及函数  无需实例化类直接用类名调用。

分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-8-14 15:49 , Processed in 0.077225 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部