【问题标题】:C# Variable Name AliasesC# 变量名别名
【发布时间】:2015-05-30 13:07:34
【问题描述】:

在我的程序中有很多具有相同名称变量的类(因为它们是从数据库中获取的,并且变量名称需要与数据库中的名称完全匹配)。

虽然子类化是一个很好的选择,但它也太过分了,并且无法处理我所追求的情况。具体来说,如果我的基类包含 100 个变量,那么我的所有子类都需要它们的任意组合,几乎需要与子类一样多的基类。因此,理想的路线是某种变量名别名。

我想知道是否有办法让我的所有班级都可以共享一个变量名称别名。

所以不是有

//an armor class
public class Armor
{
    public string name{ get; set; }
}

//a weapon class
public class Weapon
{
    public string name{ get; set; }
}

我可以有类似的东西

static class Aliases
{
   define name as NAME<String> //or 'something' like this
}

然后有

//an armor class
    public class Armor
    {
        public string NAME{ get; set; }
    }

    //a weapon class
    public class Weapon
    {
        public string NAME{ get; set; }
    }

然后,以防万一我们需要更改代码或数据库,我不必更新每个关联的类变量。我只是重命名或删除变量名别名。这可能吗(还是我在做梦)?

【问题讨论】:

    标签: c# variables naming-conventions alias


    【解决方案1】:

    您可以创建一个抽象基类,其中包含相似的名称。至少那时只有一个地方可以改变它。

    public abstract class Item
    {
        public string NAME { get; set; }
    }
    
    public class Armor : Item
    {
        // Other armor-specific stuff
    }
    
    public class Weapon : Item
    {
        // Other weapon-specific stuff
    }
    

    【讨论】:

    • 是的,我考虑过这个,但我很好奇变量的别名命名是否可行
    • 部分原因是各种物品会混搭。我需要很多基类和基类变体(如果我想避免不必要的变量导致类膨胀)。
    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2017-11-21
    • 2011-10-10
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    相关资源
    最近更新 更多