爲什麼Visual Studio在C#中將新類聲明爲私有類?我幾乎總是把它們交給公衆,我是瘋了嗎?VS.NET默認爲私有類
回答
默認情況下,私有訪問看起來像是C#語言說明符部分的合理設計選擇。
一個好的通用設計原則是儘可能地限制所有訪問級別,以最小化依賴關係。如果開始儘可能地限制訪問級別,並且讓開發人員採取一些措施以使課程或成員更加可見,那麼您不太可能會遇到錯誤的訪問級別。如果某些東西比你需要的更少公開,那麼當你遇到編譯錯誤時,這種情況會立即顯現出來,但是找到比本應該更明顯的東西並不容易。
C++(派生C#)指定默認的類訪問級別是私有的。 C#可以帶來這種進步,無論好壞。
默認是內部的,而不是私有的。 http://msdn.microsoft.com/en-us/library/ms173121.aspx – sliderhouserules 2014-11-07 23:56:14
不,我總是要在班級的前面拍這個「公共」關鍵詞,所以你並不孤單。我猜模板設計者認爲從非常基礎開始是個好主意。你可以在你的Visual Studio安裝中編輯這些模板,如果它真的讓你感到惱火,但我還沒有到那個地步。
我不知道爲什麼這樣做,但在這裏就是你爲了獲得Visual Studio中默認創建類爲公共做什麼:
去到「程序Files \ Microsoft Visual Studio的9.0 \ Common7 \ IDE \的ItemTemplate \ CSHARP \代碼\ 1033「,你會發現一個名爲Class.zip文件,.zip文件內打開名爲Class.cs文件,該文件的內容是這樣的:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Text;
namespace $rootnamespace$
{
class $safeitemrootname$
{
}
}
您只需在課程名稱前添加「Public」即可。結果應該是這樣的:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ == 3.5)using System.Linq;
$endif$using System.Text;
namespace $rootnamespace$
{
public class $safeitemrootname$
{
}
}
一個你需要做的最後一件事是所有的模板Visual Studio是在使用沖洗,並讓他重新加載它們。對此的命令是(需要一段時間如此堅持):
devenv /installvstemplates
而就是這樣,默認情況下不再有私人類。當然你也可以添加內部或任何你想要的。
哇,正是我所期待的! – 2008-11-03 14:21:52
出於安全原因。
你想暴露某些方法,而不是你的整個類。
即使您將某個類標記爲公開,但默認情況下成員仍然是私有的。換句話說,這個類在同一個命名空間之外幾乎沒有用處。不過,我認爲默認情況下將其公開爲公開可能會過分。嘗試使用'內部'一些。它應該爲提供足夠的訪問權限,用於大多數的目的。
- 1. Java - 私有成員vs私有內部類的默認成員
- 2. 爲什麼我的類默認在Visual Studio中是私有的?
- 3. RGD:如何爲類私有初始化的默認值
- 4. 的默認方法是私有的嗎?
- 5. 默認賦值運算符訪問基類的私有成員
- 6. 對包 - 私有作品的Java默認類訪問如公開
- 7. 爲類模板有默認參數
- 8. 如何將WPF項目默認爲私有而不是內部?
- 9. 爲什麼表單的工具事件是默認的私有?
- 10. 將findbugs設置爲默認值,作爲包下的所有類的默認值
- 11. 具有私有輔助功能的默認構造函數
- 12. 爲什麼IBAction類型默認爲AnyObject?
- 13. 默認情況下,公共類,私人或內部
- 14. 通過定義默認私有構造函數使類不可繼承
- 15. 默認的私有設置在繼承一個類後是否啓用
- 16. 我可以在類體中默認一個私有構造函數嗎?
- 17. 反序列化JSON轉化爲類C#對象,它具有默認的私有構造
- 18. 具有默認構造函數和具有私有構造函數差異的類的抽象類
- 19. 默認行爲
- 20. x:Shared =默認爲
- 21. 爲默認值
- 22. 爲默認值
- 23. AS3默認值類
- 24. 默認情況下是C#字段私有?
- 25. Python3 - 默認值爲type的默認值?
- 26. Dictonary作爲默認類參數爲所有類實例共享,爲什麼?
- 27. 默認情況下是否可以將FB Application相冊設爲私有?
- 28. 默認情況下修改默認命令:默認命令爲
- 29. 將NSData轉換爲默認MIME類型
- 30. 派生類作爲默認參數克++
實際上,類,結構或接口的默認訪問級別是內部的,而不是私有的。 `如果沒有指定訪問修飾符,Internal是默認值`,`就像類和結構,接口默認爲內部訪問`發件人:[MSDN](http://msdn.microsoft.com/zh-cn/library/ms173121。 aspx) – sliderhouserules 2014-11-07 23:54:38