我的Visual Studio 2010的編譯器可訪問性不一致的錯誤認定參數類型的錯誤可訪問性不一致,當我編譯此C#代碼:與通過嵌套類作爲函數參數
class Program
{
class BaseClass
{
public class NestedClass
{
}
}
public static bool Function1(BaseClass.NestedClass obj)
{
return true;
}
static void Main(string[] args)
{
Function1(new BaseClass.NestedClass());
new BaseClass.NestedClass();
Console.ReadLine();
}
}
但是當我FUNCTION1評論它的工作原理。
class Program
{
class BaseClass
{
public class NestedClass
{
}
}
//public static bool Function1(BaseClass.NestedClass obj)
//{
// return true;
//}
static void Main(string[] args)
{
//Function1(new BaseClass.NestedClass());
new BaseClass.NestedClass();
Console.ReadLine();
}
}
爲什麼可以創建NestedClass但不能是參數?
編輯:對不起,我是不是我的問題相當精確。以上我試着在控制檯應用程序重建的問題,但在我的項目,我有類等結構:
class BaseClass
{
public class NestedClass
{
}
}
public class OtherClass
{
public void Function1(BaseClass.NestedClass param)
{
var newObj = new BaseClass.NestedClass();
}
}
PS:設置BaseClass的公共真正解決我的問題。現在,由於答案和意見,我明白,這是因爲公共功能1比內部(默認)BaseClass的更大的便利。但我不明白爲什麼我可以無錯地創建新的NestedClass對象?
的'BaseClass'默認情況下'private'。 'NestedClass'不能在BaseClass之外訪問,因爲'BaseClass'是私有的。將'BaseClass'更改爲'public'。 – William