如何将一个类的对象作为字符串运算符分配给变量?

我有上课的属性。

例如

class Caption
{  
   public string AR{get;set;}
   public string EN{get;set;}
   pbulic string Tu{get;set;}   
}

我想要例如直接将标题分配给副标题而无需调用属性

我要用这个

Caption caption=new Caption();
string myVar = caption;   // this will return EN property directly

而不是

string myVar = caption.En;

我不知道,但我认为这里有重载字符串运算符或用于目标类本身的东西。

为什么我需要这个?仅出于本地化的目的,并且在本地化对象中具有更高的可读性。而每一次创建switch(language),然后分配caption.ENCaption.AR这将是丑陋的。

ChiefTwo铅笔

最干净的方法可能是实现索引器。这样一来,您就可以switch一次在类中进行任何检查language,处理问题,处理默认设置等操作,Caption而无需调用方法,例如:

class Caption
{
    public string AR { get; set; }
    public string EN { get; set; }
    public string Tu { get; set; }

    // var cap = new Caption()[language];
    public string this[string language]
    {
        get
        {
            var which = AR;
            switch(language)
            {
                case nameof(EN):
                    which = EN;
                    break;
                case nameof(Tu):
                    which = Tu;
                    break;
            }
            return which;
        }
    }
}

请注意,有可能实现您所需要的语法,在这里您可以将a隐式转换Captionstring需要注意的是,language在进行转换之前,您需要先了解

您可以通过提供一个在创建时和/或使用一种方法(如果需要的话,可链接的)来处理它的构造函数来实现此目的,就像我在下面的操作中那样For

class Caption
{
    public string AR { get; set; }
    public string EN { get; set; }
    public string Tu { get; set; }

    // Gets the caption of the current language
    public string Current { get; private set; }

    // If the language is known in advance, you can return
    // the desired language directly.
    public static implicit operator string(Caption caption) 
        => caption.Current;

    public Caption For(string language)
    {
        var which = AR;
        switch (language)
        {
            case nameof(EN):
                which = EN;
                break;
            case nameof(Tu):
                which = Tu;
                break;
        }
        Current = which;
        return this;
    }
}

// Usage
var cap = new Caption
{ 
    AR = "Test-ar",
    EN = "Test-en",
    Tu = "Test-tu"        
}.For("EN");

string s = cap;
Console.WriteLine(s); // Test-en

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试将一个变量分配给其他变量作为链接时,php中的数组到字符串转换错误

来自分类Dev

如何将int和字符串数组快速分配给一个字符串变量?

来自分类Dev

如何将JSON值分配给字符串变量

来自分类Dev

将运算符分配给R变量

来自分类Dev

如何将一个字符串附加到单词列表中的每个单词并将新单词列表分配给变量?

来自分类Dev

如何将公式的值(包含变量)分配给另一个变量

来自分类Dev

在Kotlin中,如何从字符串中获取一个类并将其分配给具有超类类型的变量?

来自分类Dev

如何将变量分配给具有特定索引的拆分字符串?

来自分类Dev

如何将二进制运算符分配给委托

来自分类Dev

如何将变量列表分配给另一个列表

来自分类Dev

如何将字符串的最后一个字符分配给变量?

来自分类Dev

如何将字符串分配给PHP变量以用于电子邮件模板?

来自分类Dev

如何将动态创建的对象分配给字符串?

来自分类Dev

尝试将一个变量分配给其他变量作为链接时,php中的数组到字符串转换错误

来自分类Dev

swift:如何将一个字符串从textField分配给另一个字符串?

来自分类Dev

如何将int和字符串数组快速分配给一个字符串变量?

来自分类Dev

如何将*附加到字符串并将预准备的SQL查询分配给另一个变量?即,(从*中选择*。)

来自分类Dev

如何将字符串分成两部分,然后将每个段分配给一个变量

来自分类Dev

android将两个字符串变量之一分配给另一个类中的一个字符串

来自分类Dev

将指针分配给字符串对象的第一个和最后一个索引

来自分类Dev

如何将数组中的字符串分配给 C 中的变量(来自函数)?

来自分类Dev

如何使用分配给变量的字符串作为对象键

来自分类Dev

如何将字符串分配给 int 变量?

来自分类Dev

如何将字符串和变量的组合分配给另一个变量?

来自分类Dev

如何将 JSON 字符串分配给谷歌饼图数据变量

来自分类Dev

如何将布尔对象分配给一个值?

来自分类Dev

如何将多个对象分配给一个数组?

来自分类Dev

如何将字符串中的字符分配给对象中的值?

来自分类Dev

我如何将除法运算符 / 分配给文本词“divided”或“divides”

Related 相关文章

  1. 1

    尝试将一个变量分配给其他变量作为链接时,php中的数组到字符串转换错误

  2. 2

    如何将int和字符串数组快速分配给一个字符串变量?

  3. 3

    如何将JSON值分配给字符串变量

  4. 4

    将运算符分配给R变量

  5. 5

    如何将一个字符串附加到单词列表中的每个单词并将新单词列表分配给变量?

  6. 6

    如何将公式的值(包含变量)分配给另一个变量

  7. 7

    在Kotlin中,如何从字符串中获取一个类并将其分配给具有超类类型的变量?

  8. 8

    如何将变量分配给具有特定索引的拆分字符串?

  9. 9

    如何将二进制运算符分配给委托

  10. 10

    如何将变量列表分配给另一个列表

  11. 11

    如何将字符串的最后一个字符分配给变量?

  12. 12

    如何将字符串分配给PHP变量以用于电子邮件模板?

  13. 13

    如何将动态创建的对象分配给字符串?

  14. 14

    尝试将一个变量分配给其他变量作为链接时,php中的数组到字符串转换错误

  15. 15

    swift:如何将一个字符串从textField分配给另一个字符串?

  16. 16

    如何将int和字符串数组快速分配给一个字符串变量?

  17. 17

    如何将*附加到字符串并将预准备的SQL查询分配给另一个变量?即,(从*中选择*。)

  18. 18

    如何将字符串分成两部分,然后将每个段分配给一个变量

  19. 19

    android将两个字符串变量之一分配给另一个类中的一个字符串

  20. 20

    将指针分配给字符串对象的第一个和最后一个索引

  21. 21

    如何将数组中的字符串分配给 C 中的变量(来自函数)?

  22. 22

    如何使用分配给变量的字符串作为对象键

  23. 23

    如何将字符串分配给 int 变量?

  24. 24

    如何将字符串和变量的组合分配给另一个变量?

  25. 25

    如何将 JSON 字符串分配给谷歌饼图数据变量

  26. 26

    如何将布尔对象分配给一个值?

  27. 27

    如何将多个对象分配给一个数组?

  28. 28

    如何将字符串中的字符分配给对象中的值?

  29. 29

    我如何将除法运算符 / 分配给文本词“divided”或“divides”

热门标签

归档