不使用c#namespace会发生什么

时间:2014-08-11 07:25:16

标签: c# namespaces

您将在c#中写一个dll而不是没有命名空间。

我会编写一个类然后将其转换为dll,即c#默认库类型是

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace temp
{
    public class c1
    {
        public static string f1(string deger) {
            return deger.ToUpper() + " 333 ";
        }
    }
}

现在我将编写此代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class c1
{
    public static string f1(string deger) {
        return deger.ToUpper() + " 333 ";
    }
}

是运行时的twou代码相同

2 个答案:

答案 0 :(得分:2)

然后这个类将在.NET未命名的全局命名空间(不在汇编根命名空间中)。它可以从任何地方访问“global :: c1”或只是“c1”

答案 1 :(得分:1)

通过将此代码转换为DLL,我认为您的意思是编译为库。命名空间(或缺少)在这方面没有特殊效果。

如果要在不引用dll的情况下引用此类,则需要动态加载dll。

示例:

Assembly a = Assembly.LoadFrom("mylibrary.dll");

您的下一个问题是反映并使用该课程。通常你会有一个定义一些接口或接口的库。

  

InterfaceLibrary.dll包含接口IC1

     

PluginLibrary.dll包含实现IC1的类C1

     

的Program.exe

程序和插件库都引用了接口库。该程序可以动态加载PluginLibrary并查找实现IC1的类。

以下是C#中插件架构的更深入的示例:https://stackoverflow.com/a/829828/360211