c#在這裏框一個結構?通過引用傳遞結構時C#框或複製?
struct S { int x; }
void foo(ref S s) { s.x = 1; }
main {
var s = new S();
foo(ref s); <-- boxing??
}
我聽說過有關結構類的奇怪的東西。這裏有拳擊嗎?這是傳遞成員的副本嗎?
class C { S s; }
main {
var c = new C();
foo(ref c.s); <-- boxing here?? copy here???
}
void foo(ref S s) { s.x = 1; }
如果產生副本,'ref'會有什麼意義?這是沒有'ref'的情況。所以'ref',爲了不完全多餘,必須有所不同,因爲......不作複製。 – stakx
我是一名C++開發人員。當我看看C#做什麼時,一切似乎都是多餘的! :)我想知道在使用它之前,什麼東西會花費我。那麼爲什麼不會在值類型框中引用值類型,以便它可以像引用類型那樣傳遞它。請問。 – johnnycrash
任何一個代碼片段都沒有複製或裝箱。 –