「どんなにくだらない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
709デフォルトの名無しさん
2018/03/27(火) 12:21:35.26ID:7OwU1Hvz そもそも、MS が、50ms 以上掛かる処理は、同期処理するなって言ってるだろ。
非同期処理にして、callback してもらうようにって
「ポーリング」で検索して、色々な記事を読め
非同期処理にして、callback してもらうようにって
「ポーリング」で検索して、色々な記事を読め
710デフォルトの名無しさん
2018/03/27(火) 12:28:13.60ID:xeybzECW 何がそもそもなんだw
>>709の世界ではDateTimeの比較演算に50msもかかるのかw
30年前のPC-98だってそんなにかからないと思うけどww
ネタなのかマジなのか知らんけど、そもそもHW資源を直接触れないOS上で動くコードは
一件コールバックのように見える処理も実態はポーリング
単にそれがシステム側のコードに隠蔽されてるだけ
>>709の世界ではDateTimeの比較演算に50msもかかるのかw
30年前のPC-98だってそんなにかからないと思うけどww
ネタなのかマジなのか知らんけど、そもそもHW資源を直接触れないOS上で動くコードは
一件コールバックのように見える処理も実態はポーリング
単にそれがシステム側のコードに隠蔽されてるだけ
711デフォルトの名無しさん
2018/03/27(火) 12:35:46.40ID:GW1/xmrB spin lock なんてものは無かったんや
いやぁ勉強になるなぁ
いやぁ勉強になるなぁ
712デフォルトの名無しさん
2018/03/27(火) 12:38:24.18ID:rY6p5Eum >>708
サンクス
サンクス
713デフォルトの名無しさん
2018/03/27(火) 12:39:38.04ID:nnyxYnJQ 元々タスクスケジューラで十分な話をよくもここまで長々と続けられるな
714デフォルトの名無しさん
2018/03/27(火) 12:44:03.80ID:Eb35YKQg 質問にとは関係ない部分で知識をひけらかしたい奴がいるから
715デフォルトの名無しさん
2018/03/27(火) 13:12:24.26ID:8gmuwQWV 仮にオレがこのソフトを作るとしたら、NotifyIconのデザインで小一時間悩むところから始まるだろうね
716デフォルトの名無しさん
2018/03/27(火) 13:45:19.52ID:7OwU1Hvz 何時間も待つ処理だろ。
50ms を超えてるから、非同期処理を使えって、MS が言ってる
自分でプログラミングで、ポーリングしたらダメ
OS の内部処理とは関係ない
50ms を超えてるから、非同期処理を使えって、MS が言ってる
自分でプログラミングで、ポーリングしたらダメ
OS の内部処理とは関係ない
717デフォルトの名無しさん
2018/03/27(火) 13:53:27.94ID:Eb35YKQg 思い込み激しい奴だな
718デフォルトの名無しさん
2018/03/27(火) 14:12:37.92ID:9YSJ28+H 指定したディレクトリの中を一発で全て置換する何か便利なソフトはありますか?
c:\test
aaa.txt
bbb.txt
ccc.txt
...etc
指定したディレクトリの中に複数のファイルがあります。
その中にある特定の文字列を全て一括で置換したいです。
アンパンマン → バイキンマン
といった具合です。
c:\test
aaa.txt
bbb.txt
ccc.txt
...etc
指定したディレクトリの中に複数のファイルがあります。
その中にある特定の文字列を全て一括で置換したいです。
アンパンマン → バイキンマン
といった具合です。
719デフォルトの名無しさん
2018/03/27(火) 14:24:49.80ID:zZm0N0X4 スレチ
720デフォルトの名無しさん
2018/03/27(火) 14:35:31.77ID:ClOSXPHI 1秒タイマーでタイムアウトするたびに目的の時刻を越えたか
調べるだけでいいじゃないの
違ったら即抜けるだけなのに、50msも掛かる処理じゃねーよ
なんでわざわざタスクスケジューラー使わにゃならんのだ
調べるだけでいいじゃないの
違ったら即抜けるだけなのに、50msも掛かる処理じゃねーよ
なんでわざわざタスクスケジューラー使わにゃならんのだ
721デフォルトの名無しさん
2018/03/27(火) 15:21:58.88ID:1rmw5Lza >>709
ぜんぜん理解してないじゃん
ぜんぜん理解してないじゃん
722デフォルトの名無しさん
2018/03/27(火) 18:28:00.64ID:84JRCCml コミュ障は病気だからやむを得ないが
読解力は人並みに身につけてから書き込んで欲しいよなw
読解力は人並みに身につけてから書き込んで欲しいよなw
723デフォルトの名無しさん
2018/03/27(火) 19:38:51.59ID:8gmuwQWV タイマーのインターバルは10秒とか100秒だけじゃなくて、10年でも100年でも設定できるんだから
起動時に開始と停止までの時間を計算してタイマー設定すれば
ポーリングしなくても良いんじゃね?
起動時に開始と停止までの時間を計算してタイマー設定すれば
ポーリングしなくても良いんじゃね?
724デフォルトの名無しさん
2018/03/27(火) 19:41:02.82ID:RNGaKb4X725デフォルトの名無しさん
2018/03/27(火) 19:46:25.47ID:a4CYTpTn726デフォルトの名無しさん
2018/03/27(火) 20:12:24.26ID:foR5XOpk727デフォルトの名無しさん
2018/03/27(火) 20:34:44.17ID:8gmuwQWV728デフォルトの名無しさん
2018/03/27(火) 20:36:49.79ID:D1lCzr9q 初心者の陥りがちなミス
Timeの精度を信用してしまう
途中で時刻修正の入る場合などを考慮しない
Timeの精度を信用してしまう
途中で時刻修正の入る場合などを考慮しない
729デフォルトの名無しさん
2018/03/27(火) 20:40:14.18ID:8gmuwQWV730デフォルトの名無しさん
2018/03/27(火) 20:42:13.82ID:RAm1FIuU そおです
731デフォルトの名無しさん
2018/03/27(火) 20:51:58.53ID:SJRVUf0s >>710
30年前ってPC9801あったっけ?
30年前ってPC9801あったっけ?
732デフォルトの名無しさん
2018/03/27(火) 20:56:33.38ID:vavxlF2f >>731
初代は1982年(36年前)
初代は1982年(36年前)
733デフォルトの名無しさん
2018/03/27(火) 20:58:54.08ID:FNmJga7y こういうインフラの煩わしい制約からコアになる処理を分離したい
ワーカー側は終了再開するためのapiを用意して時間や終了再開するタイミングの事は一切考えない
時間を管理するクラスが適切なタイミングでそれらのapiを実行する
というのが正解な
時間管理クラスが内部でループぶん回そうがシステムコール使おうがそれはどうでもいい
ワーカー側は終了再開するためのapiを用意して時間や終了再開するタイミングの事は一切考えない
時間を管理するクラスが適切なタイミングでそれらのapiを実行する
というのが正解な
時間管理クラスが内部でループぶん回そうがシステムコール使おうがそれはどうでもいい
734デフォルトの名無しさん
2018/03/27(火) 21:05:37.51ID:D1lCzr9q c#環境では指定時刻にイベントを起こすAPIは用意されてない
735デフォルトの名無しさん
2018/03/27(火) 21:12:23.97ID:9YSJ28+H 指定したディレクトリの中を一発で全て置換する何か便利なソフトはありますか?
c:\test
aaa.txt
bbb.txt
ccc.txt
...etc
指定したディレクトリの中に複数のファイルがあります。
その中にある特定の文字列を全て一括で置換したいです。
アンパンマン → バイキンマン
といった具合です。
c:\test
aaa.txt
bbb.txt
ccc.txt
...etc
指定したディレクトリの中に複数のファイルがあります。
その中にある特定の文字列を全て一括で置換したいです。
アンパンマン → バイキンマン
といった具合です。
736デフォルトの名無しさん
2018/03/27(火) 21:13:34.93ID:D1lCzr9q737デフォルトの名無しさん
2018/03/27(火) 21:14:46.44ID:1tsj2UvO738デフォルトの名無しさん
2018/03/27(火) 21:22:44.33ID:rY6p5Eum >>737
お仕事でなんでこの仕様からこんな糞コードが生まれるんだろと不思議に思うことあるけど、このスレの流れ見たらある意味納得だわ
お仕事でなんでこの仕様からこんな糞コードが生まれるんだろと不思議に思うことあるけど、このスレの流れ見たらある意味納得だわ
739デフォルトの名無しさん
2018/03/27(火) 21:23:33.47ID:8gmuwQWV740デフォルトの名無しさん
2018/03/27(火) 21:30:26.48ID:xeybzECW どうでもいい
そんな盛り上がるネタじゃないだろうw
いい加減止めたら?
そんな盛り上がるネタじゃないだろうw
いい加減止めたら?
741デフォルトの名無しさん
2018/03/27(火) 21:43:38.37ID:RAm1FIuU 他に居場所がないのでしゅよw
742デフォルトの名無しさん
2018/03/27(火) 21:44:08.38ID:FNmJga7y 悲しいね
743デフォルトの名無しさん
2018/03/27(火) 22:08:17.45ID:t3gWSj15 1秒ポーリングでやろうぜ
現在時刻が開始〜終了時刻の範囲
起動Flagなし
起動処理
起動Flag立てる
現在時刻が開始〜終了時刻の範囲外
起動Flagあり
終了処理
起動Flag下ろす
(*゚∀゚)bできた!
現在時刻が開始〜終了時刻の範囲
起動Flagなし
起動処理
起動Flag立てる
現在時刻が開始〜終了時刻の範囲外
起動Flagあり
終了処理
起動Flag下ろす
(*゚∀゚)bできた!
744デフォルトの名無しさん
2018/03/27(火) 22:29:48.19ID:FkzRU/Z7 回答者の方は基本情報持ってるもんですか?
745デフォルトの名無しさん
2018/03/27(火) 23:11:24.08ID:a4CYTpTn 持ってるけど少し勉強すれば誰でも取れる資格に意味なんてあるの?
精々資格手当で給料が5000円プラスされる程度の価値しかないぞ
精々資格手当で給料が5000円プラスされる程度の価値しかないぞ
746デフォルトの名無しさん
2018/03/27(火) 23:19:17.56ID:LCPGZ3qz 5000円の価値も分からないとか働いたことないのかな?
747デフォルトの名無しさん
2018/03/27(火) 23:32:40.08ID:FNmJga7y うちは1万増える
748デフォルトの名無しさん
2018/03/27(火) 23:34:25.90ID:zFrY2ZyB 5,000円も上乗せとかウラヤマ過ぎだろ
うちなんて高度取っても報償金30,000円だけ
基本や応用ではなにもでない
うちなんて高度取っても報償金30,000円だけ
基本や応用ではなにもでない
749デフォルトの名無しさん
2018/03/27(火) 23:42:52.53ID:7OwU1Hvz 10年以上やってる奴でも、基本情報技術者は取れない
大卒の新米が、こんなの簡単に取れますよねって言ったら、
中堅社員は皆、新米をにらみつけていたw
企業の資格取得率は、年1%(100人中1人)ぐらいだろ。
10年いても、9割の社員は、資格を取れない
大卒の新米が、こんなの簡単に取れますよねって言ったら、
中堅社員は皆、新米をにらみつけていたw
企業の資格取得率は、年1%(100人中1人)ぐらいだろ。
10年いても、9割の社員は、資格を取れない
750デフォルトの名無しさん
2018/03/27(火) 23:53:23.07ID:FNmJga7y 申し込みしたけど忙しくて受験できない人は沢山居るけど受験して落ちる人はいない
751デフォルトの名無しさん
2018/03/27(火) 23:53:50.72ID:3aWOhLkC 俺は応用情報まで持ってて+1万だなー
>10年以上やってる奴でも、基本情報技術者は取れない
……冗談だろ?
>10年以上やってる奴でも、基本情報技術者は取れない
……冗談だろ?
752デフォルトの名無しさん
2018/03/27(火) 23:58:15.55ID:3aWOhLkC さておき、建築士だの医師だの弁護士だのみたいに
「この職務に就くには、○○の資格が必要」とかいう業界じゃないんで
本当に、ただ給料が増えるだけではあるな (採用試験でもまあ有利にはなるかもしれん)
増えたら増えただけ嬉しいもんではあるが
年間で+12万なら、家電の買い替え費用くらい楽に捻出出来るし
「この職務に就くには、○○の資格が必要」とかいう業界じゃないんで
本当に、ただ給料が増えるだけではあるな (採用試験でもまあ有利にはなるかもしれん)
増えたら増えただけ嬉しいもんではあるが
年間で+12万なら、家電の買い替え費用くらい楽に捻出出来るし
753デフォルトの名無しさん
2018/03/27(火) 23:58:26.75ID:9YSJ28+H 定したディレクトリの中を一発で全て置換する何か便利なソフトはありますか?
c:\test
aaa.txt
bbb.txt
ccc.txt
...etc
指定したディレクトリの中に複数のファイルがあります。
その中にある特定の文字列を全て一括で置換したいです。
アンパンマン → バイキンマン
といった具合です。
c:\test
aaa.txt
bbb.txt
ccc.txt
...etc
指定したディレクトリの中に複数のファイルがあります。
その中にある特定の文字列を全て一括で置換したいです。
アンパンマン → バイキンマン
といった具合です。
754デフォルトの名無しさん
2018/03/28(水) 00:00:54.89ID:02fULCHO botかな
755デフォルトの名無しさん
2018/03/28(水) 00:09:13.46ID:pf/Jvdmo756デフォルトの名無しさん
2018/03/28(水) 00:16:20.41ID:0was1dJs Ruby の、Dir.glob で書ける
Dir.glob('C:/test/*.txt') do |file|
# gsub(/アンパンマン/, 'バイキンマン')で全部を置換する
end
Dir.glob('C:/test/*.txt') do |file|
# gsub(/アンパンマン/, 'バイキンマン')で全部を置換する
end
757デフォルトの名無しさん
2018/03/28(水) 00:44:23.36ID:Im6j951B C# もしくは 既に要件を満たすツールがあれば教えてください。
758デフォルトの名無しさん
2018/03/28(水) 01:02:57.21ID:GnpAMkN4 >>753
マジレスするとVisualStudioで可能
マジレスするとVisualStudioで可能
759デフォルトの名無しさん
2018/03/28(水) 01:13:32.94ID:qs/6O+TS >>757
WindowsでC#使ってるならVisual Studio使ってるんだろ?
フォルダーを指定して置換でいいと思うが
https://msdn.microsoft.com/ja-jp/library/a40ywt0a.aspx
WindowsでC#使ってるならVisual Studio使ってるんだろ?
フォルダーを指定して置換でいいと思うが
https://msdn.microsoft.com/ja-jp/library/a40ywt0a.aspx
760デフォルトの名無しさん
2018/03/28(水) 07:24:31.11ID:1/4U3eU2761デフォルトの名無しさん
2018/03/28(水) 07:34:12.04ID:NtzDkwr+ powershell
762デフォルトの名無しさん
2018/03/28(水) 22:10:34.35ID:LHMXaAz3 public Pixel(IList<byte> data, int index)
{
B = data[0];
G = data[1];
R = data[2];
Index = index;
}
var list = new List<(int x, int y)>();
// 何故か背景色がFFA07A固定なのでそれ使って適当に
list.AddRange(pixels.Where(x =>
Math.Abs(x.R - 0xFF) < 5 &&
Math.Abs(x.G - 0xA0) < 5 &&
Math.Abs(x.B - 0x7A) < 5
).Select(x => (x.Index % width, x.Index / width)));
ビットマップをPixelクラスに読み込んで特定の色(FFA07A)のピクセルを検出しているのですが
(x.R - 0xFF) < 5
ここのRGBから16進数をマイナスして5未満の意味がわからないのですが
なぜこんな計算をしているのでしょうか?
{
B = data[0];
G = data[1];
R = data[2];
Index = index;
}
var list = new List<(int x, int y)>();
// 何故か背景色がFFA07A固定なのでそれ使って適当に
list.AddRange(pixels.Where(x =>
Math.Abs(x.R - 0xFF) < 5 &&
Math.Abs(x.G - 0xA0) < 5 &&
Math.Abs(x.B - 0x7A) < 5
).Select(x => (x.Index % width, x.Index / width)));
ビットマップをPixelクラスに読み込んで特定の色(FFA07A)のピクセルを検出しているのですが
(x.R - 0xFF) < 5
ここのRGBから16進数をマイナスして5未満の意味がわからないのですが
なぜこんな計算をしているのでしょうか?
763デフォルトの名無しさん
2018/03/28(水) 22:12:50.37ID:6nNahb2+ 止まるんじゃねぇぞ…
764デフォルトの名無しさん
2018/03/28(水) 22:21:23.63ID:Im6j951B765デフォルトの名無しさん
2018/03/28(水) 22:33:50.78ID:r3METhPg >>762
そのコードを書いた奴に聞けよ
そのコードを書いた奴に聞けよ
766デフォルトの名無しさん
2018/03/28(水) 22:42:38.68ID:qs/6O+TS >>764
2008 でもある
https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/a40ywt0a(v=vs.90)
たぶんもっと前からあったような気がする
2008 でもある
https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/a40ywt0a(v=vs.90)
たぶんもっと前からあったような気がする
767デフォルトの名無しさん
2018/03/28(水) 22:52:23.87ID:Im6j951B >>766
知らなんだ。サンクス
知らなんだ。サンクス
768デフォルトの名無しさん
2018/03/29(木) 00:01:16.76ID:LDL0rnP5770デフォルトの名無しさん
2018/03/29(木) 12:17:07.66ID:48quLBzg 質問です。よろしくお願いします。
ttps://tb.click-sec.com/fx/historical/historicalDataDownload.do?y=2018&m=01&c=21&n=USDJPY
をブラウザで開くとzipファイルのDLが始まるので、これをC#でDLしようと思ったのですが、
このURLのままだとSystem.Net.WebClient.FileDownloadでもWebBrowserコントロールで開いてもzipファイルのDLができません。
どうすればいいのでしょうか。 👀
Rock54: Caution(BBR-MD5:8e40a50a3146c71e5aa506574dbd07bd)
ttps://tb.click-sec.com/fx/historical/historicalDataDownload.do?y=2018&m=01&c=21&n=USDJPY
をブラウザで開くとzipファイルのDLが始まるので、これをC#でDLしようと思ったのですが、
このURLのままだとSystem.Net.WebClient.FileDownloadでもWebBrowserコントロールで開いてもzipファイルのDLができません。
どうすればいいのでしょうか。 👀
Rock54: Caution(BBR-MD5:8e40a50a3146c71e5aa506574dbd07bd)
771デフォルトの名無しさん
2018/03/29(木) 12:30:39.81ID:49BUJ49m 諦める
772770
2018/03/29(木) 12:50:22.61ID:48quLBzg IEに開かせればできるかもと思ったのでやってみます。
773デフォルトの名無しさん
2018/03/29(木) 14:42:04.00ID:fRxUhejE すまんが、イベントハンドラーを空っぽにするのってどうやんの?
774デフォルトの名無しさん
2018/03/29(木) 15:00:44.15ID:mcXZqOx8 nullから空っぽのラムダ式を入れる
もしそのイベントを持つクラスの外からやりたいと言ってるならそれは無理
無理と言うより、そんなことをしたいと思うこと自体が間違ってる
もしそのイベントを持つクラスの外からやりたいと言ってるならそれは無理
無理と言うより、そんなことをしたいと思うこと自体が間違ってる
775デフォルトの名無しさん
2018/03/29(木) 19:35:16.02ID:2ivypk2R >>773
-= イベントハンドラ;
-= イベントハンドラ;
776デフォルトの名無しさん
2018/03/30(金) 11:54:45.53ID:LK6mi3V8 ユニットテストについて質問
例えば計算クラスのテストをするときは
[TestCase(-2, 2)]
public void AbsTest(int a, b){
int n = Math.Abs(a);
Assert.AreEqual(n, b);
こういう風に正しい値を予め手計算で用意しておくものなの?
例えば計算クラスのテストをするときは
[TestCase(-2, 2)]
public void AbsTest(int a, b){
int n = Math.Abs(a);
Assert.AreEqual(n, b);
こういう風に正しい値を予め手計算で用意しておくものなの?
777デフォルトの名無しさん
2018/03/30(金) 12:24:31.95ID:Aig7x3ki >>776
一般的にはその通り
間違っても n = a < 0 ? -a : a とかやってはいけない
ちょっと考えたら分かると思うけど、そういうのは全く意味のないオレオレテスト
手計算がどうしても困難なら、デバッガで動かしてその結果が合ってるかを検証してその値をコピペしとけ
少なくとも意図しないデグレの検出には役立つ
一般的にはその通り
間違っても n = a < 0 ? -a : a とかやってはいけない
ちょっと考えたら分かると思うけど、そういうのは全く意味のないオレオレテスト
手計算がどうしても困難なら、デバッガで動かしてその結果が合ってるかを検証してその値をコピペしとけ
少なくとも意図しないデグレの検出には役立つ
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 ごめん、無理だね
ブロック外してもスコープはローカルになっちゃうみたい
ブロック外してもスコープはローカルになっちゃうみたい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 地球から無限km先の場所ってどうなっているの?
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 日本、高市のお陰で破滅に近づくwwwwwwww
- AIアーティストだけど作品公開する
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
