如何实例化具有只读属性的类

本文关键字:只读属性 实例化 | 更新日期: 2023-09-27 17:50:20

我想从所有必需的信息中创建一个AudioFormat类的实例。

基本上,我有

  • int
  • int通道
  • int SamplesPerSecond
  • WaveFormatType WaveFormat
问题是,简单地使用像 这样的东西
AudioFormat format = new AudioFormat();
format.BitsPerSample = BitsPerSample;
[...]

不工作,因为Property or indexer 'System.Windows.Media.AudioFormat.BitsPerSample' cannot be assigned to -- it is read only .

是否有一个简单的方法来创建这样一个对象?如果没有,我应该如何创建它?使用继承,重写属性使它们有setter ?创建对象的XML表示,然后反序列化它?使用其他一些丑陋的黑客(没有unsafe:-))?

如何实例化具有只读属性的类

您不应该直接创建这个类。
它的存在是为了使用内部构造函数从AudioCaptureDevice类和SupportedFormats属性返回信息。

如果你想把它用于你自己的目的,你应该创建你自己的类