我最近發現C#中的結構可以有方法。靜態結構方法和靜態類方法有什麼區別?
不小心,我發現自己一直在我的代碼中使用空結構的靜態方法,而不是我認爲正在處理的靜態類的靜態方法!
例如
public struct Foo
{
public static void Bar(Param param)
{
...
}
}
它並不真正被用作結構在這一點上,因爲它沒有屬性可言!
這與使用類的靜態方法(靜態或其他方式)有很大不同嗎?是否有任何理由相互優先? (我的直覺告訴我,使用靜態結構的方法是,至少,不太直觀)
聲明一個'static'類具有額外的好處(通過'abstract sealed'),允許編譯器在變量聲明或轉換中將任何類型的用法標記爲錯誤。 –
@mikez同樣,以及將任何實例成員聲明標記爲錯誤。 – cdhowie
@mikez我認爲一個更重要的區別是'abstract sealed class'簡直是無效的C#。 – svick