「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part135
http://mevius.5ch.net/test/read.cgi/tech/1517749348/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part136
■ このスレッドは過去ログ倉庫に格納されています
2018/03/03(土) 15:09:05.75ID:SBEkwl3H
778デフォルトの名無しさん
2018/03/30(金) 12:34:29.62ID:LK6mi3V8779デフォルトの名無しさん
2018/03/30(金) 12:46:02.45ID:Aig7x3ki >>778
それはテストの観点を適切に直行化できてないんじゃないか?
引数xが3以上のとき結果は必ず負になることが期待されるとしたら、
テストは3と3を超える値を引数に入れて、それぞれの結果yについて y < 0 が真となることを確認すればいいんだぞ
何を確かめたいのかを明確にしてそれをそのままコードで書くんだよ
それはテストの観点を適切に直行化できてないんじゃないか?
引数xが3以上のとき結果は必ず負になることが期待されるとしたら、
テストは3と3を超える値を引数に入れて、それぞれの結果yについて y < 0 が真となることを確認すればいいんだぞ
何を確かめたいのかを明確にしてそれをそのままコードで書くんだよ
780デフォルトの名無しさん
2018/03/30(金) 14:10:01.41ID:tnFi4c/U LinqのJoinメソッドに渡すメソッドなんだけど、ラムダ式で書く方法が全然理解できないぜ・・・・
多分、掲示板で解説するのも難しいと思うので、やさしく解説してるページやら本やらがあったら教えて!!!
多分、掲示板で解説するのも難しいと思うので、やさしく解説してるページやら本やらがあったら教えて!!!
781デフォルトの名無しさん
2018/03/30(金) 14:45:38.48ID:L1eApEVG782デフォルトの名無しさん
2018/03/30(金) 14:48:53.79ID:CpZcazmB ラムダ式とか正規表現とか、記憶してるやついないから大丈夫
毎回ググればいい
毎回ググればいい
783デフォルトの名無しさん
2018/03/30(金) 15:28:55.57ID:87KFZNYL ラムダ式って、無名関数の構文糖だろ
func (引数1, 引数2) => 戻り値
(a, b) => result
func (引数1, 引数2) => 戻り値
(a, b) => result
784デフォルトの名無しさん
2018/03/30(金) 16:00:30.28ID:BIk3pBCX λを採用した祖の言語LISPなんてわざわざ(lambda〜)と毎回書いてるのに変な略称=>なんて許されんばい
λと書きんしゃい
λと書きんしゃい
785デフォルトの名無しさん
2018/03/30(金) 16:46:29.66ID:kajlCXLR またはじまった
786デフォルトの名無しさん
2018/03/30(金) 17:32:32.77ID:+cAt7TAV ランバダのPVはエロかったなあ
関係ないけど
関係ないけど
787デフォルトの名無しさん
2018/03/30(金) 18:08:45.57ID:qHFB3R53 >>780
この本よかったぞ
基本的な知識はあるがLINQ、ラムダ、推論型の知識があやふやならおススメ
「C#プログラマーのための 基礎からわかるLINQマジック! 」
https://www.amazon.co.jp/dp/product/B01FEZ7QNY/ref=as_li_tf_tl?camp=247&creative=1211&creativeASIN=B01FEZ7QNY&ie=UTF8&linkCode=as2&tag=bookmeter_book_image_image_pc_logoff-22
この本よかったぞ
基本的な知識はあるがLINQ、ラムダ、推論型の知識があやふやならおススメ
「C#プログラマーのための 基礎からわかるLINQマジック! 」
https://www.amazon.co.jp/dp/product/B01FEZ7QNY/ref=as_li_tf_tl?camp=247&creative=1211&creativeASIN=B01FEZ7QNY&ie=UTF8&linkCode=as2&tag=bookmeter_book_image_image_pc_logoff-22
788デフォルトの名無しさん
2018/03/30(金) 18:19:24.61ID:LI6oPksr 人脈?
789デフォルトの名無しさん
2018/03/30(金) 18:25:17.02ID:QYlpMr10 質問失礼します。
以下のようなプログラムを書いたところコメントに書いたようなメッセージが表示されますが、
このメッセージに従ってインライン化しようにも、どのように修正すれば良いか分かりません。
これはIDEのバグだと思って無視しても良いものなのでしょうか。
インライン化の有無は可読性だけの問題でパフォーマンスなどに影響はないのだと思いますが、
このようなメッセージが表示されたままプログラムを完成とするのはあまり気分がよくありません。
プログラムの修正方法や、このようなメッセージに対する考え方など、
分かることがあれば教えていただけないでしょうか。よろしくお願いします。
static void Main(string[] args)
{
void getMessage1(out string _message) => _message = "x is 1.";
void getMessage2(out string _message) => _message = "x is not 1.";
int x = 1;
string message; // IDE0018 変数の宣言をインライン化できます
if (x == 1)
{
getMessage1(out message);
}
else
{
getMessage2(out message);
}
Console.WriteLine(message);
}
以下のようなプログラムを書いたところコメントに書いたようなメッセージが表示されますが、
このメッセージに従ってインライン化しようにも、どのように修正すれば良いか分かりません。
これはIDEのバグだと思って無視しても良いものなのでしょうか。
インライン化の有無は可読性だけの問題でパフォーマンスなどに影響はないのだと思いますが、
このようなメッセージが表示されたままプログラムを完成とするのはあまり気分がよくありません。
プログラムの修正方法や、このようなメッセージに対する考え方など、
分かることがあれば教えていただけないでしょうか。よろしくお願いします。
static void Main(string[] args)
{
void getMessage1(out string _message) => _message = "x is 1.";
void getMessage2(out string _message) => _message = "x is not 1.";
int x = 1;
string message; // IDE0018 変数の宣言をインライン化できます
if (x == 1)
{
getMessage1(out message);
}
else
{
getMessage2(out message);
}
Console.WriteLine(message);
}
790デフォルトの名無しさん
2018/03/30(金) 18:42:11.73ID:q+LDJ3nt そんなもん買っても十中八九忘れる
基本ネットに転がってるコピペで食いつなぐのが一流
基本ネットに転がってるコピペで食いつなぐのが一流
791デフォルトの名無しさん
2018/03/30(金) 18:44:40.56ID:LI6oPksr >>789
なんでoutを使うのかが分からないんだけど
なんでoutを使うのかが分からないんだけど
792デフォルトの名無しさん
2018/03/30(金) 18:49:12.82ID:+cAt7TAV793デフォルトの名無しさん
2018/03/30(金) 18:57:29.01ID:roepBgfb >>789
これ、どうしろって言ってん?
これ、どうしろって言ってん?
794デフォルトの名無しさん
2018/03/30(金) 18:57:31.26ID:LI6oPksr795デフォルトの名無しさん
2018/03/30(金) 18:59:03.69ID:LI6oPksr 普通に考えるとスコープから外れるからインライン化できないはずなのにインライン化を進めてくるってことでそ
796789
2018/03/30(金) 19:11:19.76ID:QYlpMr10 早速たくさんのレスありがとうございます。
お返事に少し時間がかかってしまいそうなので、上から順に書き込みたいと思います。
お待たせしてしまって申し訳ありません。
>>791
レスどうもありがとうございます。
色々なクラスで定義されているTryParseやIDictionaryのTryGetValueは
使いやすいと感じていて、それを参考に定義したメソッドをifの内側で使おうとしたのが
>789のようなプログラムを書いた経緯です。
しかし確かに複数の情報を返却したければそれ用のクラスを定義すれば良いことですし、
C#7ではタプルも構文化されているので、もはやoutは時代遅れということでしょうか。
C#にはいくつか負の遺産もあるということなので、その辺りについても勉強したいと思います。
お返事に少し時間がかかってしまいそうなので、上から順に書き込みたいと思います。
お待たせしてしまって申し訳ありません。
>>791
レスどうもありがとうございます。
色々なクラスで定義されているTryParseやIDictionaryのTryGetValueは
使いやすいと感じていて、それを参考に定義したメソッドをifの内側で使おうとしたのが
>789のようなプログラムを書いた経緯です。
しかし確かに複数の情報を返却したければそれ用のクラスを定義すれば良いことですし、
C#7ではタプルも構文化されているので、もはやoutは時代遅れということでしょうか。
C#にはいくつか負の遺産もあるということなので、その辺りについても勉強したいと思います。
797789
2018/03/30(金) 19:21:12.54ID:QYlpMr10 >>792
説明が不十分で申し訳ありません。
>>795の方が分かりやすく説明してくださっているので蛇足になってしまうかも知れませんが、
私が検索した範囲では、
string message;
getMessage1(out message);
は
getMessage1(out string message);
に直せば良いということは分かったものの、変数の定義と関数の呼び出しとの間に
(今回の例のifのような)別のコードがあって、それが移動できないように見えても
メッセージが表示されてしまう場合があるということです。
ただ、「移動できないように見える」という部分に自信がなかったのと、
仮にそれが正しかったとしてもこのようなメッセージをどの様に受け止めれば良いのかが
よく分からなかったので質問させていただきました。
説明が不十分で申し訳ありません。
>>795の方が分かりやすく説明してくださっているので蛇足になってしまうかも知れませんが、
私が検索した範囲では、
string message;
getMessage1(out message);
は
getMessage1(out string message);
に直せば良いということは分かったものの、変数の定義と関数の呼び出しとの間に
(今回の例のifのような)別のコードがあって、それが移動できないように見えても
メッセージが表示されてしまう場合があるということです。
ただ、「移動できないように見える」という部分に自信がなかったのと、
仮にそれが正しかったとしてもこのようなメッセージをどの様に受け止めれば良いのかが
よく分からなかったので質問させていただきました。
798789
2018/03/30(金) 19:31:31.59ID:QYlpMr10 >>793
IDEがなんと言ってきているのか、とういことでしょうか。
サンプルコードを空行も含めて上から数えて7行目のコメント文なのですが、
「IDE0018 変数の宣言をインライン化できます」というメッセージが表示されます。
それとも、私がどのようなお返事を期待しているかとういことであれば、
このメッセージに対処するためのプログラムの修正方法や、
このようなメッセージに対する考え方などを教えていただけないかと考えています。
しかし、私の期待していること自体が見当はずれということもあると思うので、
それ以外でも何か気がつくことがあれば教えていただけると嬉しいです。
IDEがなんと言ってきているのか、とういことでしょうか。
サンプルコードを空行も含めて上から数えて7行目のコメント文なのですが、
「IDE0018 変数の宣言をインライン化できます」というメッセージが表示されます。
それとも、私がどのようなお返事を期待しているかとういことであれば、
このメッセージに対処するためのプログラムの修正方法や、
このようなメッセージに対する考え方などを教えていただけないかと考えています。
しかし、私の期待していること自体が見当はずれということもあると思うので、
それ以外でも何か気がつくことがあれば教えていただけると嬉しいです。
799デフォルトの名無しさん
2018/03/30(金) 19:34:47.70ID:roepBgfb msに
これ壊れててん?
ってメール出してみよう
これ壊れててん?
ってメール出してみよう
800デフォルトの名無しさん
2018/03/30(金) 19:44:57.86ID:DYwliZHB VSとターゲットのフレームワークのバージョンを書いてないのがいまいち
801789
2018/03/30(金) 20:00:44.22ID:QYlpMr10 >>794
早速検証までしていただいてどうもありがとうございます。
また、本来書くべきC#のバージョンが抜けてしまっていて申し訳ありません。
>>789
を始めに確認したときのターゲットフレームワークは4.6.2だったので、
以下の対応表によればC#のバージョンは6.0ということになるのでしょうか。
https://qiita.com/nskydiving/items/3af8bab5a0a63ccb9893
しかし、その後ターゲットフレームワークを4.7.1や3.5に変更して試してみても
やはり同じメッセージが表示されました。
あと、これも後出しになってしまって申し訳ないのですが、
あからさまな構文エラーと違ってこのメッセージはコンパイルするまで表示されないようです。
IDEはVisual Studio 2017を使用していて、OSはWindows 10 Pro 64 bitです。
他に何かお伝えすべきことがあれば教えていただけると嬉しく思います。
よろしくおねがいします。
早速検証までしていただいてどうもありがとうございます。
また、本来書くべきC#のバージョンが抜けてしまっていて申し訳ありません。
>>789
を始めに確認したときのターゲットフレームワークは4.6.2だったので、
以下の対応表によればC#のバージョンは6.0ということになるのでしょうか。
https://qiita.com/nskydiving/items/3af8bab5a0a63ccb9893
しかし、その後ターゲットフレームワークを4.7.1や3.5に変更して試してみても
やはり同じメッセージが表示されました。
あと、これも後出しになってしまって申し訳ないのですが、
あからさまな構文エラーと違ってこのメッセージはコンパイルするまで表示されないようです。
IDEはVisual Studio 2017を使用していて、OSはWindows 10 Pro 64 bitです。
他に何かお伝えすべきことがあれば教えていただけると嬉しく思います。
よろしくおねがいします。
802789
2018/03/30(金) 20:06:29.84ID:QYlpMr10 >>795
分かりやすく補足していただいてどうもありがとうございます。
C#のバージョンについてもそうですが、正確にお伝えするための情報の確認が不十分でした。
これはプログラミング以前の問題だと思うので気をつけていきたいと思います。申し訳ありません。
分かりやすく補足していただいてどうもありがとうございます。
C#のバージョンについてもそうですが、正確にお伝えするための情報の確認が不十分でした。
これはプログラミング以前の問題だと思うので気をつけていきたいと思います。申し訳ありません。
803789
2018/03/30(金) 20:18:53.64ID:QYlpMr10 >>799
アドバイスどうもありがとうございます。一日程度このスレッドを拝見してみて、
私の勘違いという証拠が見つからなければマイクロソフトに報告してみようと思います。
報告する場合、Visual Studio の
「ヘルプ(H)>フィードバックの送信(F)>問題点の報告(P)」を利用しようと考えていますが、
もし他におすすめの連絡先などがあれば教えていただけると嬉しく思います。
アドバイスどうもありがとうございます。一日程度このスレッドを拝見してみて、
私の勘違いという証拠が見つからなければマイクロソフトに報告してみようと思います。
報告する場合、Visual Studio の
「ヘルプ(H)>フィードバックの送信(F)>問題点の報告(P)」を利用しようと考えていますが、
もし他におすすめの連絡先などがあれば教えていただけると嬉しく思います。
804デフォルトの名無しさん
2018/03/30(金) 20:21:01.69ID:keCNvJ3G つまりこう書けるよってことじゃないの?
if(x == 1) getMessage1(out string message);
else getMessage2(out string message);
if(x == 1) getMessage1(out string message);
else getMessage2(out string message);
805デフォルトの名無しさん
2018/03/30(金) 20:23:34.69ID:sxHgkaP9 >>803
https://www.google.co.jp/search?client=opera&q=IDE0018&sourceid=opera&ie=UTF-8&oe=UTF-8
https://vimalakitty.blogspot.jp/2017/09/10-01.html
https://www.google.co.jp/search?client=opera&q=IDE0018&sourceid=opera&ie=UTF-8&oe=UTF-8
https://vimalakitty.blogspot.jp/2017/09/10-01.html
806789
2018/03/30(金) 20:32:11.02ID:QYlpMr10 >>800
おっしゃる通りで、大変失礼いたしました。申し訳ありません。
>>801と内容が一部重複してしまいますが、これまでの内容を改めて整理したいと思います。
(これまでいただいたレスの表現を一部お借りしています)
問題の概要:
関数のout引数に関して、スコープから外れるためインライン化できないと思われる場面で
インライン化を推奨するメッセージが表示されることがある
問題を再現するコード及びメッセージの内容:
>>789
問題が再現する環境:
Windows 10 Pro 64bit
Visual Studio 2017
ターゲットフレームワーク:3.5/4.6.2/4.7.1 で確認
備考:
コードのコンパイル後にメッセージを確認
以上です。他に何か書くべきことがあれば教えていただけると嬉しいです。
どうぞよろしくお願いいたします。
おっしゃる通りで、大変失礼いたしました。申し訳ありません。
>>801と内容が一部重複してしまいますが、これまでの内容を改めて整理したいと思います。
(これまでいただいたレスの表現を一部お借りしています)
問題の概要:
関数のout引数に関して、スコープから外れるためインライン化できないと思われる場面で
インライン化を推奨するメッセージが表示されることがある
問題を再現するコード及びメッセージの内容:
>>789
問題が再現する環境:
Windows 10 Pro 64bit
Visual Studio 2017
ターゲットフレームワーク:3.5/4.6.2/4.7.1 で確認
備考:
コードのコンパイル後にメッセージを確認
以上です。他に何か書くべきことがあれば教えていただけると嬉しいです。
どうぞよろしくお願いいたします。
807デフォルトの名無しさん
2018/03/30(金) 20:37:12.26ID:+cAt7TAV >>803
何でそうなるw
だから、まずググろうよ"IDE0018"で
そうすればこれはC#7の追加機能に起因する警告であり、不具合ではないとすぐに分かる。
何でそんな長文タイプする手間は惜しまないのにちょっと検索する手間は惜しむのよw
意味が分からん
ちなみに、この警告を無視するにはこうするんだってさ
https://developercommunity.visualstudio.com/content/problem/159716/is-there-a-way-to-disable-ide0018-globally.html
これもググってれあばすぐに自分で見つけられてるはず
何でそうなるw
だから、まずググろうよ"IDE0018"で
そうすればこれはC#7の追加機能に起因する警告であり、不具合ではないとすぐに分かる。
何でそんな長文タイプする手間は惜しまないのにちょっと検索する手間は惜しむのよw
意味が分からん
ちなみに、この警告を無視するにはこうするんだってさ
https://developercommunity.visualstudio.com/content/problem/159716/is-there-a-way-to-disable-ide0018-globally.html
これもググってれあばすぐに自分で見つけられてるはず
808デフォルトの名無しさん
2018/03/30(金) 20:40:09.19ID:keCNvJ3G 一行ならブロックスコープ外せるから>>804だと思うんだけど自分の6.0環境では試せなくて悲しい
809デフォルトの名無しさん
2018/03/30(金) 20:59:52.66ID:keCNvJ3G ごめん、無理だね
ブロック外してもスコープはローカルになっちゃうみたい
ブロック外してもスコープはローカルになっちゃうみたい
810789
2018/03/30(金) 21:13:54.63ID:QYlpMr10 >>804>>808>>809
修正方法のご提示とご検証どうもありがとうございます。問題は>>809にお書きいただいたとおりです。
ただ、お書きいただいた通り問題はスコープにありますので、
Console.WriteLine(message);をifとelseの両方の中に書けばこの問題は起こりません。
この程度の内容を2回書くことは大した問題になりませんし、
この部分に対応するコードが長くなってしまった場合もメソッドとして切り出せば同じことですので、
いただいたレスを読みながら、>>789のようなプログラムを書くこと自体が筋が悪くて、
やはり>>804に適合するプログラムになるよう全体を修正するべきなのかなとも考えました。
ただ、メソッドとして切り出す方法であらゆる状況に対応できるかどうか自信がないので、
いずれにしても確信は持てていない状況です。
修正方法のご提示とご検証どうもありがとうございます。問題は>>809にお書きいただいたとおりです。
ただ、お書きいただいた通り問題はスコープにありますので、
Console.WriteLine(message);をifとelseの両方の中に書けばこの問題は起こりません。
この程度の内容を2回書くことは大した問題になりませんし、
この部分に対応するコードが長くなってしまった場合もメソッドとして切り出せば同じことですので、
いただいたレスを読みながら、>>789のようなプログラムを書くこと自体が筋が悪くて、
やはり>>804に適合するプログラムになるよう全体を修正するべきなのかなとも考えました。
ただ、メソッドとして切り出す方法であらゆる状況に対応できるかどうか自信がないので、
いずれにしても確信は持てていない状況です。
811デフォルトの名無しさん
2018/03/30(金) 21:24:37.09ID:DYwliZHB >>807
いつまでトンチンカンなこと言ってんの?
いつまでトンチンカンなこと言ってんの?
812デフォルトの名無しさん
2018/03/30(金) 21:25:20.49ID:DYwliZHB 例のおじいちゃんかよ
レスして損した
レスして損した
813デフォルトの名無しさん
2018/03/30(金) 21:28:28.22ID:+cAt7TAV814デフォルトの名無しさん
2018/03/30(金) 21:30:10.03ID:DYwliZHB NG推奨
815デフォルトの名無しさん
2018/03/30(金) 21:30:33.31ID:roepBgfb816デフォルトの名無しさん
2018/03/30(金) 21:30:33.58ID:+cAt7TAV >>814
もうした
もうした
817デフォルトの名無しさん
2018/03/30(金) 21:31:54.48ID:DYwliZHB おじいちゃんに触れても無駄だよ
いつまでも間違いに気づいてないしレスも読んでないから
いつまでも間違いに気づいてないしレスも読んでないから
818デフォルトの名無しさん
2018/03/30(金) 21:32:50.48ID:+cAt7TAV819デフォルトの名無しさん
2018/03/30(金) 21:33:56.46ID:roepBgfb >>818
じゃ、バグってんじゃんw
じゃ、バグってんじゃんw
820デフォルトの名無しさん
2018/03/30(金) 21:34:34.33ID:+cAt7TAV821デフォルトの名無しさん
2018/03/30(金) 21:35:21.33ID:DYwliZHB822デフォルトの名無しさん
2018/03/30(金) 21:36:16.37ID:+cAt7TAV >>821
トンチンカンなことを言ってるのは君の方なんだけど、自覚がないってのは幸福でいいねw
トンチンカンなことを言ってるのは君の方なんだけど、自覚がないってのは幸福でいいねw
823デフォルトの名無しさん
2018/03/30(金) 21:37:18.61ID:roepBgfb824デフォルトの名無しさん
2018/03/30(金) 21:37:22.84ID:MnRWcQoL825デフォルトの名無しさん
2018/03/30(金) 21:38:22.07ID:+cAt7TAV っていうか、>>789みたいなコードが警告されるのはむしろ当たり前。
outの変数を使いまわしするなんてよい作法とは言えないからだ
outの変数を使いまわしするなんてよい作法とは言えないからだ
826デフォルトの名無しさん
2018/03/30(金) 21:39:20.19ID:DYwliZHB ジジイはトンチンカンすぎてダメだな
いつまでたっても成長しない
いつまでたっても成長しない
827デフォルトの名無しさん
2018/03/30(金) 21:40:20.48ID:MnRWcQoL 使い回しとかほんとに意味わかってないんだな w
828デフォルトの名無しさん
2018/03/30(金) 21:41:00.76ID:roepBgfb829デフォルトの名無しさん
2018/03/30(金) 21:41:07.53ID:+cAt7TAV しかし、バグバグいってる連中はちゃんとググって解説記事読んでるのかねw
こんなのが同僚だったら張り倒すよw
こんなのが同僚だったら張り倒すよw
830デフォルトの名無しさん
2018/03/30(金) 21:41:48.65ID:DYwliZHB ジジイは失礼なので取り消しておじいちゃんにまた戻す
831デフォルトの名無しさん
2018/03/30(金) 21:42:50.83ID:roepBgfb832789
2018/03/30(金) 21:45:40.64ID:QYlpMr10 >>805
参考ページのご紹介どうもありがとうございます。
このページは拝見したのですが、問題の解決に至る道筋を見つけることができませんでした。
(確認したページのうち主要なものはあらかじめお伝えしておくべきだったかもしれません。
申し訳ありません。)
質問させていただいている身でこのようなことをお願いするのは大変心苦しいのですが、
もしお時間に余裕がありましたら具体的な修正方法のご説明をお願いすることはできませんでしょうか。
ご説明の中で私の疑問を理解していただければ幸いですし、
いただいたご説明で問題が解決できれば願ってもないことです。
煽るような文章で答えを引き出すような形になってしまい大変申し訳ありませんが、
私の説明能力の無さゆえの苦肉の策ということで、どうぞ失礼をお許しください。
参考ページのご紹介どうもありがとうございます。
このページは拝見したのですが、問題の解決に至る道筋を見つけることができませんでした。
(確認したページのうち主要なものはあらかじめお伝えしておくべきだったかもしれません。
申し訳ありません。)
質問させていただいている身でこのようなことをお願いするのは大変心苦しいのですが、
もしお時間に余裕がありましたら具体的な修正方法のご説明をお願いすることはできませんでしょうか。
ご説明の中で私の疑問を理解していただければ幸いですし、
いただいたご説明で問題が解決できれば願ってもないことです。
煽るような文章で答えを引き出すような形になってしまい大変申し訳ありませんが、
私の説明能力の無さゆえの苦肉の策ということで、どうぞ失礼をお許しください。
833デフォルトの名無しさん
2018/03/30(金) 21:46:08.85ID:rq+fXpbo ガイジでいいだろ
本人もそう言ってる
本人もそう言ってる
834デフォルトの名無しさん
2018/03/30(金) 21:49:29.47ID:DYwliZHB835789
2018/03/30(金) 22:03:34.15ID:QYlpMr10 ID:+cAt7TAV 様
警告の抑制方法についてご案内いただきどうもありがとうございます。
他に解決策が見つからなければマイクロソフトに問題を報告し、
マイクロソフトに修正していただけるまで教えていただいた方法で警告を抑制したいと思います。
ただ、他の方にいただいたレスも拝見し、やはり私としてはこのメッセージが適切であるとは確信できずにいます。
もしお時間に余裕がありましたら、>>832のお願いを ID:+cAt7TAV 様にもさせていただけないでしょうか。
お願いの方法も内容も大変失礼なもので申し訳ないのですが、どうぞお許しください。
警告の抑制方法についてご案内いただきどうもありがとうございます。
他に解決策が見つからなければマイクロソフトに問題を報告し、
マイクロソフトに修正していただけるまで教えていただいた方法で警告を抑制したいと思います。
ただ、他の方にいただいたレスも拝見し、やはり私としてはこのメッセージが適切であるとは確信できずにいます。
もしお時間に余裕がありましたら、>>832のお願いを ID:+cAt7TAV 様にもさせていただけないでしょうか。
お願いの方法も内容も大変失礼なもので申し訳ないのですが、どうぞお許しください。
836デフォルトの名無しさん
2018/03/30(金) 22:06:55.10ID:+cAt7TAV まあ質問者がここのお馬鹿さんを代表してMSに質問してみたらいいと思う。
恥をかくのも勉強のうちかも
個人的にはちょっと調べてちょっと自分の頭で考えれば分かるはずのことを理解しようとせず、
「このバグどうなってんだコラー」なんて突撃するのは愚の骨頂にしか思えんけど
つーか、ちょっと考えれば、この警告は余計なお世話のように思えて
一定の合理性があることぐらいすぐ分かると思うんだけど、ガチで分からない奴もいるんだね世の中には
恥をかくのも勉強のうちかも
個人的にはちょっと調べてちょっと自分の頭で考えれば分かるはずのことを理解しようとせず、
「このバグどうなってんだコラー」なんて突撃するのは愚の骨頂にしか思えんけど
つーか、ちょっと考えれば、この警告は余計なお世話のように思えて
一定の合理性があることぐらいすぐ分かると思うんだけど、ガチで分からない奴もいるんだね世の中には
837デフォルトの名無しさん
2018/03/30(金) 22:10:00.19ID:+cAt7TAV838デフォルトの名無しさん
2018/03/30(金) 22:14:49.66ID:roepBgfb は?こんなのバグだろ
839789
2018/03/30(金) 22:22:13.29ID:QYlpMr10 たくさんご反応をいただきどうもありがとうございます。
とても勉強させていただいています。
お返事が遅くなってしまい申し訳ありません。
予想以上のレスの多さでこの話題に触れてくださった方すべてにお返事するのが難しくなってきましたので、
大変勝手ながら、これ以降、直接私の書き込みにアンカーを付けてくださった方と
特に教えていただきたいことがある方へのメッセージのみ書き込みたいと思います。どうぞよろしくお願いします。
>>825
皆さんのお話を聞いて、コードの無作法が警告メッセージの直接または間接的な原因なのではということを
かなり感じてきました。ただ、作法に関する私の理解が不十分でどうにも宙に浮いたような感覚なのです。
もしよろしければ、>>810考えについてコメントなどをいただくことはできないでしょうか。よろしくお願いいたします。
とても勉強させていただいています。
お返事が遅くなってしまい申し訳ありません。
予想以上のレスの多さでこの話題に触れてくださった方すべてにお返事するのが難しくなってきましたので、
大変勝手ながら、これ以降、直接私の書き込みにアンカーを付けてくださった方と
特に教えていただきたいことがある方へのメッセージのみ書き込みたいと思います。どうぞよろしくお願いします。
>>825
皆さんのお話を聞いて、コードの無作法が警告メッセージの直接または間接的な原因なのではということを
かなり感じてきました。ただ、作法に関する私の理解が不十分でどうにも宙に浮いたような感覚なのです。
もしよろしければ、>>810考えについてコメントなどをいただくことはできないでしょうか。よろしくお願いいたします。
840デフォルトの名無しさん
2018/03/30(金) 22:29:53.50ID:MnRWcQoL >>836
どう書けばいいのかを書いてからほざけば? w
どう書けばいいのかを書いてからほざけば? w
841デフォルトの名無しさん
2018/03/30(金) 22:30:40.89ID:CA+6T7VZ トンチンチン
842789
2018/03/30(金) 22:32:45.82ID:QYlpMr10843デフォルトの名無しさん
2018/03/30(金) 22:37:24.89ID:MUNCeVRK >>842
現象再現するソリューション一式をアップローダにあげたら何か進展あるかもよ
現象再現するソリューション一式をアップローダにあげたら何か進展あるかもよ
844デフォルトの名無しさん
2018/03/30(金) 23:04:09.64ID:L1eApEVG >>789
以下の書き方ってビルド通るっけ?
ビルドエラーの時は原因と関係ない警告でたりするからmessage=nullみたいに何かいれれば解決したりしない?
string message;
if (x == 1) getMessage1(out message);
else getMessage2(out message);
Console.WriteLine(message);
後outメソッドではなく、戻り値で文字列を返すのが普通
根本的な解決じゃないけどoutキーワードを使わないgetに直せば警告を消せる
以下の書き方ってビルド通るっけ?
ビルドエラーの時は原因と関係ない警告でたりするからmessage=nullみたいに何かいれれば解決したりしない?
string message;
if (x == 1) getMessage1(out message);
else getMessage2(out message);
Console.WriteLine(message);
後outメソッドではなく、戻り値で文字列を返すのが普通
根本的な解決じゃないけどoutキーワードを使わないgetに直せば警告を消せる
845789
2018/03/30(金) 23:06:10.14ID:QYlpMr10 >>834
アドバイスとご検証どうもありがとうございます。
再現性の問題については、警告のカスタム規則セットなどは使っていないつもりなのですが、
そのあたりの理解が不十分でお伝えすべきことが不足してしまっているのかも知れません。
念のため、解説ページなどを読むなどしてもう一度確認したいと思います。
また、とりあえず別のことに時間をということについて、お心遣いをとても嬉しく思います。
ただ、せっかくこれだけの反応をいただけたのだからできる限りのことを吸収して…という
殊勝(?)な考え以上に、私が感じた問題に多くの方が興味を持ってくださったことが嬉しく、
娯楽という意味でもう少しこの場にお邪魔させていただきたいと思っています。
アドバイスとご検証どうもありがとうございます。
再現性の問題については、警告のカスタム規則セットなどは使っていないつもりなのですが、
そのあたりの理解が不十分でお伝えすべきことが不足してしまっているのかも知れません。
念のため、解説ページなどを読むなどしてもう一度確認したいと思います。
また、とりあえず別のことに時間をということについて、お心遣いをとても嬉しく思います。
ただ、せっかくこれだけの反応をいただけたのだからできる限りのことを吸収して…という
殊勝(?)な考え以上に、私が感じた問題に多くの方が興味を持ってくださったことが嬉しく、
娯楽という意味でもう少しこの場にお邪魔させていただきたいと思っています。
846789
2018/03/30(金) 23:33:26.14ID:QYlpMr10 >>837
大変勉強になるコメントどうもありがとうございます。この観点はまったく気づいていませんでした。
確かにout変数の使い道をそこまで限定することで警告は表示されなくなりますし、
この制限はプログラムの保守性を高める効果もありそうです。
これで私個人の、警告が表示されて気持ちが悪いという問題は解決したように思います。
どうもありがとうございます。
ただそれはそれとして、今回の警告はやはり意図されたものではないと思うのですが、
もしよければこの点についてもご意見をお聞かせいただけないでしょうか。
私がこのように思うのは、以下のコードで警告が表示されないというところにあります。
大変勉強になるコメントどうもありがとうございます。この観点はまったく気づいていませんでした。
確かにout変数の使い道をそこまで限定することで警告は表示されなくなりますし、
この制限はプログラムの保守性を高める効果もありそうです。
これで私個人の、警告が表示されて気持ちが悪いという問題は解決したように思います。
どうもありがとうございます。
ただそれはそれとして、今回の警告はやはり意図されたものではないと思うのですが、
もしよければこの点についてもご意見をお聞かせいただけないでしょうか。
私がこのように思うのは、以下のコードで警告が表示されないというところにあります。
847789
2018/03/30(金) 23:33:45.21ID:QYlpMr10 bool tryGetMessage1(int _x, out string _message)
{
if (_x == 1)
{
_message = "x is 1.";
return true;
}
else
{
_message = default(string);
return false;
}
}
void getMessage2(out string _message) => _message = "x is not 1.";
int x = 1;
if (!tryGetMessage1(x, out string message))
{
getMessage2(out message);
}
Console.WriteLine(message);
{
if (_x == 1)
{
_message = "x is 1.";
return true;
}
else
{
_message = default(string);
return false;
}
}
void getMessage2(out string _message) => _message = "x is not 1.";
int x = 1;
if (!tryGetMessage1(x, out string message))
{
getMessage2(out message);
}
Console.WriteLine(message);
848789
2018/03/30(金) 23:34:33.28ID:QYlpMr10849789
2018/03/30(金) 23:56:19.78ID:QYlpMr10 >>843
アドバイスどうもありがとうございます。
今更ですが、警告が表示されるコードを含むソリューションをアップロードしてみました。
https://dotup.org/uploda/dotup.org1498398.7z.html
アドバイスどうもありがとうございます。
今更ですが、警告が表示されるコードを含むソリューションをアップロードしてみました。
https://dotup.org/uploda/dotup.org1498398.7z.html
850789
2018/03/31(土) 00:03:56.30ID:a/TgDl8y851デフォルトの名無しさん
2018/03/31(土) 00:04:10.00ID:r1Fcmmf3852デフォルトの名無しさん
2018/03/31(土) 00:04:41.30ID:r1Fcmmf3 しかも無駄に長文だしちょっと控えてよ
853789
2018/03/31(土) 00:25:14.41ID:a/TgDl8y >>851 >>852
申し訳ありません。
もともと不具合なのかどうかの判断もできずこのスレで質問させていただきましたが、
IDEの不具合であるとすれば、おっしゃるとおりここで解決を目指すことではないと思います。
ただ、もしこの問題に興味を持ってくださる方がいて、問題が再現されないようであれば、
>>849のソリューションファイルでもお試しいただければ嬉しく思います。
これ以降は、「IDEのバグ修正」という方向の話について私の方から書き込むことは控えたいと思います。
しかし、すでに私が書き込んでしまった内容にお返事をいただいた際のレスについてはお許しください。
以上、長々と失礼いいたしました。
申し訳ありません。
もともと不具合なのかどうかの判断もできずこのスレで質問させていただきましたが、
IDEの不具合であるとすれば、おっしゃるとおりここで解決を目指すことではないと思います。
ただ、もしこの問題に興味を持ってくださる方がいて、問題が再現されないようであれば、
>>849のソリューションファイルでもお試しいただければ嬉しく思います。
これ以降は、「IDEのバグ修正」という方向の話について私の方から書き込むことは控えたいと思います。
しかし、すでに私が書き込んでしまった内容にお返事をいただいた際のレスについてはお許しください。
以上、長々と失礼いいたしました。
854デフォルトの名無しさん
2018/03/31(土) 00:25:16.57ID:p9TP05UX855デフォルトの名無しさん
2018/03/31(土) 02:11:28.67ID:r7WFMRHn >> 853
Visual Studio 15.5.7 だけど IDE0018 は出なかった
リファクタリングしたらどうなるの?
https://codezine.jp/article/detail/9861?p=4
Visual Studio 15.5.7 だけど IDE0018 は出なかった
リファクタリングしたらどうなるの?
https://codezine.jp/article/detail/9861?p=4
856789
2018/03/31(土) 08:06:10.45ID:Mw1mdL1r レスどうもありがとうございます。お返事が遅くなってしまい申し訳ありません。
日中はVisual Studioを使えそうになく、申し訳ないのですがきちんとしたお返事は夜になってしまうと思います。
中途半端な内容になってしまいますが、ひとまずいただいたレスにお返事したいと思います。
後ほど改めて書き込みますので、失礼をお許しください。
>>854
Visual Studio 2017のバージョンについてご報告できておらず申し訳ありません。
恥ずかしいことに最新版を使うという意識も持てていなかったので、古いバージョンを使っているかも知れません。
(ただ、古いバージョンで検証して下さった>>855様もIDE0018は出なかったとのことなので、
なにか他のところに問題があるのかなとも思っています。)
>>855
ご検証どうもありがとうございます。
>>854様の結果と合わせて2つのバージョンで再現しなかったとのことなので、
私は何かとても基本的なところで間違いを犯してしまっているのかも知れません。
リファクタリング機能については、ご指摘をいただいた上で試したわけではないので後でまた確認しようと思いますが、
問題の箇所では動作しなかったように記憶しています。
日中はVisual Studioを使えそうになく、申し訳ないのですがきちんとしたお返事は夜になってしまうと思います。
中途半端な内容になってしまいますが、ひとまずいただいたレスにお返事したいと思います。
後ほど改めて書き込みますので、失礼をお許しください。
>>854
Visual Studio 2017のバージョンについてご報告できておらず申し訳ありません。
恥ずかしいことに最新版を使うという意識も持てていなかったので、古いバージョンを使っているかも知れません。
(ただ、古いバージョンで検証して下さった>>855様もIDE0018は出なかったとのことなので、
なにか他のところに問題があるのかなとも思っています。)
>>855
ご検証どうもありがとうございます。
>>854様の結果と合わせて2つのバージョンで再現しなかったとのことなので、
私は何かとても基本的なところで間違いを犯してしまっているのかも知れません。
リファクタリング機能については、ご指摘をいただいた上で試したわけではないので後でまた確認しようと思いますが、
問題の箇所では動作しなかったように記憶しています。
857デフォルトの名無しさん
2018/03/31(土) 08:08:51.24ID:r1Fcmmf3 >>855
不具合報告スレでも立ててそっちでやれよ
不具合報告スレでも立ててそっちでやれよ
858デフォルトの名無しさん
2018/03/31(土) 08:43:46.87ID:+WsDcfNX 別にいいよ
片っ端から透明あぼーんするだけだし
片っ端から透明あぼーんするだけだし
859デフォルトの名無しさん
2018/03/31(土) 08:51:48.82ID:OaeapR1O >>836
> 「このバグどうなってんだコラー」なんて突撃するのは愚の骨頂にしか思えんけど
1年も前にバグと判明して解決してる
https://developercommunity.visualstudio.com/content/problem/8924/ide0018-false-suggestion.html
> 恥をかくのも勉強のうちかも
実践乙 w
> 「このバグどうなってんだコラー」なんて突撃するのは愚の骨頂にしか思えんけど
1年も前にバグと判明して解決してる
https://developercommunity.visualstudio.com/content/problem/8924/ide0018-false-suggestion.html
> 恥をかくのも勉強のうちかも
実践乙 w
860デフォルトの名無しさん
2018/03/31(土) 09:03:24.19ID:9aphfiP0 >>789
正解だけ教える
bool TryGetMessage1(out string x) { x = "1"; return true; }
bool TryGetMessage2(out string x) { x = "2"; return true; }
string GetMessage(int x) {
if (x == 1 && TryGetMessage1(out var s)) return s;
if (TryGetMessage2(out var s)) return s;
return null;
}
WriteLine(GetMessage(x));
正解だけ教える
bool TryGetMessage1(out string x) { x = "1"; return true; }
bool TryGetMessage2(out string x) { x = "2"; return true; }
string GetMessage(int x) {
if (x == 1 && TryGetMessage1(out var s)) return s;
if (TryGetMessage2(out var s)) return s;
return null;
}
WriteLine(GetMessage(x));
861デフォルトの名無しさん
2018/03/31(土) 09:07:37.87ID:r1Fcmmf3 >>860
これが恥の上塗りか
これが恥の上塗りか
862デフォルトの名無しさん
2018/03/31(土) 12:42:07.43ID:x9Yyswdb (結局調べれば分かることで、ググれというレスを罵倒してた奴らは今どんな心境なんだろう)
863デフォルトの名無しさん
2018/03/31(土) 12:44:49.99ID:LMRl+wCl >>860
これは主旨が違うじゃん
これは主旨が違うじゃん
864デフォルトの名無しさん
2018/03/31(土) 12:45:43.39ID:O8yBke8L ワッチョイないからNGがタルい
865デフォルトの名無しさん
2018/03/31(土) 13:03:27.79ID:9aphfiP0 >>863
もともと修正方法教えろって言ってるんだからこれが正解だよ
もともと修正方法教えろって言ってるんだからこれが正解だよ
866デフォルトの名無しさん
2018/03/31(土) 13:09:24.39ID:LMRl+wCl ワッチョイ必要だな
867デフォルトの名無しさん
2018/03/31(土) 13:32:48.06ID:OaeapR1O868デフォルトの名無しさん
2018/03/31(土) 13:32:50.70ID:IoBwmw2C869デフォルトの名無しさん
2018/03/31(土) 15:17:13.71ID:G6tH+bWp FirstOrDefaultについて教えて下さい。
List<T>をFirstOrDefaultで条件のものを返してきた場合、
それは参照先のアドレスが返ってくるのでしょうか?
それとも写像としてコピーされたものが返ってくるのでしょうか
取り出したものの値を更新したときに、元のListは更新されますか?
List<T>をFirstOrDefaultで条件のものを返してきた場合、
それは参照先のアドレスが返ってくるのでしょうか?
それとも写像としてコピーされたものが返ってくるのでしょうか
取り出したものの値を更新したときに、元のListは更新されますか?
870デフォルトの名無しさん
2018/03/31(土) 15:28:08.82ID:IoBwmw2C 数分で試せることをなぜやらない
871デフォルトの名無しさん
2018/03/31(土) 15:34:02.83ID:r1Fcmmf3 List<int>とかとList<MyClass>とかで違うよね的な?
872デフォルトの名無しさん
2018/03/31(土) 15:39:45.66ID:UG1yVXDX やってることは同じ(値をコピーしてくる)だけど結果が違ってくると言うこと
873デフォルトの名無しさん
2018/03/31(土) 15:48:48.09ID:feZwED6X 教習所の教官「生徒が減ったので褒めちぎったら運転技術は向上!合格率も事故率も改善!俺はなんで今まで怒ってたんやろう?」 [274141358]
https://leia.5ch.net/test/read.cgi/poverty/1522384054/
5 名前:番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイWW d3e8-gBuS)[] 投稿日:2018/03/30(金) 13:30:33.99 ID:F53Z/ySd0
よく考えたら本当にジャップ案件だよな
初心者に対して怒鳴り散らしてどこが悪いかは一切教えない
部活と一緒だわ
https://leia.5ch.net/test/read.cgi/poverty/1522384054/
5 名前:番組の途中ですがアフィサイトへの転載は禁止です (ワッチョイWW d3e8-gBuS)[] 投稿日:2018/03/30(金) 13:30:33.99 ID:F53Z/ySd0
よく考えたら本当にジャップ案件だよな
初心者に対して怒鳴り散らしてどこが悪いかは一切教えない
部活と一緒だわ
874デフォルトの名無しさん
2018/03/31(土) 16:04:38.32ID:fwgHW5nR >>869
List<T>とかHashSet<T>とか初めから使えるやつはTが値型か参照型かだけ考えればいいよ
あと「Listが更新されるか」という言い方はTが参照型だと意味が曖昧になるから改めたほうがいいかと
ふと↓こんなのが頭をよぎったけど意味が分からなければスルーしておくれ
class MyList<T> : IList<T> where T : ICloneable { ... }
List<T>とかHashSet<T>とか初めから使えるやつはTが値型か参照型かだけ考えればいいよ
あと「Listが更新されるか」という言い方はTが参照型だと意味が曖昧になるから改めたほうがいいかと
ふと↓こんなのが頭をよぎったけど意味が分からなければスルーしておくれ
class MyList<T> : IList<T> where T : ICloneable { ... }
875デフォルトの名無しさん
2018/03/31(土) 16:14:25.21ID:UG1yVXDX IListは実装したことないな
実装例は見かけるけどOSSで実装してるのは見かけない
実装例は見かけるけどOSSで実装してるのは見かけない
876デフォルトの名無しさん
2018/03/31(土) 16:27:15.53ID:fwgHW5nR877デフォルトの名無しさん
2018/03/31(土) 16:49:04.27ID:G6tH+bWp ご指導ありがとうございます
Tが値型か参照型かというところが意識から抜けておりました
適当に組んで試してみて、その違いも確認できました
Tが値型か参照型かというところが意識から抜けておりました
適当に組んで試してみて、その違いも確認できました
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 【画像】外務省局長「この度はうちの🦎がすみません…」中国「……」 [165981677]
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 外務省局長、よくわからないまま帰国へ [834922174]
