Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 创建具有多个只读属性的类的实例_Vb.net_Properties_Immutability_Instantiation - Fatal编程技术网

Vb.net 创建具有多个只读属性的类的实例

Vb.net 创建具有多个只读属性的类的实例,vb.net,properties,immutability,instantiation,Vb.net,Properties,Immutability,Instantiation,创建和初始化具有多个只读属性的类实例的优雅方法是什么?在构造函数中传递所有值不是很方便 其目的是实例在初始化后是不可变的。但是,如果构造函数不用于初始化所有属性值,那么如何从另一个类更改只读属性 它们是只读的,因此在构建后无法修改。这种行为是故意的 如果要减少参数计数,请查看,您有两个选择 创建一个公共子类以在初始化后更新变量,或者将更新添加到类的私有方法中的另一段代码中 您可以使用反射来更新私有变量值 第一种方法是目前为止最好的选择,第二种方法是一种攻击。类本身已经充当了ParameterOb

创建和初始化具有多个只读属性的类实例的优雅方法是什么?在构造函数中传递所有值不是很方便


其目的是实例在初始化后是不可变的。但是,如果构造函数不用于初始化所有属性值,那么如何从另一个类更改只读属性

它们是只读的,因此在构建后无法修改。这种行为是故意的

如果要减少参数计数,请查看

,您有两个选择

  • 创建一个公共子类以在初始化后更新变量,或者将更新添加到类的私有方法中的另一段代码中

  • 您可以使用反射来更新私有变量值


  • 第一种方法是目前为止最好的选择,第二种方法是一种攻击。

    类本身已经充当了ParameterObject!但正如模式描述所表明的,为不同的常见用例和/或mutator方法使用多个构造函数可能是有用的想法+我想我可以把这个类划分成一堆参数对象,这些参数对象对相关参数进行分组。