【发布时间】:2018-01-20 08:37:05
【问题描述】:
我很难完成这项工作。
FooType、WebApp 和IWebApp 3 个类在此 DLL 之外不得访问\可见。因此,sealed 和 internal 类。
我遇到的问题是......
1) 在WebApp 类中,FeeType1 在RouteOneBuilder 方法的参数中是不可访问的。
2) 在WebApp 类中,FeeType1 在 switch 的 case 语句中不可访问 \ 可见。 (需要可见)。
3) 在WebApp 类中,FeeType1 的CreditApplication 属性在开关的 case 语句中不可见(需要可见)。
这个复杂的脚本有更好的方法吗?我是否已经因为在这个 DLL 之外公开类而感到困惑?步骤 1 到 4 的所有步骤都可以以不同方式解决(或以某种方式修复)吗?
我不知道如何才能使这变得更简单。
internal static class FooType
{
public class FeeType
{
public FeeType() { }
public string CreditApplication = "Credit Application";
public string CreditVehicle = "Credit Vehicle";
}
public FeeType FeeType1
{
get { return new FeeType(); }
private set { }
}
}
sealed class WebApp : IWebApp
{
public string RouteOneBuilder(FooType.FeeType1 typing)
{
var xml = "";
switch(typing)
{
case FooType.FeeType1.CreditApplication:
xml = "asdf";
break;
default:
throw new Exception("Unknown value");
}
return xml;
}
}
internal interface IWebApp
{
string RouteOneBuilder(FooType.FeeType typing);
}
【问题讨论】:
-
那么,所有这些类和接口都在同一个源文件中吗?
-
3 个单独的 CS 文件,但都在同一个项目文件中(1 个 DLL 文件)。
-
那么命名空间呢?是在同一个命名空间还是不同的命名空间?
-
IWebApp接口是可见的,因为您已将public添加到其中,您的意思是WebApp类在类外可见吗? -
3 个文件的命名空间相同(实际上 1 个项目中的所有文件都使用相同的命名空间)。
标签: c# access-modifiers