C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

コンパイルエラーについて /じゅん (18/07/11(Wed) 22:56) #87899
Re[1]: コンパイルエラーについて /Azulean (18/07/11(Wed) 23:34) #87900
│└ Re[2]: コンパイルエラーについて /じゅん (18/07/14(Sat) 11:32) #87931
│  ├ Re[3]: コンパイルエラーについて /なちゃ (18/07/14(Sat) 11:48) #87934
│  │└ Re[4]: コンパイルエラーについて /じゅん (18/07/14(Sat) 11:50) #87936
│  │  └ Re[5]: コンパイルエラーについて /WebSurfer (18/07/14(Sat) 14:08) #87938
│  ├ Re[3]: コンパイルエラーについて /武士 (18/07/14(Sat) 11:47) #87932
│  │├ Re[4]: コンパイルエラーについて /じゅん (18/07/14(Sat) 11:49) #87935
│  │└ Re[4]: コンパイルエラーについて /武士 (18/07/14(Sat) 11:47) #87933
│  └ Re[3]: コンパイルエラーについて /Jitta (18/07/14(Sat) 14:05) #87937
Re[1]: コンパイルエラーについて /shu (18/07/14(Sat) 14:47) #87939
  └ Re[2]: コンパイルエラーについて /じゅん (18/07/14(Sat) 14:55) #87940 解決済み


親記事 / ▼[ 87900 ] ▼[ 87939 ]
■87899 / 親階層)  コンパイルエラーについて
□投稿者/ じゅん (1回)-(2018/07/11(Wed) 22:56:18)

分類:[C#] 

Visualstudio2013で
'1' 型の引数が必要です
とコンパイルエラーがでて解決方法がわかりません。

エラーとなっているコードは以下です。
Action<XXX> test;

XXXの部分がエラーになっています。
[ □ Tree ] 返信 編集キー/

▲[ 87899 ] / ▼[ 87931 ]
■87900 / 1階層)  Re[1]: コンパイルエラーについて
□投稿者/ Azulean (961回)-(2018/07/11(Wed) 23:34:13)
No87899 (じゅん さん) に返信
> Visualstudio2013で
> '1' 型の引数が必要です
> とコンパイルエラーがでて解決方法がわかりません。

対象の .NET Framework のバージョンや書いているコードによってエラーの出方は変わります。

たとえば、.NET Framework 2.0 を対象にして「Action test;」と書くと「error CS0305: ジェネリック 型 'System.Action<T>' の使用には、1 型の引数が必要です。」となり、言われていることに近くなります。
この例だと、Action<int> といったように型を渡す必要があるところに型を書いていないからエラーになっています。


> エラーとなっているコードは以下です。
> Action<XXX> test;
>
> XXXの部分がエラーになっています。

伏せ字ではわかりませんし、再現できません。
たとえば、Action<int> test; と書いて、using System; が冒頭にあれば、ビルドは成功します。

このため、第三者に再現可能なサンプルを書いてもらわないと、問題解決は難しいかもしれません。
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87900 ] / ▼[ 87934 ] ▼[ 87932 ] ▼[ 87937 ]
■87931 / 2階層)  Re[2]: コンパイルエラーについて
□投稿者/ じゅん (3回)-(2018/07/14(Sat) 11:32:26)
2018/07/14(Sat) 11:39:31 編集(投稿者)
2018/07/14(Sat) 11:39:27 編集(投稿者)
2018/07/14(Sat) 11:37:12 編集(投稿者)
2018/07/14(Sat) 11:33:49 編集(投稿者)
2018/07/14(Sat) 11:33:47 編集(投稿者)

No87900 (Azulean さん) に返信
返信が遅くなり申し訳ございません。

FrameWorkのバージョンは3.5になります。
以下のエラーが出力されます。

「ジェネリック 型 'System.Action<T>' の使用には、1 型の引数が必要です。」

また、XXXは独自実装したクラス名になります。
以下追加情報になります。

・コンパイルエラーにならないパターン
 Action<XXX, XXX, XXX, XXX> test1;

・コンパイルエラーになるパターン
 Action<XXX, XXX, XXX, XXX, XXX> test2;

Actionのパラメータの上限数は16個だと思うので数の問題ではないように思いますが、よくわかりません。。。

> ■No87899 (じゅん さん) に返信
>>Visualstudio2013で
>>'1' 型の引数が必要です
>>とコンパイルエラーがでて解決方法がわかりません。
>
> 対象の .NET Framework のバージョンや書いているコードによってエラーの出方は変わります。
>
> たとえば、.NET Framework 2.0 を対象にして「Action test;」と書くと「error CS0305: ジェネリック 型 'System.Action<T>' の使用には、1 型の引数が必要です。」となり、言われていることに近くなります。
> この例だと、Action<int> といったように型を渡す必要があるところに型を書いていないからエラーになっています。
>
>
>>エラーとなっているコードは以下です。
>>Action<XXX> test;
>>
>>XXXの部分がエラーになっています。
>
> 伏せ字ではわかりませんし、再現できません。
> たとえば、Action<int> test; と書いて、using System; が冒頭にあれば、ビルドは成功します。
>
> このため、第三者に再現可能なサンプルを書いてもらわないと、問題解決は難しいかもしれません。
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87931 ] / ▼[ 87936 ]
■87934 / 3階層)  Re[3]: コンパイルエラーについて
□投稿者/ なちゃ (247回)-(2018/07/14(Sat) 11:48:41)
No87931 (じゅん さん) に返信
> ・コンパイルエラーにならないパターン
>  Action<XXX, XXX, XXX, XXX> test1;
>
> ・コンパイルエラーになるパターン
>  Action<XXX, XXX, XXX, XXX, XXX> test2;

この2行を同じところに2行並べて書いてもtest2だけエラーになるんですかね?
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87934 ] / ▼[ 87938 ]
■87936 / 4階層)  Re[4]: コンパイルエラーについて
□投稿者/ じゅん (5回)-(2018/07/14(Sat) 11:50:54)
No87934 (なちゃ さん) に返信
2行並べて書いて試した結果、test2だけエラーになりました。

> ■No87931 (じゅん さん) に返信
>>・コンパイルエラーにならないパターン
>> Action<XXX, XXX, XXX, XXX> test1;
>>
>>・コンパイルエラーになるパターン
>> Action<XXX, XXX, XXX, XXX, XXX> test2;
>
> この2行を同じところに2行並べて書いてもtest2だけエラーになるんですかね?
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87936 ] / 返信無し
■87938 / 5階層)  Re[5]: コンパイルエラーについて
□投稿者/ WebSurfer (1558回)-(2018/07/14(Sat) 14:08:59)
No87936 (じゅん さん) に返信
> ■No87934 (なちゃ さん) に返信
> 2行並べて書いて試した結果、test2だけエラーになりました。
>
>>■No87931 (じゅん さん) に返信
> >>・コンパイルエラーにならないパターン
> >> Action<XXX, XXX, XXX, XXX> test1;
> >>
> >>・コンパイルエラーになるパターン
> >> Action<XXX, XXX, XXX, XXX, XXX> test2;
>>
>>この2行を同じところに2行並べて書いてもtest2だけエラーになるんですかね?

.NET 3.5 では引数は 4 つまでのようです。

Action<T1,&#8194;T2,&#8194;T3,&#8194;T4> デリゲート
https://msdn.microsoft.com/ja-jp/library/bb548654(v=vs.110).aspx

.NET Framework
3.5 以降で使用可能

Action<T1,&#8194;T2,&#8194;T3,&#8194;T4,&#8194;T5> デリゲート
https://msdn.microsoft.com/ja-jp/library/dd289012(v=vs.110).aspx

.NET Framework
4.0 以降で使用可能
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87931 ] / ▼[ 87935 ] ▼[ 87933 ]
■87932 / 3階層)  Re[3]: コンパイルエラーについて
□投稿者/ 武士 (1回)-(2018/07/14(Sat) 11:47:00)
No87931 (じゅん さん) に返信

エラーメッセージを省略せずに教えてちょんまげ
期待される型と実際の型が異なってるんじゃないかな
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87932 ] / 返信無し
■87935 / 4階層)  Re[4]: コンパイルエラーについて
□投稿者/ じゅん (4回)-(2018/07/14(Sat) 11:49:44)
No87932 (武士 さん) に返信
error CS0305: ジェネリック 型 'System.Action<T>' の使用には、1 型の引数が必要です。
になります。

> ■No87931 (じゅん さん) に返信
>
> エラーメッセージを省略せずに教えてちょんまげ
> 期待される型と実際の型が異なってるんじゃないかな
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87932 ] / 返信無し
■87933 / 4階層)  Re[4]: コンパイルエラーについて
□投稿者/ 武士 (2回)-(2018/07/14(Sat) 11:47:59)
書いてあった、拙者のことは無視して
[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87931 ] / 返信無し
■87937 / 3階層)  Re[3]: コンパイルエラーについて
□投稿者/ Jitta (390回)-(2018/07/14(Sat) 14:05:58)
2018/07/14(Sat) 14:09:59 編集(投稿者)

No87931 (じゅん さん) に返信

> FrameWorkのバージョンは3.5になります。

> ・コンパイルエラーにならないパターン
>  Action<XXX, XXX, XXX, XXX> test1;
>
> ・コンパイルエラーになるパターン
>  Action<XXX, XXX, XXX, XXX, XXX> test2;
>
> Actionのパラメータの上限数は16個だと思うので数の問題ではないように思いますが、よくわかりません。。。

https://msdn.microsoft.com/ja-jp/library/system%28v=vs.90%29.aspx#デリゲート
4つまでですね。

[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87899 ] / ▼[ 87940 ]
■87939 / 1階層)  Re[1]: コンパイルエラーについて
□投稿者/ shu (1133回)-(2018/07/14(Sat) 14:47:46)
No87899 (じゅん さん) に返信


> とコンパイルエラーがでて解決方法がわかりません。
既に付いている回答より
案1)Frameworkを変更する
案2)delegate void Action<T1, T2, T3, T4, T5>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
   を適切なところに定義する

[ 親 87899 / □ Tree ] 返信 編集キー/

▲[ 87939 ] / 返信無し
■87940 / 2階層)  Re[2]: コンパイルエラーについて
□投稿者/ じゅん (6回)-(2018/07/14(Sat) 14:55:18)
No87939 (shu さん) に返信
ご回答ありがとうございます。
FrameWorkのバージョン変更は出来ないので、 案2)で対応したいと思います。

> ■No87899 (じゅん さん) に返信
>
>
>>とコンパイルエラーがでて解決方法がわかりません。
> 既に付いている回答より
> 案1)Frameworkを変更する
> 案2)delegate void Action<T1, T2, T3, T4, T5>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
>    を適切なところに定義する
>
解決済み
[ 親 87899 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -