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

发布于 2024-11-01 18:21:35 字数 832 浏览 4 评论 0原文

我想创建 AudioFormat 类中包含所有必需的信息。

基本上,我拥有的是

  • int BitsPerSample
  • int Channels
  • int SamplesPerSecond
  • WaveFormatType WaveFormat

问题是,简单地使用类似的东西

AudioFormat format = new AudioFormat();
format.BitsPerSample = BitsPerSample;
[...]

是行不通的,因为无法分配属性或索引器“System.Windows.Media.AudioFormat.BitsPerSample”——它是只读的。

有没有一种简单的方法来创建这样的对象?如果没有,我应该做什么来创建它?使用继承,重写属性以便它们具有设置器?创建对象的 XML 表示形式然后反序列化它?使用其他一些丑陋的黑客(没有不安全:-))?

I want to create an instance of the AudioFormat class from all the required information.

Basically, what I have is

  • int BitsPerSample
  • int Channels
  • int SamplesPerSecond
  • WaveFormatType WaveFormat

The problem is, that simply using something like

AudioFormat format = new AudioFormat();
format.BitsPerSample = BitsPerSample;
[...]

doesn't work, since Property or indexer 'System.Windows.Media.AudioFormat.BitsPerSample' cannot be assigned to -- it is read only.

Is there an easy way to create such an object? If not, what should I do to create it? Using inheritance, overriding the properties so that they have setters? Creating an XML representation of the object and then deserialize it? Using some other ugly hacks (no unsafe :-) )?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光病人 2024-11-08 18:21:35

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

如果您尝试将其用于自己的目的,则应该创建自己的类。

You are not supposed to create this class directly.
It exists to return information from the AudioCaptureDevice class, from the SupportedFormats property, using an internal constructor.

If you're trying to use it for your own purposes, you should create your own class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文