2012-03-06 56 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"; 
相關問題