C# 建议将静态类作为其他类型属性的值源

C# 建议将静态类作为其他类型属性的值源,c#,intellisense,C#,Intellisense,我有这门课: 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; publ

我有这门课:

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;
}
我也有这门课:

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
类型的任何属性或参数都接受escape类型的值,因此自动完成列表提供了escape类的成员


我曾经在使用一些属性时看到过这样的代码,但我丢失了项目,无法通过谷歌搜索再次找到它

如果我正确理解了请求,您可以用这样的方式注释
CharOrEscape
的属性

///<summary></summary>
///<typeparamref name="Escapes"/>
public string Value;
...
///
///
公共字符串值;
...

您可以在

上阅读更多关于
Escape
结构的静态成员的内容,但仍然需要提及结构名称,因此仅编写
CharOrEscape x=Escapes.
并具有自动完成功能还不够吗?或者你是说别的什么?旁白:。请不要使用公共字段。您的
CharOrEscape.Equals
实现严重损坏。类
CharOrEscape
是否可以简单地继承类
escape
?我希望CharOrEscape按照名称处理Char或escape。所以,继承不会解决问题,除非我们在C#中有多重继承!这对我不管用。当我使用CharOrEscape类型的值变量时,Intellisence仍然没有提供任何建议。过去,您必须向编译器添加
/doc
标志,但现在我相信它是自动的。这可能有助于我不想在toool提示中查看某些信息。我希望自动完成列表弹出,并在用户将任何avlue分配给CharOrEscape类型的变量或参数时提供转义的成员。当然,如果我们能用常量定义一个变量,使其具有多种类型的值,事情就会变得更容易!我使用CharOrEscape作为解决方法。因此,您正在寻找Visual Studio来理解并证明CharOrEscape是一种转义?我看到了一个项目,该项目定义了一个具有属性的类,这些属性返回带有预定义模式的正则表达式,并使intellisense在将值分配给正则表达式值时从此CALS提供值。我又找不到这个项目了!