2017-05-03 3 views
0

C#が、私は次のエラーでいくつかの助けを探しています「『タイプ』ですが、変数のように使用される」

'Practical_2.Card' is a 'type' but is used like a 'variable'

これは私のコードです:

class Tester 
{ 
    static void Main(string[] args) 
    { 
     Card[] hand = { 
          new Card("Spade", 3), 
          new Card("Club", 10), 
          new Card("Diamond", 11), 
          new Card("Heart", 9), 
          new Card("Diamond", 13), 
         }; 
     ProcessHand(hand); 

    }//end of static void main 

    static void ProcessHand(Card[] cards) 
    { 
     Console.WriteLine("{0,-10:s}: {1,-10:i}", "suit: ", Card[0]); 

    }//end of static void processhand 
}//end of class Tester 
class Card 
{ 
    public string suit { get; set; } 
    public int facevalue { get; set; } 
    public Card (string su, int fa) 
    { 
     suit = su; 
     facevalue = fa; 

    } 
    public void DisplayCard() 
    { 
     Console.WriteLine(suit, facevalue); 

    } 
}//end of class Card 

私が手この行のエラー:Console.WriteLine("{0,-10:s}: {1,-10:i}", "suit: ", Card[0]);

私は大歓迎です。 乾杯

答えて

5

Card[0]cards[0]する必要があります - Cardコンパイラがあなたの配列がcards命名され、あなたが言っているように、タイプです。

+0

はあなたに感謝:)私は実際にそれをしようとしなかったが、「Practical_2.Card:スーツ」で発表された別のstackoverflowの質問からこの素晴らしい答えを確認してください。 P – royalrekesh

+0

デフォルトで 'ToString'メソッド(' Card'インスタンスを 'Console.WriteLine'に渡すときに呼び出されるものです)は、クラスの名前を返します。あなたが' suit 'あなたの' cards'配列の '0 'に' Card'の 'Card'の中に' cards [0] .suit'を使ってください。 –

1

あなたはこの代わりにしたい:

 Console.WriteLine("{0,-10:s}: {1,-10:i}", "suit: ", cards[0]); 

Cardcardsとしてあなたの変数、関数に渡され始めるの配列であるタイプ(クラス)、です。

-1

prestonとsovempは、タイプミスが原因でエラーが発生したと言いました。これは、C#で大文字と小文字が区別されるためです。私は、コードを実行したとき:あなたがより多くを知りたい場合は

は、恐ろしいWhy is C# Case Sensitive?

+0

最初の半分は投票/ 'エラーは、最初の場所に誤植であるとは思わない) –

+0

@AlexeiLevenkovありがとう!、私はまだstackoverflowがどのように動作するか新しいです。 –

関連する問題