2016-09-22 12 views
0

私はASP.NET MVCが新しく、さらに拡張メソッドのほうが新しいです。拡張メソッドを新しいクラスに呼び出す

私はそう基本的にこれが何を鑑みてなされたもので、彼らが選択したものと一致するラベルを変更されている選択肢を比較しているに。

public static string ExtensionMethod(this Extension extype) 
    { 
     switch (extype) 
     { 
      case Extension.ONE: 
       return "Object one string"; 

      case Extension.TWO: 
       return "Object two string "; 

      case Extension.THREE: 
       return "Object three string"; 

      default: 
       return "Any other string"; 
     } 
    } 

を書いた拡張メソッドを持っていますイージーピーシー。
これで、正確な文字列を受信者に反映させます。だから私は自分の電子メールを管理するクラスを持っていますが、クラスに値を入れる方法を理解できません。

私の見解で、私は、これは偉大でそれをもたらしますが、私は別のクラスに

email.To = receiptInfo.EmailAddress; 
email.From = "email address"; 
email.Subject = "Reciept"; 
      var bodyFormat = new StringBuilder(); 
      bodyFormat.AppendLine("*RECEIPT*\t"); 
      bodyFormat.AppendLine("I want Object string to show up here"); 

EDIT

を拡張クラスを参照する方法が分からない

@Model.ViewModelReference.Extension(); 

を呼び出しますありがとうございました。私はこの

bodyFormat.AppendLine(MyNameSpace.MyExtension.Extension()); 

のようにそれを実装しますが、私は、引数のエラーを取得しています、と私はそれに置くべき引数ではありません100%確信している、またはそれそれも1を必要とします。私が()を追加しない場合、それは文字列に変換することはできませんエラーをスローします。私がextypeに入れたロジックを通して、それはどちらも好きではなく、現在のコンテキストでは存在しないと言います。

答えて

0

拡張メソッドが含まれているクラスを含めるだけで、拡張メソッドが利用できます。電子メールを管理し、あなたのクラスでは

追加:

using MyNameSpace.MyExtension; 

そして、それを使用して、ちょうどタイプExtensionの何かを持っているし、それをオフExtensionMethod()を呼び出します。だから、のようなものになります:あなたは、単にMyNameSpace.MyExtension.Extension()を呼び出すことはできません

using MyNameSpace.MyExtension; 

var myExtension = new Extension(); 
myExtension.ExtensionMethod() 

を、あなたは私の例では、私はmyExtension変数を持っている理由である、MyExtensionのインスタンスを必要としています。

+0

ありがとうございます。私はこのbodyFormat.AppendLine(MyNameSpace.MyExtension.Extension())のように実装しました。しかし、私は引数のエラーを取得している、と私はそれを置く必要がある引数を100%確かではない、またはそれも1つが必要です。私が()を追加しない場合、それは文字列に変換することはできませんエラーをスローします。 – BlowFish

+0

拡張メソッドを呼び出す方法を示すために私の答えを更新しました –

+0

これは驚くほどうまくいった、レッスンをありがとう。ほんとうにありがとう。すべての私の教育はフロントエンドなので、MVCを学び、すべてのバックエンドコーディングはかなり脳のストレッチです^^ – BlowFish

関連する問題