C# 使用内部类和私有道具访问修改器警告 [导出(typeof(IExample))] 内部类示例:IExample { 私有静态IEnumerable进程() { //做些事情,然后你就会回来 } 私有HashSet myHash=新HashSet(Process()); 公共someType成员函数(类型a\u a、类型b\u b、类型c\u c) { 如果(!myHash.Contains(/*诸如此类*/)) //多做点事,然后回来 } }

C# 使用内部类和私有道具访问修改器警告 [导出(typeof(IExample))] 内部类示例:IExample { 私有静态IEnumerable进程() { //做些事情,然后你就会回来 } 私有HashSet myHash=新HashSet(Process()); 公共someType成员函数(类型a\u a、类型b\u b、类型c\u c) { 如果(!myHash.Contains(/*诸如此类*/)) //多做点事,然后回来 } },c#,code-analysis,access-modifiers,C#,Code Analysis,Access Modifiers,注意:MemberFunction()在项目的其余部分有20多个引用 然而,我得到了: CA1811避免未调用的私有代码“Example.Process()”似乎没有上游公共或受保护的调用方 有没有办法在不抑制此警告的情况下解决此问题?出于某种原因,您的类似乎是程序集的内部,但您正在导出它 编译器只能看到它是内部的,并且没有从类所在的程序集中调用函数。它看不见你出口/进口的黑魔法背后 如果你导出某个东西,它应该是公开的。这就是重点。出于某种原因,您的类似乎是程序集的内部,但您正在导出它 编译器只

注意:
MemberFunction()
在项目的其余部分有20多个引用

然而,我得到了:

CA1811避免未调用的私有代码“Example.Process()”似乎没有上游公共或受保护的调用方


有没有办法在不抑制此警告的情况下解决此问题?

出于某种原因,您的类似乎是程序集的
内部
,但您正在
导出它

编译器只能看到它是内部的,并且没有从类所在的程序集中调用函数。它看不见你出口/进口的黑魔法背后


如果你导出某个东西,它应该是公开的。这就是重点。

出于某种原因,您的类似乎是程序集的
内部
,但您正在导出它

编译器只能看到它是内部的,并且没有从类所在的程序集中调用函数。它看不见你出口/进口的黑魔法背后


如果你导出某个东西,它应该是公开的。这就是重点。

出于某种原因,您的类似乎是程序集的
内部
,但您正在导出它

编译器只能看到它是内部的,并且没有从类所在的程序集中调用函数。它看不见你出口/进口的黑魔法背后


如果你导出某个东西,它应该是公开的。这就是重点。

出于某种原因,您的类似乎是程序集的
内部
,但您正在导出它

编译器只能看到它是内部的,并且没有从类所在的程序集中调用函数。它看不见你出口/进口的黑魔法背后


如果你导出某个东西,它应该是公开的。这就是重点。

为什么不发布确切的警告消息?@RohitVats,
Process()
结果被传递给
myHash
的构造函数!依我看,这个代码分析警告会导致很多误报,只是抑制它。文档甚至说可以安全地抑制。为什么不发布确切的警告消息呢?@RohitVats,
Process()
结果被传递给
myHash
的构造函数!依我看,这个代码分析警告会导致很多误报,只是抑制它。文档甚至说可以安全地抑制。为什么不发布确切的警告消息呢?@RohitVats,
Process()
结果被传递给
myHash
的构造函数!依我看,这个代码分析警告会导致很多误报,只是抑制它。文档甚至说可以安全地抑制。为什么不发布确切的警告消息呢?@RohitVats,
Process()
结果被传递给
myHash
的构造函数!依我看,这个代码分析警告会导致很多误报,只是抑制它。医生甚至说压制是安全的,你确定吗?我的目的是让实现者知道它在那里,所以将来他们不会使用
IEaxmple
实现它,而是从另一个接口隐式调用内部实现。像
Microsoft.Html.Core
Microsoft.Less.Core
Microsoft.Css.Core
程序集(用于AST和解析)都有一堆这样的内部(但公开给程序集)类。你确定吗?我的目的是让实现者知道它在那里,所以将来他们不会使用
IEaxmple
实现它,而是从另一个接口隐式调用内部实现。像
Microsoft.Html.Core
Microsoft.Less.Core
Microsoft.Css.Core
程序集(用于AST和解析)都有一堆这样的内部(但公开给程序集)类。你确定吗?我的目的是让实现者知道它在那里,所以将来他们不会使用
IEaxmple
实现它,而是从另一个接口隐式调用内部实现。像
Microsoft.Html.Core
Microsoft.Less.Core
Microsoft.Css.Core
程序集(用于AST和解析)都有一堆这样的内部(但公开给程序集)类。你确定吗?我的目的是让实现者知道它在那里,所以将来他们不会使用
IEaxmple
实现它,而是从另一个接口隐式调用内部实现。像
Microsoft.Html.Core
Microsoft.Less.Core
Microsoft.Css.Core
程序集(用于AST和解析)都有一堆这样的内部(但公开给程序集)类。
[Export(typeof(IExample))]
internal class Example : IExample
{
    private static IEnumerable<string> Process()
    {
        // do stuff and yeild return
    }

    private HashSet<string> myHash = new HashSet<string>(Process());

    public someType MemberFunction(typeA _a, typeB _b, typeC _c)
    {
        if(!myHash.Contains(/* blah blah */))

         // do more stuff and return
    }
}