c# - 如何避免在 C# 类之前编写命名空间
问题描述
因此,我制作了一个 .dll 并将其添加到我的项目中,一切正常,但是当我尝试使用 .dll 中的任何类时。我必须专门使用 namespace.classname 而不是只能说 Classname 即使我放在项目的顶部
使用命名空间
using System;
using MyTestClassLibrary;
using System.IO;
using YangHandler;
namespace UsingMyclassdll
{
class Program
{
static void Main(string[] args)
{
YangHandler.YangHandler yangh = YangHandler.YangHandler.Parse("Rawtext");
Console.ReadKey();
}
}
}
在使用 Yanghandler 视觉工作室的线上说
不需要使用指令
这不是 using 正是用于使用其他名称空间的东西吗?
YangHandler 代码
using System;
using System.IO;
namespace YangHandler
{
public class YangHandler
{
public string YangAsRawText { get; private set; }
public static YangHandler Parse(string YangAsRawText)
{
YangHandler handlerToReturn = new YangHandler();
handlerToReturn.YangAsRawText = YangAsRawText;
return handlerToReturn;
}
我知道它可以通过在命名空间“UsingMyclassdll”下使用命名空间别名来解决,比如
使用 YangHandler = YangHandler.YangHandler;
但是没有更正常的解决方案吗?
解决方案
检查来自 Microsoft 的这个非常有趣的文档:https ://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-namespaces
不要对命名空间和该命名空间中的类型使用相同的名称。
例如,不要使用 Debug 作为命名空间名称,然后在同一命名空间中提供一个名为 Debug 的类。一些编译器要求这些类型是完全限定的。
因此,您的工作基本上是定义完全限定名称,因为类型和命名空间具有相同的名称。
没有解决这个问题。编译器不知道你是指一个还是另一个。
推荐阅读
- java - 强制创建多个相同类型的对象
- node.js - 如何在 webpack 捆绑之前获取文件的 __dirname
- java - 堆栈中的内存分配和局部变量的删除
- python-3.x - 在python中计算较大数的幂的最有效方法是什么
- html - 如何将按钮插入 HTML 表格单元格
- android - 安装 apk 时出错:INSTALL PARSE_FAILED_NOT_APK
- cassandra - 在 Cassandra 中设置范围查询的主键
- excel - 如何基于一列导出多个excel
- google-coral - 带有 OpenCV 的 Coral USB 加速器
- node.js - 如何修复“我有作者和书籍架构,在 Postman 结果中,我想为一本书显示两个或多个作者”