c#入门-匿名类

匿名类

声明局部变量时可以使用一种特殊的语法声明匿名类。
匿名类没有名字,所以不需要带类型名(但编译器还是会做出一个实体类来)。
只能使用var声明变量,所以只能作为局部变量。
值的那边使用new+对象初始化器声明并赋值内容。

var student = new { age = 12, name = "小明" };

匿名类和元组类似,但是他的值都是只读属性。
不可更改也不可获得引用。
并且只能声明属性,不能声明方法。

Console.WriteLine(student.age);
Console.WriteLine(student.name);

类元组

类元组和匿名类类似,只能创建只读的属性。
但是类元组是有类型的,可以作为方法返回值,方法参数,字段使用。

之前学习的元组是值元组。里面是字段而不是属性,可以读写。并且值元组是值类型。
类元组没有值元组那样的特殊语法的声明方式。
通常使用类元组的静态方法进行创建

var p=Tuple.Create(12,12);

或者也可以指定类型,使用构造器进行创建。

var t = new Tuple<int, int, int>(12,16,14);

类元组同样可以析构。

var (a,b)= Tuple.Create(12, 12);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第Ⅰ部分 C# 语 言 第1章 .NET体系结构.... 3 1.1 C#与.NET的关系...... 3 1.2 公共语言运行库...... 3 1.3 详细介绍中间语言...... 6 1.3.1 面向对象和接口的支持..... 7 1.3.2 相异值类型和引用类型..... 8 1.3.3 强数据类型..... 8 1.3.4 通过异常方法处理错误..... 14 1.3.5 特性的使用..... 14 1.4 程序集...... 14 1.4.1 私有程序集..... 15 1.4.2 共享程序集..... 16 1.4.3 反射..... 16 1.5 .NET Framework类...... 16 1.6 命名空间...... 17 1.7 用C#创建.NET应用程序...... 18 1.7.1 创建ASP.NET应用程序..... 18 1.7.2 创建Windows窗体..... 20 1.7.3 Windows控件..... 20 1.7.4 Windows服务..... 20 1.8 C#在.NET企业体系结构中 的作用...... 20 1.9 小结...... 22 第2章 C#基础.... 23 2.1 引言...... 23 2.2 第一个C#程序...... 23 2.2.1 代码..... 24 2.2.2 编译并运行程序..... 24 2.2.3 详细介绍..... 25 2.3 变量........ 27 2.3.1 变量的初始化..... 27 2.3.2 变量的作用域..... 28 2.3.3 常量..... 31 2.4 预定义数据类型...... 32 2.4.1 值类型和引用类型..... 32 2.4.2 CTS类型..... 33 2.4.3 预定义的值类型..... 33 2.4.4 预定义的引用类型..... 36 2.5 流控制...... 39 2.5.1 条件语句..... 39 2.5.2 循环..... 43 2.5.3 跳转语句..... 46 2.6 枚举...... 47 2.7 数组...... 49 2.8 命名空间...... 50 2.8.1 using语句..... 51 2.8.2 命名空间的别名..... 52 2.9 Main()方法...... 53 2.9.1 多个Main()方法..... 53 2.9.2 给Main()方法传送参数..... 54 2.10 有关编译C#文件的更多内容...... 55 2.11 控制台I/O.... 56 2.12 使用注释...... 58 2.12.1 源文件中的内部注释..... 58 2.12.2 XML文档说明..... 59 2.13 C#预处理器指令...... 61 2.13.1 #define和 #undef. 61 2.13.2 #if, #elif, #else和#endif. 62 2.13.3 #warning和# error. 63 2.13.4 #region和#endregion.. 63 2.13.5 #line.. 64 2.13.6 #pragma.. 64 2.14 C#编程规则...... 64 2.14.1 用于标识符的规则..... 64 2.14.2 用法约定..... 65 2.15 小结...... 71 第3章 对象和类型.... 72 3.1 类和结构...... 72 3.2 类成员...... 73 3.2.1 数据成员..... 73 3.2.2 函数成员..... 74 3.2.3 只读字段..... 88 3.3 结构...... 89 3.3.1 结构是值类型..... 90 3.3.2 结构和继承..... 91 3.3.3 结构的构造函数..... 91 3.4 部分类...... 92 3.5 静态类...... 94 3.6 Object类...... 94 3.6.1 System.Object方法..... 94 3.6.2 ToString()方法..... 95 3.7 小结...... 97 第4章 继承.... 98 4.1 继承的类型...... 98 4.1.1 实现继承和接口继承..... 98 4.1.2 多重继承..... 99 4.1.3 结构和类..... 99 4.2 实现继承...... 99 4.2.1 虚方法..... 100 4.2.2 隐藏方法..... 101 4.2.3 调用函数的基类版本..... 102 4.2.4 抽象类和抽象函数..... 103 4.2.5 密封类和密封方法..... 103 4.2.6 派生类的构造函数..... 104 4.3 修饰符...... 109 4.3.1 可见性修饰符..... 109 4.3.2 其他修饰符..... 110 4.4 接口...... 111 4.4.1 定义和实现接口..... 112 4.4.2 派生的接口..... 116 4.5 小结...... 118 第5章 运算符和类型强制转换.... 119 5.1 运算符...... 119 5.1.1 运算符的简化操作..... 120 5.1.2 三元运算符..... 121 5.1.3 checked和unchecked运算符..... 122 5.1.4 is运算符..... 123 5.1.5 as运算符..... 123 5.1.6 sizeof运算符..... 123 5.1.7 typeof运算符..... 124 5.1.8 可空类型和运算符..... 124 5.1.9 空接合运算符..... 124 5.1.10 运算符的优先级..... 125 5.2 类型的安全性...... 125 5.2.1 类型转换..... 126 5.2.2 装箱和拆箱..... 130 5.3 对象的相等比较...... 130 5.3.1 引用类型的相等比较..... 131 5.3.2 值类型的相等比较..... 132 5.4 运算符重载...... 132 5.4.1 运算符的工作方式..... 133 5.4.2 运算符重载的示例: Vector结构..... 134 5.5 用户定义的数据类型转换...... 141 5.5.1 执行用户定义的类型转换..... 142 5.5.2 多重数据类型转换..... 149 5.6 小结...... 152 第6章 委托和事件.... 153 6.1 委托...... 153 6.1.1 在C#中声明委托..... 154 6.1.2 在C#中使用委托..... 155 6.2 匿名方法...... 158 6.2.1 简单的委托示例..... 159 6.2.2 BubbleSorter示例..... 161 6.2.3 多播委托..... 164 6.3 事件...... 166 6.3.1 从客户的角度讨论事件..... 167 6.3.2 生成事件..... 169 6.4 小结...... 173

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值