C#中的var
和string
和有什麼不一樣?C#中的var和string有什麼區別?
回答
關鍵字var
用於隱式類型的聲明。如果您對變量使用命名類型,則除了可讀性之外沒有其他區別(並且意見不同,哪個更好)。例如:
var s = "asdf";
給出完全相同的結果爲:
string s = "asdf";
但是,如果你有一個未命名的類型,你必須使用var
聲明具有該類型的變量。例如:
var o = new { s = "asdf" };
目前沒有相應的聲明中使用了一個名爲類型,因爲那是創建沒有名稱的對象的類型。
當結果沒有命名類型時,var
關鍵字通常與LINQ和LINQ擴展方法一起使用。示例:
var result = someList.Where(x => x.Age < 10).Select(x => new { name = x.Name });
var
是隱式類型和string
是一個明確的類型,但這些聲明是functionaly相當於
var implicitString = "hello";
string explicitString = "hello";
只有在方法範圍內聲明的變量可以有一個隱式類型var
。使用時,編譯器會從作業的右側推斷出類型。
有一個在VB.NET沒有實際的區別,還有一個discussion更多信息
首先,這些是C#的關鍵字,而不是ASP.NET。
string
是一種類型 - 顯式類型,基本上被編譯器替換爲System.String
。
var
是一個代表類型的關鍵字 - 編譯器可以告訴變量的類型應該是什麼類型(比如說函數的返回類型或文字)。如果你使用一個字符串,編譯器將會像上面那樣做同樣的替換。
var用於聲明隱式類型變量,其中編譯器會自動識別類型。 var可以容納任何類型的數據。字符串是僅用於保存字符串數據的顯式聲明。
var i=5;
var a="abcd";
var b= 5.5555;
var c=new class();
String s = "ABCD";
var和string之間沒有合法的比較。
'var'用於聲明隱式類型,比如int,string,double,一個對象等等。當你不完全知道方法的返回類型或者你不關心它在所有。
「字符串」是一種特殊的數據類型,它只能保存字符串數據而不是任何類型。
此外,對於var類型,必須在聲明var變量時定義,即僅在編譯時,否則編譯器將標記編譯時錯誤。 因此而
string abc;
是可能的但
var abc;
是不可能的。
謝謝Tariq,它清除了我的疑問。併爲所有的答案。 – John
- 1. 在PHP中,「string」。$ var和「string $ var」有什麼區別?
- 2. {$ var}和$ var之間有什麼區別?
- 3. 在Objective-C中Type * var和Type * var之間有什麼區別?
- 4. String和new String有什麼區別?
- 5. String和:: String有什麼區別?
- 6. URL.init(string:「」)和URL(string:「」)有什麼區別?
- 7. Convert.ToBoolean(string)和Boolean.Parse(string)有什麼區別?
- 8. Double.parseDouble(String)和Double.valueOf(String)有什麼區別?
- 9. Typescript中var和let有什麼區別?
- 10. 'string'== $ var或$ var =='string'的區別?
- 11. 「var = $ {var:-word}」和「var = $ {var:= word}」有什麼區別?
- 12. OkHttp的.string()和.toString()有什麼區別?
- 13. Rust的`String`和`str`有什麼區別?
- 14. var和quote有什麼區別?
- 15. ObjectQuery和「var」有什麼區別?
- 16. var和const有什麼區別?
- 17. C#:CompareTo(String)和Equals(String)有什麼區別?
- 18. apache中的$ {var}和%{VAR}有什麼區別?
- 19. JavaScript中的'var $ x'和'var x'有什麼區別?
- 20. _id:ObjectID和String之間有什麼區別?
- 21. String有什麼區別?和String.this。 ?
- 22. Powershell:char []和String有什麼區別?
- 23. CocosBuilder中'Doc root var'和'Owner var'有什麼區別
- 24. 在JavaScript中,var a = 5有什麼區別。和var a = 5?如
- 25. Java中的String ...變量和String varible []有什麼區別?
- 26. Java中的String ... args和String []參數有什麼區別嗎?
- 27. Java中的String []和(String ... args)有什麼區別?
- 28. printf中%c和%C有什麼區別?
- 29. (string&)string()和(string&)「」作爲默認參數有什麼區別?
- 30. $ {var:-word}和$ {var-word}之間有什麼區別?
可能重複[var關鍵字有什麼意義?](http://stackoverflow.com/questions/209199/whats-the-point-of-the-var-keyword)甚至[使用var關鍵字在C#](http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c-sharp)(downvote因爲你的問題可以很容易地在谷歌或msdn的幫助下回答) –
我不喜歡爲什麼有些人投票否決這個問題。我知道這個愚蠢的問題,但與懷疑工作永遠不會改善你的編碼。所以這就是我問的原因。 – John