gpt4 book ai didi

C# 固定字符串长度 - 编译时检查

转载 作者:行者123 更新时间:2023-11-30 19:03:07 26 4
gpt4 key购买 nike

我想声明一个只允许特定长度字符串的 C# 值类型。所述长度应在编译时验证。这在 Delphi 中是可行的:

type
TString10 = string[10];

如果我将所说的 tyoe 用作:

var
sTen : TString10;

sTen := '0123456789A'; //This generates a compile time error

据我了解,您不能在 C# 中声明固定长度的字符串类型。我见过的各种解决方案都没有为 C# 提供编译时检查。当我准备声明我自己的 C# 值类型结构时,这是我可以使用 .Format() 实现的吗?

非常感谢所有帮助和指点。

附言。我真的想要实现字符串长度分配的编译时检查,所以请不要“你为什么......?”

最佳答案

鉴于 System.String 具有 this constructor overload :

public String(char[] value)

您可以像这样创建自己的值类型:

public struct FixedLengthString
{
private readonly string s;

public FixedLengthString(char c1, char c2, char c3)
{
this.s = new string(new [] { c1, c2, c3 });
}
}

这个特定的例子会给你一个恰好三个字符的字符串,初始化如下:

var fls = new FixedLengthString('f', 'o', 'o');

关于C# 固定字符串长度 - 编译时检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com