小编PIC*_*ain的帖子

在C#中,一个类可以继承自另一个类和接口吗?

我想知道一个类是否可以从类和接口继承.下面的示例代码不起作用,但我认为它传达了我想要做的事情.我想这样做的原因是因为我公司生产USB,串口,以太网等设备.我正在尝试开发一个通用组件/接口,我可以用它为我们所有的设备编写程序,这将有助于保持所有应用程序的常见事物(如连接,断开连接,获取固件)相同.

添加到这个问题:如果GenericDevice在不同的项目中,我可以将IOurDevices接口放在该项目中,然后如果我添加对第一个项目的引用,则使USBDevice类实现接口吗?因为想要引用一个项目,然后根据设备的不同实现不同的接口.

class GenericDevice
{
   private string _connectionState;
   public connectionState
   {
      get{return _connectionState; }
      set{ _connectionState = value;}
   }
}

interface IOurDevices
{
   void connectToDevice();
   void DisconnectDevice();
   void GetFirmwareVersion();
}

class USBDevice : IOurDevices : GenericDevice
{
   //here I would define the methods in the interface
   //like this...
   void connectToDevice()
   {
       connectionState = "connected";
   }
}

//so that in my main program I can do this...

class myProgram
{
   main()
   {
      USBDevice myUSB = new USBDevice();
      myUSB.ConnectToDevice;
   }
}
Run Code Online (Sandbox Code Playgroud)

c# inheritance components interface class

123
推荐指数
3
解决办法
12万
查看次数

Visual Studio最小化区域快捷方式?

Visual Studio中是否有一个快捷键可以最小化所有区域或+符号,这样我就不必单独点击每个区域?

keyboard-shortcuts visual-studio

53
推荐指数
3
解决办法
4万
查看次数

将货币文本解析为十进制类型的问题

我试图将像"$ 45.59"这样的字符串解析为小数.出于某种原因,我得到的例外是输入格式不正确.我并不关心所有本地化的东西,因为这不是一个全球性的计划.这就是我在做的事情.你看到有什么问题吗?

NumberFormatInfo MyNFI = new NumberFormatInfo(); 
MyNFI.NegativeSign = "-"; 
MyNFI.NumberDecimalSeparator = "."; 
MyNFI.NumberGroupSeparator = ",";
MyNFI.CurrencySymbol = "$"; 
decimal d  = decimal.Parse("$45.00", MyNFI);    // throws exception here...
Run Code Online (Sandbox Code Playgroud)

c# parsing decimal number-formatting

48
推荐指数
2
解决办法
3万
查看次数

如何使事件处理程序异步运行?

我正在编写一个Visual C#程序,它在辅助线程上执行连续的操作循环.偶尔当该线程完成任务时,我希望它触发一个事件处理程序.我的程序执行此操作但触发事件处理程序时,辅助线程等待事件处理程序完成后再继续执行该线程.如何让它继续?这是我目前的结构方式......

class TestClass 
{
  private Thread SecondaryThread;
  public event EventHandler OperationFinished;

  public void StartMethod()
  {
    ...
    SecondaryThread.Start();      //start the secondary thread
  }

  private void SecondaryThreadMethod()
  {
    ...
    OperationFinished(null, new EventArgs());
    ...  //This is where the program waits for whatever operations take
         //place when OperationFinished is triggered.
  }

}
Run Code Online (Sandbox Code Playgroud)

此代码是我的某个设备的API的一部分.当触发OperationFinished事件时,我希望客户端应用程序能够执行它所需的任何操作(即相应地更新GUI),而不会导致API操作.

另外,如果我不想将任何参数传递给事件处理程序,我的语法是否正确使用OperationFinished(null, new EventArgs())

c# multithreading event-handling synchronous eventargs

41
推荐指数
4
解决办法
5万
查看次数

如何在没有Windows窗体的情况下接收即插即用设备通知

我正在尝试编写一个类库,它可以捕获Windows消息,以便在已连接或删除设备时通知我.通常,在Windows窗体应用程序中,我只是覆盖WndProc方法,但在这种情况下没有WndProc方法.还有其他方法可以收到消息吗?

c# overriding wndproc console-application winforms

32
推荐指数
2
解决办法
2万
查看次数

什么是C中的"打包"结构?

我将为Microchip C30编译器编写一些C代码,我经常看到结构定义如下:

typedef struct __attribute__((__packed__)) 
{
    IP_ADDR     MyIPAddr;               // IP address
    IP_ADDR     MyMask;                 // Subnet mask
    IP_ADDR     MyGateway;              // Default Gateway
        // etc...
} APP_CONFIG;
Run Code Online (Sandbox Code Playgroud)

包装是什么意思?

c microcontroller packed

30
推荐指数
3
解决办法
3万
查看次数

如何撤消Mercurial中所有添加的文件

假设我输入hg addMercurial,并且我的工作目录中有一堆未被跟踪的文件未被忽略.在没有明确键入每个文件的名称的情况下,取消添加所有这些文件的最简单方法是什么?

我可以用一个命令将它们全部取消吗?

mercurial undo add

26
推荐指数
2
解决办法
1万
查看次数

如何在C中仅设置某个字节的某些位而不影响其余位?

假设我有一个类似于1010XXXX的字节,其中X值可以是任何值.我想将低4位设置为特定模式,比如1100,同时保持高4位不受影响.如何在C中以最快的速度完成这项工作?

c byte bitmask

19
推荐指数
2
解决办法
3万
查看次数

无论目标机器的架构如何,如何获取程序文件的路径

我在C#/ .NET中编程.无论目标机器的架构是什么,我希望能够从目标机器返回Program Files目录.为了澄清,C (or whatever drive the OS is on):/Program Files无论他们的Windows版本有多大,我都希望它能够返回.

我只能在目录中进行硬编码,除非用户正在运行未安装在C:驱动器上的Windows,否则它将无法工作.

我发现

FileInfo(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) 
Run Code Online (Sandbox Code Playgroud)

但我认为它返回Program Files (x86)64位Windows机器上的文件夹.

.net c# special-folders program-files

17
推荐指数
1
解决办法
2万
查看次数

如何在Visual Studio中调试类库

我正在Visual Studio 2008中的类库(DLL)项目; 用C#编程.为了测试我的DLL,我刚刚创建了第二个项目,它是一个控制台应用程序,在该项目中我可以引用第一个和运行测试.有更简单的方法吗?我可以在我的类库项目中创建另一个文件,其中包含测试,然后以某种方式告诉Visual Studio运行该文件吗?

我知道一种方法是将一个文本文件添加到我的项目中,然后用JScript编写我的测试代码.然后在调试菜单上的项目设置中,我可以告诉它启动外部程序(JScript).然后,我的测试文件的名称将test.js进入"命令行参数"框.但是,我想知道是否有办法使用C#代码而不是JScript?

c# debugging dll class-library visual-studio

16
推荐指数
2
解决办法
3万
查看次数