X



ふらっと C#,C♯,C#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 0f9a-KsIq)
垢版 |
2017/11/29(水) 19:23:58.05ID:GNLsbK4F0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
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/

■コードを貼る場合は↓を使いましょう。
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: checked:vvvvv:1000:512:----: EXT was configured
0359デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 00:49:07.59ID:dskbzAHG0
>>358
https://ideone.com/mDt50q
こちらになります
お手数おかけしますがよろしくお願い致します。
0360デフォルトの名無しさん (ワッチョイ cb75-rVxj)
垢版 |
2018/01/04(木) 00:52:04.58ID:T+TxDQDt0
>>359
Form1メソッドはForm1クラスのコンストラクタなんだが、ここじゃなくてform1_Loadの中に書かないといけない。
デザイナーでフォームのウィンドウをダブルクリックすればform1_Loadが作成されるからその中に。
0362デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 01:01:20.45ID:dskbzAHG0
>>361
出来ました!
有難うございます。
助かりました。
0363デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 04:02:02.66ID:dskbzAHG0
>>334
同じ値の時はあらかじめ決められている優先順位を取りたかったのでこのコードが非常に参考になりました
有難う御座います。
優先度が高いものを上にすればいいんですね

var flaggedList = list.Where(data => data.Flag);
これだけよくわからないのですがif(true)とかと同じ様な書き方でtrueのものだけソート出来るんでしょうか?
0364デフォルトの名無しさん (ワッチョイ 4f9f-b4Jt)
垢版 |
2018/01/04(木) 05:47:57.28ID:+aPSEg6K0
上は下の省略形で下の括弧内で好きに条件をかけばいい
data => data.Flag
data => {return data.Flag;}
勿論ifも使えるしこんな感じで書きかえることもできる
data =>{
if(data.Flag){
return true;
}
else{
return false;
}}
0367デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 16:11:37.44ID:dskbzAHG0
レス有難う御座います。
>>334
でFlagが全てfalseだった場合止まってしまうので、mavValueOwnerKeyに空である表示をしたいのですがどうすればいいでしょうか?
0368デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/04(木) 16:14:27.34ID:dskbzAHG0
list.Countで場合分けしてみます
0370デフォルトの名無しさん (ワッチョイ ef9b-uQO5)
垢版 |
2018/01/05(金) 14:35:10.83ID:vfHtPi/n0
ある文字列に特定の文字列が含まれていれば別の文字列に置換する、という処理を行いたいんですが
だぜ→です
ですわ→です
といった感じの置換したい文字列が数百パターン存在する場合はひとつひとつ置換を試していくしかないのでしょうか…?
0372デフォルトの名無しさん (ワッチョイ ef9b-uQO5)
垢版 |
2018/01/05(金) 14:51:45.66ID:vfHtPi/n0
>>371
基本的にはreplaceを使うことになると思うのですが、例えば
'今日はほんといい天気だぁ〜〜〜!!'
という文字列に対して
だぜ→です
だぁ→だ
ほんと→ほんとうに
といった変換ルールが複数ある場合は
ひとつひとつreplaceをかける(あるいはループで変換ルールすべてを試す)しかないのかなぁと思いまして

要するに実行速度が気になっているのです
0384デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/08(月) 18:15:27.77ID:N8MhEzoU0
"one"
"two"
"three"
の様な文字列が用意されていて

int keisan(2,"one")
→2*1
int keisan(2,"one","two")
→2*(1+2)
int keisan(2,"one","two","three")
→2*(1+2+3)
int keisan(2,"one","three")
→2*(1+3)
の様な結果を返すメソッドを作りたいのですが
引数の数が決まっていないメソッドを作るにはどうすればいいのでしょうか?
0390デフォルトの名無しさん (ワッチョイ fb03-wNfw)
垢版 |
2018/01/08(月) 19:00:26.28ID:Jvqg6B4Y0
質問するより前にまず自分で一通り勉強した結果がお前らなのだから
俺は自分で勉強するより前に質問する方を選ぶよ
0399デフォルトの名無しさん (ワッチョイ 9fd2-Gfid)
垢版 |
2018/01/08(月) 21:45:51.25ID:O8jIltI+0
ここは
>「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
て、ことだからねえ。
>>1 が気にいらないなら自分で自分の主義にあるスレを立ち上げればいいだけ。

検索するにも適切なキーワードを思いつけなくて1日悩み続けた挙げ句に、聞いたら一瞬で終わるなんて事もあるし。
今回のは簡単な方だったみたいだけど。
0400 ◆QZaw55cn4c (ワッチョイ 1f60-1EiW)
垢版 |
2018/01/08(月) 21:55:49.50ID:F+Qn6y7R0
>>399
「VS2017 のプロジェクト(P)→プロパティ(E)のスタートアップオブジェクト(O) に相当する
eclipse や intelliJ のメニューってなんですか」
と、今も探しているが、そもそも適切なキーワードが思いつかない

自分の話ですまん‥
0401デフォルトの名無しさん (アウアウエー Sa3f-iSeT)
垢版 |
2018/01/08(月) 22:07:40.25ID:fM4iC4afa
(1) 勉強して理解できなかった疑問点や調べても解決しなかったことを質問する
のと

(2) 面倒くさいからとにかくお前ら手取り足取り教えてくれ

では全然違うと思うよw

誰でも変な思い込みや勘違いをすることがあるから、(1)であるならくだらない質問でも問題ないと思う。
でも(2)は見ててあんまり気分がよくないなと思う人もいると思うけどね。

っていうかそういう道徳的話はともかく、それって学習効率悪いよね絶対。
優しさ云々はそういう意味
0402デフォルトの名無しさん (ワンミングク MMbf-vnDV)
垢版 |
2018/01/08(月) 22:11:51.21ID:4Iuopxo1M
くだらない調査に時間かけるより聞いた方が良い
答える方もグダグダ言わずに知ってることを教えてやれ
そういうネットワークができれば社会全体の生産性が上がるんだよ
日本にはなくて外国には当たり前のようにあるシステムだ
日本人は性格が排他的すぎるからITに向いてない
だから負けるんだ
0403デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/08(月) 22:29:20.81ID:N8MhEzoU0
>>385
>>386
>>387
有難う御座います。
後でやってみます。

入門書は一冊終わらせてはいるのですが作りたいものを作ろうとした時、その本に載っていないことの方が多くて…
ここのスレの方々のおかげで今作っているプログラムもだいぶ形になってきました
非常に助かっています
可変長引数についても一応事前に調べて存在は知っていましたが説明を読んでもいまいちわからなく
もっと簡単な方法があるかも…と思って聞いてみました
でもやっぱりparamsと答えられたのでそれがベストなんだなと知ることが出来て
説明をもう一度読み直したらなんとか理解出来ました
0404デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/08(月) 22:32:02.44ID:N8MhEzoU0
>>394
ありがとうございます。
参考にします。
0405デフォルトの名無しさん (ワッチョイ 9fb3-TPPA)
垢版 |
2018/01/08(月) 22:34:04.87ID:7hYpzMEE0
くだらん質問だと思うならスルーするなり他のスレに行けよ
ここは

> 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

だよ
0406デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/08(月) 22:40:28.65ID:N8MhEzoU0
ちなみにこういう書き方はできるのでしょうか?
int keisan(params string[] xs,int x)

int keisan("one","two","three",2)
0408デフォルトの名無しさん (ワッチョイ 4f9f-b4Jt)
垢版 |
2018/01/08(月) 22:45:14.32ID:zg3P5Xfz0
>>406
paramsは最後のみ
エラーでるから試してみるといい

>>405
スルーも何も質問は2分後に解決してる
その後はこういったプログラミング初心者対して別アプローチをした方がって話で質問とは関係ないと思うんだが
0409デフォルトの名無しさん (ワッチョイ fb03-wNfw)
垢版 |
2018/01/08(月) 22:51:04.77ID:Jvqg6B4Y0
>>407、408
よう初心者クン
で何を教えて欲しいのかね?
0414デフォルトの名無しさん (ワッチョイ bbf7-k1u0)
垢版 |
2018/01/09(火) 05:02:51.20ID:A/ESCl++0
可変長は一種類だけで、最後に定義しないといけないみたいですね
無事に機能を実装できました。
質問に答えて下さった方有難う御座いました。
0417デフォルトの名無しさん (ガックシ 067f-rVxj)
垢版 |
2018/01/09(火) 08:58:27.18ID:jhkCquMi6
>>416
hoge(arg=1, args=2, arcs=3, n=2)

argsの配列感がない上に1,2,3っていう順番付けが曖昧

hoge((arg=1, 2, 3,) n=2)

こんな文法を作ったとしても、もう配列で良いよねってなる

説明させんなよメンドくせえな
0420デフォルトの名無しさん (ブーイモ MM0f-jqvb)
垢版 |
2018/01/09(火) 12:48:02.08ID:xZogmC5hM
>>419
同意する
0422デフォルトの名無しさん (ガックシ 067f-rVxj)
垢版 |
2018/01/09(火) 12:59:33.58ID:jhkCquMi6
>>421
無理矢理でもやってるやつもあんだな。

ま、>>407
「ちょっと考えれば分かるだろ質問すんな」じゃなくて、
『は?なんで可変長だけ順番変えねえの?キモッ。』って思われるかもしれないから、納得できるように付け加えただけな。
0424デフォルトの名無しさん (ワッチョイ bbeb-nOrU)
垢版 |
2018/01/09(火) 18:29:21.69ID:TMj71yN00
async/awaitを使った際の実行の流れの図があったら誰か見せてくれんかな
0427デフォルトの名無しさん (ワッチョイ bbeb-nOrU)
垢版 |
2018/01/09(火) 18:57:43.08ID:TMj71yN00
ありがとうございます
図はよくわからなかった点も多いので、ゆっくり記事を読んできます
0431デフォルトの名無しさん (アウアウエー Sa3f-iSeT)
垢版 |
2018/01/10(水) 01:37:54.23ID:9VtjyWrsa
↑の人はたぶんコードと図で1セットになってることに気付かずに
図だけ見てそう言ってるか、あるいはなんか思いっきり勘違いしてるだけだと思うから
安心して参考にしていいと思うw
0433デフォルトの名無しさん (アウアウウー Sa8f-aKZ8)
垢版 |
2018/01/10(水) 01:55:51.66ID:rjHbKDY9a
>「メソッドを一時中断し、awaitされた処理の完了を待って残りの処理を再開する」
非常にグレーな表現

>@に続けてAの処理が別スレッド上で開始される
非常にグレーな表現

HevyWork()の中身が必ずすべて別スレッド上で行われてるわけではない
0439デフォルトの名無しさん (ワッチョイ 9f7c-Ogju)
垢版 |
2018/01/10(水) 05:30:31.38ID:t7WvUySz0
UnityってC#どのくらい使えると触れるの?
0440デフォルトの名無しさん (ワッチョイ 0f80-41Gj)
垢版 |
2018/01/10(水) 07:12:09.78ID:8FRtzSYP0
初めてのJavaScript 第3版、オライリー、2017

JS には、async/await が無いから、
この本では、generator runner の仕組みを説明している。
co, Koa というライブラリを使う

非同期処理は異なるコンテキストで、
別のスレッド・プロセスだから、どこを実行しているのか分からない。
実行順番も制御できないし、例外処理も使えない

generator runner は非同期処理を、yield で待つように作る。
これにより、非同期処理を同期処理のコンテキストに当てはめるから、
実行順番を制御できるし、例外処理も使える

try{
yield promise 非同期処理
} catch {
}
0441440 (ワッチョイ 0f80-41Gj)
垢版 |
2018/01/10(水) 07:52:38.82ID:8FRtzSYP0
異なるコンテキストとは、同じソースコードに書いていても、
OS から見ると、別のプロセス・スレッド・実行単位になる

OS は、1秒間に数万回も、実行単位を切り替える(コンテキストスイッチ)から、
今、別の実行単位の、どのコードが実行されているかは、全く分からないし、制御もできない

別の実行単位に対してできることは、
タスクの終了を待つか、タイムアウトするか、タスクを止めてもらうかだけ
0446デフォルトの名無しさん (アウアウカー Sa4f-Sycn)
垢版 |
2018/01/10(水) 15:47:45.43ID:0NEBj+IAa
C#始めて1カ月程度の初心者です

trackbarの値をBackgroundWorkerに渡して、その値を使って別スレッドで画像を生成して、whileとReportProgressでtrackbarの変更に合わせて画像を表示していくプログラムを作っているんですが、

trackbarの値をBackgroundWorker_DoWorkに渡すのってどうやるんですか?

別スレッドなので、trackbar.Valueでそのまま使う事ができなくて…
デバッグ無しの実行ならよく分からないですが、そのまま使っても実行できて上手く画像表示されている事が確認できたので、
スレッド間でtrackbarの値を渡すのだけが上手くいかなくて悩んでます
0447デフォルトの名無しさん
垢版 |
2018/01/10(水) 15:54:42.58
トラックバーの値変更イベントのイベントハンドラでフォームのフィールドにトラックバーの値を保持しておく
それをバックグラウンドワーカーで読み取る
0448デフォルトの名無しさん (ガックシ 067f-Sycn)
垢版 |
2018/01/10(水) 16:15:46.81ID:+iIpBJgq6
>>447
それって両スレッド共通の変数を作っておいてトラックバーが動いた時のイベントハンドラでその変数に値を保存していくって事ですよね?
それも試したんですが、よくわからないエラーが発生して動作が止まってしまいました
0449デフォルトの名無しさん
垢版 |
2018/01/10(水) 16:16:37.99
それか、Invokeでアクセスする



// コントロールが破棄されてないかチェック
if (trackbar.IsDisposed)
return;


var value = 0;

// Invokeが必要かチェック
if(trackbar.InvokeRequired) {
Invoke((MethodInvoker)(() => {
value = trackbar.Value;
}));
} else {
value = trackbar.Value;
}
0450デフォルトの名無しさん
垢版 |
2018/01/10(水) 16:19:33.71
>>448
じゃあ、値変更イベントハンドラ内でトラックバーの値をフィールドに設定するところと、バックグラウンドワーカーでそのフィールドから値を読み出すところを、lock{...}で囲む
0451デフォルトの名無しさん (ブーイモ MM7f-jqvb)
垢版 |
2018/01/10(水) 16:24:33.20ID:yZjeHBZDM
その処理は別スレッドでないと出来ないのか?
という身もフタもない突っ込み
0453デフォルトの名無しさん (ガックシ 067f-Sycn)
垢版 |
2018/01/10(水) 16:33:27.10ID:+iIpBJgq6
>>450
ちょっと用事ができたので今は試せませんが、両方試してみます

>>451
割と重い処理なので、同じスレッドのトラックバーのイベントハンドラで処理を行うと、トラックバーの動きがかくついてしまったので、分離したいんです
0455デフォルトの名無しさん (ガックシ 067f-Sycn)
垢版 |
2018/01/10(水) 17:01:05.31ID:+iIpBJgq6
>>454
課題でバックグラウンドワーカー指定されてたので、
それ初めて聞いたんですが、同じような事が出来るんですか?
0457デフォルトの名無しさん (ガックシ 067f-Sycn)
垢版 |
2018/01/10(水) 17:17:37.84ID:+iIpBJgq6
>>456
それってバックグランドワーカーを開始する時に値を渡す事ですか?
WhileとReportProgressで画像表示していて、バックグランドワーカーは止まらないので開始時の値を引き渡すのだけでは、トラックバーの値変更に対応できなさそうですが、できるんですか?
的外れな事言ってたらすみません。
まだ学び始めたばかりでわからない事だらけなので

ちなみに画像生成に使うトラックバーは7本あります
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況