ふらっと C#,C♯,C#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらない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 質問です
わたしはパッパラパーなりにC#を勉強してきて、自分用の初歩的なGUIアプリを作れる程度には覚えれたんですが
Pなんとかのほうが良かったんですか?
それがパッパラパーに向いてる理由をふくめて教えていただけるとありがたいです >>352
そう、nは引数。
>>352
動かないとは具体的にどうなる?エラーとかでテルル >>354
Tostringの後の;で
型 'System.NullReferenceException' のハンドルされていない例外が LINQtest.exe で発生しました
追加情報:オブジェクト参照がオブジェクト インスタンスに設定されていません。
と出ます >>353
Pなんとか=Python?
Pythonだと高度な機能が無いから簡単ってことかな?
でもC#で簡単な機能だけ使えばいいのでは... >>356
うーん...ideoneに全部貼ってうp頼む >>358
https://ideone.com/mDt50q
こちらになります
お手数おかけしますがよろしくお願い致します。 >>359
Form1メソッドはForm1クラスのコンストラクタなんだが、ここじゃなくてform1_Loadの中に書かないといけない。
デザイナーでフォームのウィンドウをダブルクリックすればform1_Loadが作成されるからその中に。 あと、コピぺするときに省略しただけかもしれないけどInitializeComponent();っていう文がForm1メソッドの中に書いてあったはずなんだがそれは必要 >>361
出来ました!
有難うございます。
助かりました。 >>334
同じ値の時はあらかじめ決められている優先順位を取りたかったのでこのコードが非常に参考になりました
有難う御座います。
優先度が高いものを上にすればいいんですね
var flaggedList = list.Where(data => data.Flag);
これだけよくわからないのですがif(true)とかと同じ様な書き方でtrueのものだけソート出来るんでしょうか? 上は下の省略形で下の括弧内で好きに条件をかけばいい
data => data.Flag
data => {return data.Flag;}
勿論ifも使えるしこんな感じで書きかえることもできる
data =>{
if(data.Flag){
return true;
}
else{
return false;
}} レス有難う御座います。
>>334
でFlagが全てfalseだった場合止まってしまうので、mavValueOwnerKeyに空である表示をしたいのですがどうすればいいでしょうか? ある文字列に特定の文字列が含まれていれば別の文字列に置換する、という処理を行いたいんですが
だぜ→です
ですわ→です
といった感じの置換したい文字列が数百パターン存在する場合はひとつひとつ置換を試していくしかないのでしょうか…? >>371
基本的にはreplaceを使うことになると思うのですが、例えば
'今日はほんといい天気だぁ〜〜〜!!'
という文字列に対して
だぜ→です
だぁ→だ
ほんと→ほんとうに
といった変換ルールが複数ある場合は
ひとつひとつreplaceをかける(あるいはループで変換ルールすべてを試す)しかないのかなぁと思いまして
要するに実行速度が気になっているのです >>372
やってみろよ
問題なければそれでいいじゃん >>373
それもそうですね
一度試してみます
ありがとうございました >>372
そこに”今日はほんとうにいい天気だ”を突っ込むとどうなる? 変換済みワードは一旦固めてしまわないと駄目かもしれんね インクリメンタルにトライ木に掛けると1走査でできるよ switch c
case 'だ':
var n=nextWord();
if(n=='ぜ')
replace("です");
else if(n=='ぁ') C♯のswitchってC♯6からint以外も扱えるようになってたのか知らなかった "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)
の様な結果を返すメソッドを作りたいのですが
引数の数が決まっていないメソッドを作るにはどうすればいいのでしょうか? シグネチャは int keisan(int x, params string[] xs) になるかな たぶんずっと同じ人だと思うけど、こういう人には質問するより前に
まず自分で一通り勉強したらって言ってあげるのが優しさだと俺は思うけどなあw 質問するより前にまず自分で一通り勉強した結果がお前らなのだから
俺は自分で勉強するより前に質問する方を選ぶよ 例えばこんな感じのことがしたいのか
2の部分や演算順序が固定で気持ち悪い感じするが、簡易パーサーか何かかな
https://ideone.com/b4A3Hl 勉強というよりもこの程度の内容をググれないのが心配だ
"引数の数が決まっていないメソッド"って感じの適当な検索でもかなりヒットするのに ここは
>「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
て、ことだからねえ。
>>1 が気にいらないなら自分で自分の主義にあるスレを立ち上げればいいだけ。
検索するにも適切なキーワードを思いつけなくて1日悩み続けた挙げ句に、聞いたら一瞬で終わるなんて事もあるし。
今回のは簡単な方だったみたいだけど。 >>399
「VS2017 のプロジェクト(P)→プロパティ(E)のスタートアップオブジェクト(O) に相当する
eclipse や intelliJ のメニューってなんですか」
と、今も探しているが、そもそも適切なキーワードが思いつかない
自分の話ですまん‥ (1) 勉強して理解できなかった疑問点や調べても解決しなかったことを質問する
のと
(2) 面倒くさいからとにかくお前ら手取り足取り教えてくれ
では全然違うと思うよw
誰でも変な思い込みや勘違いをすることがあるから、(1)であるならくだらない質問でも問題ないと思う。
でも(2)は見ててあんまり気分がよくないなと思う人もいると思うけどね。
っていうかそういう道徳的話はともかく、それって学習効率悪いよね絶対。
優しさ云々はそういう意味 くだらない調査に時間かけるより聞いた方が良い
答える方もグダグダ言わずに知ってることを教えてやれ
そういうネットワークができれば社会全体の生産性が上がるんだよ
日本にはなくて外国には当たり前のようにあるシステムだ
日本人は性格が排他的すぎるからITに向いてない
だから負けるんだ >>385
>>386
>>387
有難う御座います。
後でやってみます。
入門書は一冊終わらせてはいるのですが作りたいものを作ろうとした時、その本に載っていないことの方が多くて…
ここのスレの方々のおかげで今作っているプログラムもだいぶ形になってきました
非常に助かっています
可変長引数についても一応事前に調べて存在は知っていましたが説明を読んでもいまいちわからなく
もっと簡単な方法があるかも…と思って聞いてみました
でもやっぱりparamsと答えられたのでそれがベストなんだなと知ることが出来て
説明をもう一度読み直したらなんとか理解出来ました >>394
ありがとうございます。
参考にします。 くだらん質問だと思うならスルーするなり他のスレに行けよ
ここは
> 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
だよ ちなみにこういう書き方はできるのでしょうか?
int keisan(params string[] xs,int x)
int keisan("one","two","three",2) 無理です
ちょっと考えればそれができたら困ったことになるのは分かるはず >>406
paramsは最後のみ
エラーでるから試してみるといい
>>405
スルーも何も質問は2分後に解決してる
その後はこういったプログラミング初心者対して別アプローチをした方がって話で質問とは関係ないと思うんだが >>407、408
よう初心者クン
で何を教えて欲しいのかね? >>407
最後にint型が来るって指定なんだから別に困らない
パターンマッチではよくあるでしょ >>410
この場合は困らんけど一般的には困るだろ
こんな文法が許されてたら。 >>411
デフォルト引数の順番の制限もなくなったことを考えてみ? >>408
> 質問とは関係ないと思うんだが
スレ違いだとは思わないのか? 可変長は一種類だけで、最後に定義しないといけないみたいですね
無事に機能を実装できました。
質問に答えて下さった方有難う御座いました。 >>412
おまえに言われなくてもそんなこと考えてるし
そのパターンは非現実的だって分かるだろ >>416
hoge(arg=1, args=2, arcs=3, n=2)
↑
argsの配列感がない上に1,2,3っていう順番付けが曖昧
hoge((arg=1, 2, 3,) n=2)
↑
こんな文法を作ったとしても、もう配列で良いよねってなる
説明させんなよメンドくせえな なぜ>>417はこの程度の理解で答えたがるのか?
他人事と思わず皆考えてみよう rubyも昔は可変長引数は最後の仕様だったけど、今は途中でも大丈夫になってる
結局は作ってる人のやる気次第だな >>421
無理矢理でもやってるやつもあんだな。
ま、>>407 は
「ちょっと考えれば分かるだろ質問すんな」じゃなくて、
『は?なんで可変長だけ順番変えねえの?キモッ。』って思われるかもしれないから、納得できるように付け加えただけな。 async/awaitを使った際の実行の流れの図があったら誰か見せてくれんかな ありがとうございます
図はよくわからなかった点も多いので、ゆっくり記事を読んできます よくみたら間違った図ではないが
使う上でなんの説明にもなってない図に訂正
この図だけをみると初心者がハマる ↑の人はたぶんコードと図で1セットになってることに気付かずに
図だけ見てそう言ってるか、あるいはなんか思いっきり勘違いしてるだけだと思うから
安心して参考にしていいと思うw 説明するのが非常に難しいんだけど
async/awaitの挙動をまともに書いてる記事が少ない
有名人でも間違った解説をしてる >「メソッドを一時中断し、awaitされた処理の完了を待って残りの処理を再開する」
非常にグレーな表現
>@に続けてAの処理が別スレッド上で開始される
非常にグレーな表現
HevyWork()の中身が必ずすべて別スレッド上で行われてるわけではない 出来たら苦労しない
場合訳が複雑なので
非常にめんどくさい 言っちゃ悪いけど、これも立派な2ch脳だね
羊たちの沈黙にあった台詞だけど、その批判的精神を自分自身に向けるだけの理性はないのかw >>434
いや、>>428の記事は十分わかりやすいし間違ってもいないから安心していいよw それぞれがそれぞれの心の中でお前が言うなと思う
上にあった図を参考にしてるといつか全然思った通りに動かなくなり?マークになる 初めてのJavaScript 第3版、オライリー、2017
JS には、async/await が無いから、
この本では、generator runner の仕組みを説明している。
co, Koa というライブラリを使う
非同期処理は異なるコンテキストで、
別のスレッド・プロセスだから、どこを実行しているのか分からない。
実行順番も制御できないし、例外処理も使えない
generator runner は非同期処理を、yield で待つように作る。
これにより、非同期処理を同期処理のコンテキストに当てはめるから、
実行順番を制御できるし、例外処理も使える
try{
yield promise 非同期処理
} catch {
} 異なるコンテキストとは、同じソースコードに書いていても、
OS から見ると、別のプロセス・スレッド・実行単位になる
OS は、1秒間に数万回も、実行単位を切り替える(コンテキストスイッチ)から、
今、別の実行単位の、どのコードが実行されているかは、全く分からないし、制御もできない
別の実行単位に対してできることは、
タスクの終了を待つか、タイムアウトするか、タスクを止めてもらうかだけ >>440
>JSには、async/awaitが無い
何言ってんの? 句読点君のレスを判定するアルゴリズムを作ろう
機械学習の勉強によさそう >co, Koa というライブラリを使う
あぁ、このアホか。C#スレまで出張ってきてうざいな。 C#始めて1カ月程度の初心者です
trackbarの値をBackgroundWorkerに渡して、その値を使って別スレッドで画像を生成して、whileとReportProgressでtrackbarの変更に合わせて画像を表示していくプログラムを作っているんですが、
trackbarの値をBackgroundWorker_DoWorkに渡すのってどうやるんですか?
別スレッドなので、trackbar.Valueでそのまま使う事ができなくて…
デバッグ無しの実行ならよく分からないですが、そのまま使っても実行できて上手く画像表示されている事が確認できたので、
スレッド間でtrackbarの値を渡すのだけが上手くいかなくて悩んでます トラックバーの値変更イベントのイベントハンドラでフォームのフィールドにトラックバーの値を保持しておく
それをバックグラウンドワーカーで読み取る >>447
それって両スレッド共通の変数を作っておいてトラックバーが動いた時のイベントハンドラでその変数に値を保存していくって事ですよね?
それも試したんですが、よくわからないエラーが発生して動作が止まってしまいました それか、Invokeでアクセスする
// コントロールが破棄されてないかチェック
if (trackbar.IsDisposed)
return;
var value = 0;
// Invokeが必要かチェック
if(trackbar.InvokeRequired) {
Invoke((MethodInvoker)(() => {
value = trackbar.Value;
}));
} else {
value = trackbar.Value;
} >>448
じゃあ、値変更イベントハンドラ内でトラックバーの値をフィールドに設定するところと、バックグラウンドワーカーでそのフィールドから値を読み出すところを、lock{...}で囲む その処理は別スレッドでないと出来ないのか?
という身もフタもない突っ込み lock (トラックバーの値を保持してる変数) { ... } のミスでした >>450
ちょっと用事ができたので今は試せませんが、両方試してみます
>>451
割と重い処理なので、同じスレッドのトラックバーのイベントハンドラで処理を行うと、トラックバーの動きがかくついてしまったので、分離したいんです ■ このスレッドは過去ログ倉庫に格納されています