2017-05-24 13 views
0

私はかなり新しいC#&です。.NET、私は2つの作業用アプリケーションを書いていますが、 )、さらなるプロジェクトでの再利用のためのモジュラー化を図ります。そうしようとする最初のものは、以下のように、シリアル・ポート・インターフェースです:シリアルポートクラスの新しいインスタンスを初期化して、コードをインターフェイスに移動しようとしています

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.IO.Ports; 

namespace TestSensor 
{ 
    public System.IO.Ports.SerialPort serialPort1 = new SerialPort(); 

    public interface Iserial 
    {  
     // guess these are like function prototypes 
     bool isOpen(int p); 
     //bool open(int serialInstance, string comPortNo, int baud); 
     //bool close(int p); 
    } 

    public class port : Iserial 
    { 
     public bool isOpen(int port) 
     { 
      if (port == 1) 
      { 
       if (serialPort1.IsOpen) return true; 
       else return false; 
      } 
      else if (port == 2) 
      { 
       if (serialPort2.IsOpen) return true; 
       else return false; 
      } 
      else return false; 
     } 
    } 
} 

しかし、私は方法を見つけることができない多くの検索や実験の後、エラーなしでシリアルポートの新しいインスタンスを初期化します。現在の試みは上記の原因 "CS0116名前空間にフィールドやメソッドなどのメンバーを直接含めることはできません" お探していただきありがとうございます!

+0

この問題は、名前空間にメンバーが含まれていない可能性があり、「seralPort1」メンバーがクラスの一部ではないことを示しています。それを 'port'クラスの一部に移動すると、エラーはなくなります。また、なぜあなたが物事を「推測」しているのかもわかりません。開発者は、コードが何をしているのか、そしてその理由を正確に100%確かめるべきではありません。あなたは、インターフェイスでいくつかの読書を行う必要があります。 – itsme86

+0

@ itsme86ありがとう、私は勉強するのに十分な時間ではなく、通常の問題で、瞬間にすべてのものをもっと読む必要がある、はい、私は仕事の仕事を取得する必要があります異なる方法の負荷を試しました – chasher

+0

"推測"私が外に出ていくように自分自身に – chasher

答えて

0

ありがとうitsme86! ポートクラスに移動し、すべてが良好であることが示唆されました。

namespace TestSensor 
{ 


    public interface Iserial 
    {  
     bool isOpen(int p); 
     //bool open(int serialInstance, string comPortNo, int baud); 
     //bool close(int p); 
    } 

    public class port : Iserial 
    { 
     public System.IO.Ports.SerialPort serialPort1 = new SerialPort(); 
     public System.IO.Ports.SerialPort serialPort2 = new SerialPort(); 

     public bool isOpen(int port) 
     { 
      if (port == 1) 
      { 
       if (serialPort1.IsOpen) return true; 
       else return false; 
      } 
      else if (port == 2) 
      { 
       if (serialPort2.IsOpen) return true; 
       else return false; 
      } 
      else return false; 
     } 
    } 
} 
関連する問題