如何在C#中的记录中声明固定长度的字符串类型?

问题描述 投票:0回答:1

我正在尝试在 C# 中创建一个记录类型,其中一些字段作为固定长度字符串。

我只是想用这个记录来进一步阅读预定义的文件格式。

我试过这个:

  public record Person (int  age, fixed char  birthdate[8]);

但是,我收到以下错误

无法在变量声明中指定数组大小(尝试使用“新”表达式进行初始化)CS0270

我使用的是 Visual Studio Code 版本:1.88.1(通用)。

你能帮我吗?

提前致谢, 马里奥

c# string fixed
1个回答
0
投票

首先,最好的方法是使用 Datetime,如注释所述,但如果不能,则可以在记录构造函数上抛出异常:

public record Person
{
    public int Age { get; set; }
    public string Birthdate { get; set; }
    public Person(int age, string birthdate)
    {
        if (birthdate.Length == 8)
            throw new ArgumentException("Birthdate must be exactly 8 characters long.");

        Age = age;
        Birthdate = birthdate;
    }
}

这样,第一个示例将通过,但第二个示例将抛出异常

var validPerson = new Person(1, "012345678");
var invalidPerson = new Person(1, "0123456789");
© www.soinside.com 2019 - 2024. All rights reserved.