我一直在尝试这几种不同的方式,但我得出的结论是它无法完成.这是我过去从其他语言中享受的语言功能.这只是我应该注销的东西吗?
Jon*_*eet 59
不,C#不支持静态索引器.然而,与其他答案不同,我看到如何轻松地指出它们.考虑:
Encoding x = Encoding[28591]; // Equivalent to Encoding.GetEncoding(28591)
Encoding y = Encoding["Foo"]; // Equivalent to Encoding.GetEncoding("Foo")
Run Code Online (Sandbox Code Playgroud)
我怀疑这种情况相对较少使用,但我认为它被禁止是奇怪的 - 就我所见,它给出了不对称的特殊原因.
Geo*_*dze 16
您可以使用静态索引属性模拟静态索引器:
public class MyEncoding
{
public sealed class EncodingIndexer
{
public Encoding this[string name]
{
get { return Encoding.GetEncoding(name); }
}
public Encoding this[int codepage]
{
get { return Encoding.GetEncoding(codepage); }
}
}
private static EncodingIndexer StaticIndexer;
public static EncodingIndexer Items
{
get { return StaticIndexer ?? (StaticIndexer = new EncodingIndexer()); }
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
Encoding x = MyEncoding.Items[28591]; // Equivalent to Encoding.GetEncoding(28591)
Encoding y = MyEncoding.Items["Foo"]; // Equivalent to Encoding.GetEncoding("Foo")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8184 次 |
| 最近记录: |