代码之家  ›  专栏  ›  技术社区  ›  Eng. M.Hamdy

建议使用静态类作为另一类型属性的值源

  •  0
  • Eng. M.Hamdy  · 技术社区  · 8 年前

    我有这门课:

    public struct Escapes
    {
        private readonly string Value;
        private Escapes(string value) => Value = value;
        public static implicit operator string(Escapes r) => r.Value;
        public override string ToString() => Value;
    
        public static readonly Escapes LineFeed = new Escapes("\n");
        public static readonly Escapes CarriageReturn = new Escapes(new Escapes("\r"));
        public static readonly Escapes Digit = new Escapes(@"\d");
        public static readonly Escapes NotADigit = new Escapes(@"\D");
        public static readonly Escapes WordChar = new Escapes(@"\w");
        //……………
    
        public static Escapes AsciiChar(byte asciiCode)
        {
            return new Escapes( @"\x" + Convert.ToString(asciiCode, 16).PadLeft(2, '0'));
        }
    
        public static Escapes Unicode(short uniCode)
        {
            return new Escapes(@"\u" + Convert.ToString(uniCode, 16).PadLeft(4, '0'));
        }
    }
    

    我也有这个班:

    public class CharOrEscape
    {
        public string Value;
        private CharOrEscape(string value) => Value = value;
        public static implicit operator CharOrEscape(Escapes s) => new CharOrEscape(s.ToString());
        public static implicit operator CharOrEscape(char c) => new CharOrEscape(c.ToString());
        public static implicit operator string(CharOrEscape s) => s.ToString();
        public override string ToString() => Value;
        public override bool Equals(object obj) => ((CharOrEscape)obj).Value == Value;
    }
    

    我想告诉intellisense任何类型的属性或参数 CharOrEscape

    我曾经看到过这样一个代码,它使用了一些属性,但是我丢失了这个项目,无法通过google搜索再次找到它。

    1 回复  |  直到 8 年前
        1
  •  1
  •   HopAlongPolly    8 年前

    如果我正确地理解了这个请求,您可以只评论 CharOrEscape 带着这样的东西

    ///<summary></summary>
    ///<typeparamref name="Escapes"/>
    public string Value;
    ...
    

    docs page