猿问
在 C# 中是否可以实例化一个具有值的类?
在 C# 中是否可以实例化一个具有值的类?也就是说,如果一个类包含一个数组,是否可以创建一个类,在类实例化时传递所需数组的长度?
慕的地6264312
浏览 153
回答 3
3回答
拉莫斯之舞
是的。最明显的方法是使用类的构造函数:class X{ public int[] MyArray { get; set; } public X(int arrayLength) { MyArray = new int[arrayLength]; }}您现在可以使用以下方法实例化它:X myX = new X(5);您还可以使用它的属性实例化一个类:class X{ public int[] MyArray { get; set; } public int ArrayLength { set { MyArray = new int[value]; } }}并按如下方式调用它:X myX = new X { ArrayLength = 5};我会选择第一个选项......
0
0
0
慕姐8265434
是的public class MyClass{ private readonly string[] _myArray; public MyClass(int arrayLength) { _myArray = new string[arrayLength]; }}var myClass = new MyClass(5);
0
0
0
不负相思意
您可以将长度作为构造函数参数传递。构造函数看起来像一个与类同名的方法,但没有返回类型(甚至没有void)。public class MyClass{ public MyClass(int arrayLength) { MyArray = new string[arrayLength]; } public string[] MyArray { get; }}此解决方案使用 getter only 属性。您可以在构造函数中或使用属性初始化程序对其进行初始化,但是一旦创建了对象,它就是只读的。您可以像这样创建一个MyClass对象:var obj = new MyClass(10);string firstElementOfArray = obj.MyArray[0];string lastElementOfArray = obj.MyArray[9];但是请选择比MyClassor更好的名字MyArray。真实姓名必须提供信息。一个类可以命名为StudentorVehicle或Invoice。该数组可以命名为Grades,Passengers或InvoiceLineItems。但是根据您的要求,该数组可以只是一个私有字段,不能从类外部访问。
0
0
0
随时随地看视频
慕课网APP
相关分类
C#
typedef入门问题
5 回答
我要回答