System名称空间的烦恼

问题描述

在自己的程序中使用了myName.System.UI名字空间,竟然在这个名字空间下,VS2005自动屏蔽System名字空间。在很多自动生成的代码里System.Form,System.Drawing,System.Console都不能直接使用。其实就是在不同层次下出现重名的namespace问题。在不改变自定义名字空间的前提下,请教谁有简单的办法解决这个问题。

解决方案

解决方案二:
try->usingSystem;usingSystem.Windows;//....usingmySys=myName.System;usingmySysUI=myName.System.UI;//然后自己的使用mySys.MyClazzclz=new..mySysUI.AnyClazzclz=new...
解决方案三:
谢谢晓风残月。这个情况下用别名不是很有效。看下面一个例子:usingSystem.Collections.Generic;usingSystem.Text;namespaceErrorTest.System.Test{classProgram{staticvoidMain(string[]args){System.Console.WriteLine("Hello!");//***}}}//***所注释的位置System被默认为ErrorTest.System,如果前面usingSystem,此处改为Console.WriteLine("Hello!");则通过。问题在于,有很多VS自动生成的代码是自动使用完整的名字空间,比如在生成UI控件的时候往往会使用System.Windows.Form等。而且每次保存操作后都会自动重新生成,开发时每次保存完都手工更改工作量比较大,也容易出现错误。
解决方案四:
你真的尝试过?当你用using导入别名的时候usingmySys=myName.System;usingmySysUI=myName.System.UI;编译器只认mySys的存在,并不会去认myName.System,也就是说myName.System对于编译器来说,是透明的。因此,假如编译器碰到System的时候,它是根据usingSystem;这句来寻找类型的我的项目就是这样的解决的,假如你的场景真的不行,那我得再严格测试以下了...
解决方案五:
嗯,仔细研究下,你是在定义类型的时候,导致命名冲突,而我是在使用类型的时候,用usingalias解决问题,所以,你的情况可能真的存在考虑使用global::看看global::System.Console.WriteLine("HelloWorld");或者仔细查找下VS的选项设置里面,是否可以去掉自动生成完全限定名的
解决方案六:
或者,自己设计【类模板】,默认导入usingSystem;看是否可行
解决方案七:
是的。namespaceErrorTest.System.Test{usinges=ErrorTest.System;classProgram{staticvoidMain(string[]args){System.Console.WriteLine("Hello!");}}}这个例子中无论usinges=ErrorTest.System;写在namespaceErrorTest.System.Test内部或外部,System.Console.WriteLine("Hello!");的System还是被认为是ErrorTest.System。
解决方案八:
谢谢上面的建议。global::和类模板在自己定义的模板中比较好用。现在主要问题是VS自动生成的代码。
解决方案九:
选项里还没有找到。
解决方案十:
1楼正解,改namespace别名

时间: 2024-12-09 15:26:29

System名称空间的烦恼的相关文章

PHP V5.3 中的新特性,第 3 部分: 名称空间

很多语言都提供了名称空间特性,包括 C++ 和 Java 编程语言.引入名称空间是为了帮助组织大型的代码库,因为在大型代码库中,应用程序经常会出现函数名或类名重叠问题,这会引起其他问题.使用名称空间可以帮助识别代码提供的函数或实用程序,甚至可以帮助指定其来源.一个例子就是 C# 中的 System 名称空间,它包含有 .NET 框架提供的所有函数和类. 在其他未提供正式名称空间的语言中(比如 PHP V5.2 以及更早版本),人们常常通过在类或函数名中使用特定的命名约定来发挥名称空间的作用.比如

创建、查询、修改带名称空间的 XML 文件的例子

xml|创建 XML的应用越来越广泛了,如Vista.Flex编程都将使用 XML,正确掌握XML的各种操作,对提高编程效率至关重要.下面就是一个综合处理带名称空间的XML的例子.C#:string w3NameSpace = "http://www.w3.org/2000/xmlns/";System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); //创建根节点System.Xml.XmlNode root = doc.Cre

ASPX文件中默认导入的名称空间

ASPX默认导入的名称空间可以直接引用了,使用其它的名称空间就的自行导入了. 默认名称空间  System  System.Collections  System.Collections.Specialized  System.Configuration  System.Text  System.Text.RegularExpressions  System.Web  System.Web.Caching  System.Web.Security  System.Web.Se

(一一二)名称空间

在C++之中,名称可以是变量.函数.结构.枚举.类以及类和结构的成员.随着项目的增大,名称相互冲突的可能性也将增加.   使用多个厂商的类库时,可能导致名称冲突.   例如两个类库都定义了名称为List.Tree和Node的类,但定义的方式并不兼容(一个干这个,一个干那个),如果你需要使用第一个的List,第二个的Tree,你就不能一口气把两个类库都包含进去(就像using namespace std和using std::cout那样),这会导致冲突,被称为名称空间问题.     声明区域:

C#同一个名称空间里,两个类,A类中有个单击事件,B类有个方法

问题描述 C#同一个名称空间里,两个类,A类中有个单击事件,B类有个方法 怎么实现A中一单击就B中方法就执行????? 谢谢!!!!!!! 解决方案 a.Click += new EventHandler((se, ar) => { b.方法(参数...); }); 解决方案二: 事件不是A自己响应的,是A实例的持有者响应的. 到响应的地方去调用B实例的方法(除非是静态方法,普通方法必须有实例才能调用). 解决方案三: 在a的单击事件中写: new B().click(); 解决方案四: usi

system表空间不足的问题分析(二)

今天收到一条不太起眼的报警邮件,大体内容是某个表空间的空间有些紧张了.大体内容如下:Tablesapce: CMBI_SNZG_DATA: 92.2%  [Warning!] 根据这个信息,很明显是需要添加数据文件了,但是同时还有一个警告就是磁盘空间也告警了,那么这个看起来简单的问题得好好琢磨琢磨了,其实是几件事,一件是做一些数据清理,释放部分表空间,甚至可以通过释放数据文件的空间来进一步释放磁盘空间,第二件是给表空间告警的表空间添加数据文件. 首先查看数据库中的用户占有的数据量的情况,可以看到

.net下对具有名称空间的XML使用XPath的方法

xml    这两天都在对一个其他公司提供的RSS接口进行编程,由于他们RSS提供的是1.0版本,其中的XML部分是有名称空间的,为此这一两天为了这个,摔了很多跟头,Unicode 编码的问题,XPath 的问题,XSLT 解析的问题.下面把这些问题的解决方法罗列出来,方便后来者.         使用 XPath 的问题: 由于存在名称空间,你的XPath需要额外的通过 XmlNamespaceManager 类进行一些设置.这个方法是我在:http://www.error-bank.com/

PHP教程:PHP代码中的名称空间

在 PHP V5.3 中引入的名称空间是为 PHP 类.常量和函数提供上下文的一种方式,从而可以将使用相同名称的元素看作是惟一的.惟一的名称避免了命名冲突,当两个类或函数使用相同的名称时就会发生这种情况.有时这些 PHP 类表示现实世界中的相同对象,但它们的行为是完全不同的.名称空间能够确保您拥有正确的 PHP 类.常量或函数,并且要使用您的 PHP 类的人能够确保他们使用了正确的类. 代码中的名称空间就像现实世界中的上下文.考虑一个表示现实世界中的汽车对象的类.例如,通过 Internet 销

详解Oracle的SYSTEM表空间的管理及备份恢复

SYSTEM表空间是Oracle数据库最重要的一个表空间,存放了一些DDL语言产生的信息以及PL/SQL包.视图.函数.过程等,称之为数据字典,因此该表空间也具有其特殊性,下面描述SYSTEM表空间的相关特性及备份与恢复.   一.SYSTEM表空间的管理 1.建议不存放用户数据,避免用户错误导致系统表空间不可用 应当为系统设定缺省的默认表空间来避免用户创建时使用系统表空间 ALTER DATABASE DEFAULT TABLESPACE tablespace_name SQL> col pr