首页 > 其他分享 >关于c#:如何在不同的命名空间中处理相同的类名?

关于c#:如何在不同的命名空间中处理相同的类名?

时间:2023-06-07 11:32:22浏览次数:40  
标签:MyCompany 相同 Utilities var 名称 命名 using Method 类名

How to handle same class name in different namespaces?

我正在尝试创建一个通用的库结构。 我通过为我想要的每个公共库创建单独的项目来做到这一点

我有以下2个命名空间:MyCompany.ERP和MyCompany.Barcode

我需要他们两个都有一个名为" Utilities"的类并且是静态的。 如果这样做,我将需要在我的静态类之前指定完整的名称空间名称,以便对其进行访问。

还有其他首选的方式吗?

或者我应该在BarcodeUtils和ERPUtils等类中使用不同的名称?


If i do that i will then need to specify the full namespace name before my static class in order to access it?

不,虽然细节取决于将使用这些类型的类及其具有的using声明,但不需要这样做。

如果仅使用类中的名称空间之一,则不会有歧义,您可以继续使用该类型。

如果同时使用两个名称空间,则要么必须完全限定使用范围,要么使用名称空间/类型别名来消除类型的歧义。


using ERPUtils = MyCompany.ERP.Utilities;
using BCUtils = MyCompany.Barcode.Utilities;

public void MyMethod()
{
  var a = ERPUtils.Method();
  var b = BCUtils.Method();
}

没有其他办法了。您可以在using指令中创建别名:


using MC=MyCompany.ERP;
using MB=MyCompany.Barcode;
...
public void Test()
{
  var a = MC.Utilities.Method();
  var b = MB.Utilities.Method();
}

这是管理它们的最简单方法。

 

 



标签:MyCompany,相同,Utilities,var,名称,命名,using,Method,类名
From: https://blog.51cto.com/u_4018548/6430588

相关文章

  • 项目命名约定
    http://maven.apache.org/guides/mini/guide-naming-conventions.html确定是否是多模块如果是单模块com.zno2.项目名如果是多模块com.zno2.项目名.模块1com.zno2.项目名.模块2以人为镜apache.org项目:maven类型:多模块<parent><groupId>org.apache.maven</groupI......
  • 案例4 自动化用例收集、重命名、生成
    案例需求假设你们有一套基于qtaf的多人合作测试框架,已经积累了很多测试用例,但是随着用例的增多,发现一些问题:需要统计下每个模块、每个人的用例数量最开始的用例优先级规划较为混乱,需要重新规划,需要你把当前所有用例整理出来(Excel或CSV)有些用例脚本文件名和其中的测试类名......
  • QT的特殊命名空间方式和C++对比
    Qt有以下的写法QT_BEGIN_NAMESPACEnamespaceUi{classWidget;}QT_END_NAMESPACE在开始和结束关键字中间进行命名空间的创建及其内部类的声明 而C++则是直接进行创建namespaceMyNamespace{//在MyNamespace命名空间内定义的类、函数、变量等classMyC......
  • 由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作
    项目中,对Jasperrpeorts-4.1.2核心包进行了升级,发现,前端flex无法对Jasperrpeorts的格式进行解析了~iReport4.1设计的模版可以解析,而iReport4.6设计的模版就不行了~断点后,对比了从后台传过来的Jasperrpeorts的xml数据,发现存在差异 4.1.2包生成的xml数据jasperPrint标签......
  • 视频直播网站源码,Java过滤相同name的字符
    视频直播网站源码,Java过滤相同name的字符第一种 privatestaticStringss(Stringname)  {    String[]str=name.split(",");    if(str.length==0)    {      returnnull;    }    List<String>list=ne......
  • set注入专题2和p命名空间注入
    set注入专题1接上  代码写在course5中1. set注入专题之级联属性赋值  25要点:● 在spring配置文件中,如上,注意顺序。● 在spring配置文件中,clazz属性必须提供getter方法com.powernode.spring6.beanClazzpackagecom.powernode.spring6.bean;/***set注入专题之级联属性赋......
  • k8s问题解决 - 删除命名空间长时间处于terminating状态
    一行命令解决,注意替换两处待删命名空间字样kubectlgetnamespace"待删命名空间"-ojson\|tr-d"\n"|sed"s/\"finalizers\":\[[^]]\+\]/\"finalizers\":[]/"\|kubectlreplace--raw/api/v1/namespaces/待删命名空间/finali......
  • linux命名管道
    管道是进程间通信的主要手段之一。一个管道实际上就是个只存在于内存中的文件,对这个文件的操作要通过两个已经打开文件进行,它们分别代表管道的两端。管道是一种特殊的文件,它不属于某一种文件系统,而是一种独立的文件系统,有其自己的数据结构。根据管道的适用范围将其分为:无名管道和命......
  • 真的勇士,才敢把文档命名为「最终版」
    前几天,年轻的同事在群里发了一个文档,名字叫「XXXX最终版」。大家一看就知道,未来一定还会出现——最终版-1最终版-2真最终版最终最终版绝对不再改版……再改我就死给你看版……所以,我的做法是,命名一般是按日期来,名称最后写一些关键信息:「20170525XXXX」「20170527XXXX评审后修改......
  • neo4j,python,批量建立节点时,会重复建立相同名称节点。去重。
    前提经过度娘得知,可以使用第三方包去重,但只管去重,你后面关系乱了人家第三方包不管。=-=或者直接在neo4j里面使用数据库语言去重,但关系还是得重新建立。况且,我想用python去重。干货来了后来,我换了个思路,那么就是合并节点。(虽然跟去重差不多)但总归总做出来了使用NodeMatcher......