The*_*dge 2 c# string-length compile-time
我想声明一个C#值类型,它只允许特定长度的字符串.所述长度应在编译时验证.这在Delphi中是可行的:
type
TString10 = string[10];
Run Code Online (Sandbox Code Playgroud)
如果我使用所说的tyoe:
var
sTen : TString10;
sTen := '0123456789A'; //This generates a compile time error
Run Code Online (Sandbox Code Playgroud)
现在据我所知,你不能在C#中声明一个固定长度的字符串类型.我见过的各种解决方案都不提供C#的编译时检查.因为我准备声明我自己的C#值类型结构这是我可以实现的东西.Format()吗?
所有帮助和指示非常感谢.
PS.我真的想实现字符串长度分配的编译时间检查,所以请不要"你为什么......?"
鉴于System.String具有此构造函数重载:
public String(char[] value)
Run Code Online (Sandbox Code Playgroud)
你可以像这样创建自己的值类型:
public struct FixedLengthString
{
private readonly string s;
public FixedLengthString(char c1, char c2, char c3)
{
this.s = new string(new [] { c1, c2, c3 });
}
}
Run Code Online (Sandbox Code Playgroud)
这个特殊的例子会给你一个正好三个字符的字符串,初始化如下:
var fls = new FixedLengthString('f', 'o', 'o');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3658 次 |
| 最近记录: |