2010-12-16 43 views
2

可能重複:
Why const parameters are not allowed in C#有沒有像c + + const在c#中?

我是一個C++開發人員,我不得不使用C#的一些經驗。

我一直想知道爲什麼會出現這樣的事在C#:

bool MyFunction(const AnotherClass& x) 
{ 
    //some stuff 
} 

我個人認爲,常量性是在C中最好的功能之一++(它可以幫助開發人員提高封裝和去耦)。 Sutter(C++編碼標準:101規則,指南和最佳實踐)的建議之一是不會返回你的處理程序,如果我不能通過const引用傳遞,我將整個類而不僅僅是處理程序。

這是我對C#缺乏瞭解嗎?在C#中有這樣的東西嗎?如果沒有,爲什麼C#不使用它?

+0

const的正確性與封裝或解耦有什麼關係? – Mud 2010-12-16 16:03:22

+0

我不是一個C++專家,但是不是隻是在C#中的'bool MyFunction(AnotherClass x)'? – SWeko 2010-12-16 16:05:11

+3

「爲什麼......」,因爲C#是一種有限的語言,它試圖以靈活性和可維護性爲代價變得更簡單。 – ybungalobill 2010-12-16 16:05:35

回答

2

該功能是不是在C#中可用。您可以傳遞副本, 您可以將對象包裝在只讀適配器中,也可以將引用傳遞給不可變對象/結構。

相關問題