2012-03-06 88 views
6

在PHP中,我们可以创建标准类和objes这样有没有什么办法来创建C#标准类和对象,如PHP

< ?php 

$车=新stdClass的;
$ car-> Color ='black';
$ car-> type ='sports';

print_r($ car);
?>

在C#.net中有没有类似的方法? 我很新C#任何人都可以帮忙?

+2

什么你想得到吗?我的意思是,写你想写的伪C#。 – 2012-03-06 15:53:43

+0

您可以使用[匿名类型](http://msdn.microsoft.com/en-us/library/bb397696.aspx) – 2012-03-06 15:54:01

+0

您的项目中使用了什么版本的.net框架? .net 4.0中有一些精巧的东西可以帮助你,但也可以在3.5中完成。 – 2012-03-06 15:56:17

回答

10

你可以在C#中,如使用Anonymous Types:从链接采取:

var v = new { Amount = 108, Message = "Hello" }; 
    Console.WriteLine(v.Amount + v.Message); 

注意其局限性备注部分(例如,只能转换为对象)等

3

您可以使用匿名类型,但它们不太一样:http://msdn.microsoft.com/en-us/library/bb397696.aspx

C#是真正意义的强类型,所以弱型的支持,那么,相当薄弱。根据你实际在这里做什么,匿名类型可能会工作,但一般来说,你应该在C#编码时创建真正的类。对于你上面的例子Car,我通常会创建一个类。这是更多的代码,但这就是C#的方式。 PHP可以创建一个包含10个PHP文件的应用程序,但是相同的C#应用​​程序最终可能会达到20-30个。

8

C#是静态类型的,因此必须声明常规类,然后才能使用它们。但是,匿名类型允许您基于初始化声明类。一旦声明,类型和实例都不能改变。

对于更动态的方法,请查看ExpandoObject,它允许动态添加属性。这需要C#4并且引用必须声明为动态。

dynamic car = new ExpandoObject(); 
car.Color = "Black"; 
car.Type "Sports"; 
相关问题