我想构建自己的类Vector
但是C#中已存在具有该名称的类。
我可以将其命名为Vector
,还是迟早会遇到问题?
答案 0 :(得分:5)
只要它位于另一个名称空间中,就可以拥有重复的类名。
所以这很好:
namespace Mine
{
class Vector
{ }
}
请注意,如果要包含自己的Vector
类和BCL类的命名空间,可能会出现问题。
using Mine;
using System.Windows;
Vector v;
v
的类型现在不明确,因此您必须提供命名空间:
Mine.Vector v;
这本身并不是一个问题,但是当你混淆时它可能会变得棘手。
答案 1 :(得分:4)
只要namespace与现有的Vector
类不同,就可以了。
假设你有这个课程
namespace MyNamespace
{
public class Vector
{
// properties here
}
}
以下是区分两个命名空间的方法
using MyNamespace;
using System.Windows;
public void MyMethod()
{
// this refers to your Vector class
MyNamespace.Vector v1;
// this refers to the existing Vector class from System.Windows namespace
System.Windows.Vector v2;
}
或者您也可以使用别名命名空间
using MyNamespace;
using OriginalNamespace = System.Windows;
public void MyMethod()
{
// this refers to your Vector class
MyNamespace.Vector v1;
// this refers to the existing Vector class from System.Windows namespace
OriginalNamespace.Vector v2;
}