我在引用中添加了OpenHardwareMonitorLib.dll
现在,我在代码中添加了:使用OpenHardwareMonitor.Hardware;。
然后我在顶层做了:等传感器传感器;
但是我不能“新建”它,我不能创建它的一个实例,并且我在构造函数中得到了空异常:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Reflection;
using System.Windows.Forms;
using OpenHardwareMonitor.Hardware;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
ISensor Sensor;
public Form1()
{
InitializeComponent();
string t = Sensor.Name;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
}
}无法创建抽象类或接口的OpenHardwareMonitor.Hardware的实例
我尝试在code.google.com站点:http://code.google.com/p/open-hardware-monitor/source/browse/#svn%2Ftags%2F0.3.2%2FWMI中查看源代码。
但我不想使用所有这些代码。我下载了Open Hardware Monitor程序,除了exe文件之外,还有一个dll文件,我现在在我的项目中使用它,我确信我可以使用dll来更容易地使用它。我现在想要的就是得到显卡gpu的温度。
发布于 2011-12-27 09:35:47
首先,你不能new接口。您只能对具体类执行new操作。
其次,我建议将变量从Sensor重命名为sensor或_sensor,或类似的名称。有一个Sensor类。最好避免混淆。
我所做的是下载动态链接库并在ILSpy中打开它。让我们来看看是什么类实现了这个接口。我强烈建议您下载ILSpy并亲自尝试一下。
这是生成的ILSpy window。现在在右下角,我在界面上做了一个“分析”,看看它暴露在哪里。似乎没有任何工厂方法返回ISensor。
回到左边,我们看到有一个类实现了ISensor:Sensor类。这个类有四个构造函数。这些将出现在Visual Studio的intellisense中,或者如果您导航到ILSpy中的Sensor类,您可以看到构造函数。
你最终需要做的就是sensor = new Sensor(...);关于你使用哪个构造函数……那随你的便。
https://stackoverflow.com/questions/8636639
复制相似问题