知识大全 新增匿名类[2]

Posted

篇首语:自己打败自己是最可悲的失败,自己战胜自己是最可贵的胜利。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 新增匿名类[2]相关的知识,希望对你有一定的参考价值。

  二 初始化

  如果一个类有public字段 在建立类的对象实例时可以使用下面的代码来初始化这些字段;

public class MyClasspublic String field ;public int field ;public bool field ;MyClass my = new MyClass();my field = abcd ;my field = ;my field = true;

  在C# 中提供了一种更简便的方法来初始化这些public变量 代码如下

MyClass my = new MyClassfield = abcd field = ;field =true;;

  上面的代码的写法有些象带参数的构造方法 但这将不是调用了MyClass的构造方法(因为MyClass并没有带三个参数的构造方法) 而只是C#编译器玩的一个魔术 实际上 上面的代码在编译后 仍然和使用传统的初始化字段的方法一样 只是在语法上看起来更简单(至少不用写那么多个my) 要注意的的 使用这种方法初始化 必须是public的字段(不能是protected private或默认修饰符的字段)

  在C# 中还改进了对集合类的初始化方式(使其初始化的方式类似于数组) 但遗憾的是 这种初始化方式只支持用泛型的集合类 也就是说 只有实现了System Collections Generic ICollection的集合类才可以使用这种初始化方法 代码如下

List myList = new List data data data ;foreach (string data in myList)textBox AppendText(data);

  三 匿名类

  在C# 中提供了一种新的建立类的方法 代码如下

var my = newfield = abcd field = ;MessageBox Show(my field );

  C#编译器会自动推断my是一个有两个public字段的类的对象实例 也就是说相当于下面的代码

public class MyClasspublic String field ;public int field ;var my = new MyClass();my field = abcd ;my field = ;MessageBox Show(my field );

  在第一部分讲到如果动态语言在给变量赋值的过程中改变了变量类型 如果将其转换为强类型语言 当然 一种方法是将变量声明成object类型 或是使用匿名类来解决这个问题 代码如下

var myVar = newfield_string = abcd field_int = ;;

  后根据当前这个变量所使用的类型来决定该使用哪个类字段

cha138/Article/program/net/201311/15229

相关参考

知识大全 新增匿名类[1]

  一用var定义变量  在C#中提供了一种新的声明变量的方式这就是var通过这个关键字在声明变量时就无需指定类型了变量类型是在初始化时由编译器确定的代码如下:varss=abcd;MessageBo

知识大全 java的内部类和匿名类剖析

   Java通过对Java语言规范进行修改显著简化了一些实用结构的实现在那些修改中最引人注目的就是内部类和匿名类如运用得当它们可使程序更易理解和维护本文介绍内部类和匿名

知识大全 Java内部类与匿名内部类

Java内部类与匿名内部类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  定义在类中方法之外的内

知识大全 java的内部类与匿名内部类

  publicinterfaceContents  intvalue();    publicinterfaceDestination  StringreadLabel();    publiccl

知识大全 JAVA中使用内部类与匿名内部类实现

JAVA中使用内部类与匿名内部类实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA中对

知识大全 使用匿名内部类在方法内部定义并启动线程

  本文代码展示了在一个方法中通过匿名内部类定义一个Thread并Override它的run()方法之后直接启动该线程  下面的代码展示了在一个方法中通过匿名内部类定义一个Thread并Overrid

知识大全 Groovy编程用Closure替代匿名类

Groovy编程用Closure替代匿名类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于内

知识大全 为什么匿名内部类参数必须为final类型

   在线文档阅读开发手记(一)) 从程序设计语言的理论上局部内部类(即定义在方法中的内部类)由于本身就是在方法内部(可出现在形式参数定义处或者方法体处)因而访

知识大全 请问我在百度知道里匿名提问或回答的话给加分吗

请问我在百度知道里匿名提问或回答的话给加分吗匿名提问会扣分,匿名回答一样要看提问者有没有悬赏分!百度知道里匿名提问或回答的话,会扣多少财富值?匿名提问-10【提问】1提问-5,2.提问悬赏-悬赏分,3

知识大全 在百度提问中用匿名提问,现在想删除怎么弄

在百度提问中用匿名提问,现在想删除怎么弄?不能删?目前百度知道APP上关于个人释出的话题还没有个人删除的功能,1.可以在意见反馈中反馈,期待新功能的更新。2.管理员可以删除违规的话题。可以找管理员私信