我完全知道,当自定义命名空间隐藏它时,我们可以拥有相同的命名空间和.NET Framework命名空间,以及如何访问.NET框架命名空间类。
我的问题是,如果我有一个自定义命名空间和类名与.NET框架命名空间和类名相同,我如何访问其中的.NET框架命名空间和类?示例:如果我创建一个带有System
命名空间的C#项目和一个带有Console
和Read()
两个方法的类Write()
,我将如何访问.NET框架命名空间和控制台显示输出..
对于提出这类问题的道歉......我很好奇地知道在这种情况下会发生什么。
由于
答案 0 :(得分:1)
我尝试使用extern别名方法,实际上无法让它工作。无法满足您的要求(Cunningham's Law)。
作为一种解决方法,您可以像我在下面所做的那样重定向呼叫:
namespace System
{
extern alias ActualSystem;
//using SC = ActualSystem::System.Console;
//does not work:
//Error 1 The type or namespace name 'Console' does not exist in the namespace 'ActualSystem::System'
// (are you missing an assembly reference?)
using ClassLibrary;
public static class Console
{
public static void Write(string s)
{
ConsoleRedirect.Write(s);
}
}
}
namespace ClassLibrary
{
using System;
public static class ConsoleRedirect
{
public static void Write(string s)
{
Console.Write(s);
}
}
}
答案 1 :(得分:0)
您可以在Visual Studio中使用external aliases。 Here是命令行参数的描述。