2016-11-13 13 views
-3
switch (newButton.fileExtension) 
      { 
       case ".txt": 
        newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project Code\Project images\Text document.png"); 
        break; 
       case (".png") || (".jpg") || (".gif"): 
        newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project images\Picture document.png"); 
        break; 
       case ".doc": 
        newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project Code\Project images\Word Document.png"); 
        break; 
       default: 
        newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project Code\Project images\Unknown Document.png"); 
        break; 

      } 

switch文を使用してnewButtonファイルの種類を確認したいと思いますが、C#では "string"を実行できません。 "string"はこれに対処する方法があるのでしょうか?そうでなければIf Elseステートメントを使うべきですか?C#大文字と小文字の文字列または文字列

答えて

3

1 possiblitiyはあなたが何をしたい達成するのに役立ちますが、私は希望あなたが取ることができる別の方向を指すように。

私はこれらのボタンがクリックされると、異なる文書タイプを表すので、これらのボタンが異なることを確かめています。クリックハンドラにそのドキュメントタイプに関連するコードがあり、ハンドラはドキュメントタイプに基づいてコードのさまざまな部分を実行する必要がある他のメソッドを呼び出すことがあります。

TextDocument、PictureDocument、WordDocument、DefaultDocument、BaseDocumentの5つのクラスを作成します。 BaseDocumentには、ImagePathという名前の抽象プロパティと、抽象的なDocumentImageプロパティと、ボタンがクリックされたときに実行するコードに適した任意の抽象メソッドを配置できます。継承クラスは、パスを提供し、ImagePathプロパティを設定します。 ImagePathプロパティを設定すると、Imageオブジェクトを作成してDocumentImageプロパティを設定できます。

他の一般的なコードを探して、BaseDocumentクラスにプッシュしてください。その後、コードの重複が少なくなり、各文書タイプのコードが適切に分離されます。あなたはまた、よりクリーンなデザインを持っています。今は時間がありませんが、このアプローチのコードについて助けが必要な場合は、教えてください。私はあなたにそれを手伝うことができます。

+0

これはうまくいきました。 – User1

5

はちょうどそれらの間breakせずに複数のcaseのステートメントを使用します。

switch (newButton.fileExtension) 
     { 
      case ".txt": 
       newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project Code\Project images\Text document.png"); 
       break; 
      case ".png": 
      case ".jpg": 
      case ".gif": 
       newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project images\Picture document.png"); 
       break; 
      case ".doc": 
       newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project Code\Project images\Word Document.png"); 
       break; 
      default: 
       newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project Code\Project images\Unknown Document.png"); 
       break; 

     } 
0

他の回答する必要があります動作するはず

case ".png": 
case ".jpg": 
case ".gif": 
    newButton.Image = System.Drawing.Image.FromFile(@"Some Directory\Project images\Picture document.png"); 
    break; 
+0

しかし、私はファイルの種類に関係なく同じ方法を使用していました。このプロジェクトはクラウドストレージアプリでしたので、メソッドはダウンロード、アップロード、削除されました。これらのメソッドはファイルの種類に依存しません。唯一の違いは、グラフィカルな画像アイコンでした。将来のプロジェクトでは心配していますが、提案していただきありがとうございます。 – User1

関連する問題