What is the equivalent code in C# of the Vb 'Type'
本文关键字:the Vb Type of is equivalent code in What | 更新日期: 2023-09-27 18:25:53
我在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
是什么?
我已经很久没有看VB6代码了,但我相信这是一个固定长度的字符串。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;
}