我有一个旧系统VB6,现在我正在尝试使用C#.
我有这个 VB6 代码:
Private Type T_Parameters
Name As String * 16 (What is this ? '* 16')
YearsOld As Byte
Day As Byte
End Type
中的等效代码是C#什么?这是什么Type?
自从我查看 VB 6 代码以来已经有很长时间了,但我相信这是一个固定长度的字符串。.NET 不支持固定长度的字符串,但您可以使用char[]. 我相信 C# 等价物是:
private class T_Parameters
{
public string Name { get; set; }
public byte YearsOld { get; set; }
public byte Day { get; set; }
}
或者可能是这样,这将阻止用户更改Name字段的大小:
private class T_Parameters
{
public char[] Name { get; private set; }
public byte YearsOld { get; set; }
public byte Day { get; set; }
public T_Parameters() {
Name = new String(' ', 16).ToCharArray();
}
}
或者,您可以这样做:
private class T_Parameters
{
private string name = new String(' ', 16);
public string Name
{
get { return this.name; }
set { this.name = value.PadRight(16, ' ').Substring(0, 16); }
}
public byte YearsOld { get; set; }
public byte Day { get; set; }
}
使它成为一个struct,像这样:
private struct T_Parameters
{
string Name;
byte YearsOld;
byte Day;
}
或者一个class,像这样:
public class T_Parameters
{
public string Name { get; set; }
public byte YearsOld { get; set }
public byte Day { get; set; }
}
class或之间如何取舍struct?
选择struct,如果:
否则,选择class。
您是否正在寻找构建结构?
private struct T_Parameters
{
string Name;
byte YearsOld;
byte Day;
}