如果我将自己的班级称为“矢量”,我是否会引发问题?

时间:2014-11-17 10:27:51

标签: c# namespaces

我想构建自己的类Vector但是C#中已存在具有该名称的类。 我可以将其命名为Vector,还是迟早会遇到问题?

2 个答案:

答案 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;
}