【发布时间】:2019-10-13 18:52:18
【问题描述】:
我有一个有属性的类。
举例
class Caption
{
public string AR{get;set;}
public string EN{get;set;}
pbulic string Tu{get;set;}
}
我想例如直接将 Caption 对象分配给 vairable 而无需调用属性
我想用这个
Caption caption=new Caption();
string myVar = caption; // this will return EN property directly
而不是
string myVar = caption.En;
我不知道,但我认为目标类本身有重载字符串运算符或其他东西。
为什么我需要这个?只是为了本地化的目的和本地化对象的更多可读性。
而是每次创建switch(language),然后分配caption.EN,Caption.AR。会很丑的。
【问题讨论】:
-
您可以添加一个构造函数来接受例如
CultureInfo参数。覆盖ToString()以返回构造函数中指定的语言的 Caption。您可以将与特定文化中的文本相对应的所有字符串存储在字典中,而不是为每种文化使用公共属性。从 JSON 文件加载也更容易。 -
您可以覆盖 Caption 类中的 ToString() 方法,但是您必须说 string myVar = caption.ToString() 才能访问它。
标签: c# string class operators overloading