我正在尝试创建一个可以代替标准String对象使用的String对象。由于我将大量使用此“ LimitedString”,因此我的计划是创建一个保存Int / MaxLength和String / Value的对象。
由于将大量使用它,因此创建对象后唯一重要的是值(它在内部处理Length),我希望能够使用以下命令设置其“值” InitializedObject = String()而不是InitializedObject.Value = String()
到目前为止,我所做的一切都给了我错误。这是我在C#中做不到的事情吗?
这是对象的代码:
public class LimitedString{
private int _maxlength;
private string _value;
public LimitedString(int length, string text = "")
{
_maxlength = length;
_value = text;
}
private string Value
{
get { return _value; }
set { _value = _value.Truncate(_maxlength); }
}
//Operators
public static implicit operator string(LimitedString ls)
{
return ((ls == null) ? null : ls.Value);
}
public static implicit operator LimitedString(string text)
{
//Needs to return the LimitedString Object That is being manipulated
return text == null ? null : new LimitedString(text.Length, text);
}}
我也在使用此字符串扩展名
public static string Truncate(this string value, int maxLength)
{
if (string.IsNullOrEmpty(value)) return value;
return value.Length <= maxLength ? value : value.Substring(0, maxLength);
}
任何建议将不胜感激,请记住,在初始化对象之后,它必须保留其最大长度,并且字符串(值)仅需要对象才能访问。 我相信string = Object可以正常工作,但是我不能反过来工作。