お世話になります。
C#を学習中の者です。
「独習C#」という本にて、
■任意の型の要素を持つリストを引数に受け取って、その内容をカンマ区切りの文字列でコンソールに出力するPrintListメソッド(静的なジェネリックメソッド)を作成せよ。
という問題があります。
回答は下記の通りですが、自環境だとToArray()の箇所で
「'List<T>' に の定義が含まれておらず、型 'List<T>' の最初の引数を受け付けるアクセス可能な拡張メソッド が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。」
のエラーが表示されます。
回答にはこの記載以外の説明がなく困っています。
よければご助言いただけないでしょうか?
よろしくおねがいします。
■本の回答
C#
1 static void PrintList<T>(List<T> list) 2 { 3 Console.WriteLine(String.Join(",",list.ToArray())); 4 }
■自環境のコード
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6using System.IO; 7 8 9namespace SelfCSharp 10{ 11 class UsingStatic 12 { 13 static void Main(string[] args) 14 { 15 } 16 } 17 18 public class List<T> 19 { 20 static void PrintList<T>(List<T> list) 21 { 22 Console.WriteLine(String.Join(",",list.ToArray())); 23 } 24 25 } 26}
質問文に書いてあるコードが信用できない。(実際usingを編集してる→あなたが必要だと思って抽出してる箇所に実際に不備があった)
その現象が発生する実際のコードで、他人の環境にコピペしてすぐ動作させる事ができるレベルのものを提示すべき。
新規に作ったコンソールアプリのprogram.csにちょっと足したレベルならそのまま全部貼れば良いだけ。
何を情報として提供すればわからない初心者の判断でコードを削らなようにしましょう。問題を再現できる必要最低限まで削って(回答者の方でもコピペすれば問題を再現できる程度に)それをアップするということなら是非やってほしいけど、質問に書かれたコードは問題外です。それが分からないのでしょうが、それでは文章でやりよりするここのような Q&A サイトでは話が通じないです。
手元の環境 (Visual studio 2019)だと、提示のコードでエラーは出ません。
エラーの出た環境、エラーコードはどうなっていますか?
直接、関係は無いと思いますが、全角スペースが文字列以外で使われています。プログラム中では、半角英数のみとした方がトラブルは少ないと思います。
エラーが出るソースと同じものではないようなので実際にはどんな間違いをしているのか知りませんが、メモ帳でなく Visual Studio を使えば一発でわかると思います。
> 自環境だとToArray()の箇所で
ここすら違うとか。
回答3件
あなたの回答
tips
プレビュー