【问题标题】:C# preprocessor class accessibilityC# 预处理器类可访问性
【发布时间】:2013-07-04 15:30:11
【问题描述】:

我有一个关于类可访问性的直截了当的问题。是否可以在调试模式下将类声明为公共,而在发布模式下将其声明为私有?

原因是我希望能够在 Matlab 中使用该类,但由于它已部署给客户,我不希望他们能够访问该类。

【问题讨论】:

    标签: c# c-preprocessor


    【解决方案1】:

    这应该可行:

    #if (DEBUG) 
        public 
    #endif
        class YourClass {
    #if (DEBUG)
            public
    #else
            private
    #endif
            class NestedClass {
            }
        }
    

    【讨论】:

    • 应该是因为默认情况下该类是私有的,但是如果我希望它是内部的呢?
    • 类默认是内部的。命名空间中没有私有类。
    【解决方案2】:

    您可以将类声明为internal 并将InternalsVisibleToAttribute 应用于它:

    [assembly:InternalsVisibleTo("MyTestAssembly")]
    

    请参阅:InternalsVisibleToAttribute Class(在 MSDN 上)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-12
      • 1970-01-01
      • 2013-03-14
      • 2010-09-23
      • 2010-09-07
      • 1970-01-01
      • 2011-07-02
      相关资源
      最近更新 更多