ふらっと C#,C♯,C#(初心者用) Part139

■ このスレッドは過去ログ倉庫に格納されています
2018/08/05(日) 19:55:44.50ID:tZmoj8I+
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
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/
346デフォルトの名無しさん
垢版 |
2018/09/03(月) 17:03:56.62ID:dGDVASpD
websoketで大量データ受信しながら他の処理を非同期で遅延なく処理するには、別プロジェクトで共有メモリアクセスがいいか、単純に別スレッドでInvokeするのはどちらがいいでしょうか?
というより、王道な設計パティーンを教えて下さい。
2018/09/03(月) 17:27:25.38ID:vcilZH89
>共有メモリアクセス

こういう発想がどこから出てくるのか?
2018/09/03(月) 17:29:17.86ID:QhFCG6IW
>>346
王道な形はwebブラウザ
2018/09/03(月) 17:41:54.34ID:ttVcJTrG
VSCode でも使っている、Electron とか
350デフォルトの名無しさん
垢版 |
2018/09/03(月) 18:08:25.48ID:dGDVASpD
>>347
だめですか?
2018/09/03(月) 18:13:45.54ID:9RGmKGyN
>>350
だめとかの前に具体的な形考えたうえで書いている?
2018/09/03(月) 18:17:15.88ID:oOf4f4g2
受け取った大量データを他の処理で使いたいってことか?
使うのが受け取りが完了してからでいいんだったら普通にファイルに書けばいい
2018/09/03(月) 18:24:29.32ID:vcilZH89
>>350
共有メモリを使うと言うことは別のプロセスと通信すると言うことだね
わざわざリソースを食う共有メモリを使って処理速度を遅くして何がしたいんだ?
2018/09/03(月) 19:07:52.86ID:EUoYWljm
前スレでシリアルポートの使い方を聞いた質問者か?
相変わらずズレた考え方してんな
2018/09/03(月) 19:29:03.44ID:vcilZH89
普通はプロセスごとにメモリが分離しててどちらかがおかしくなっても他に影響しないように作られてる

それを無理やりOSを使って通信してるのが共有メモリで実際は共有してない
2018/09/03(月) 19:33:07.93ID:ACnp/Uoo
別プロセスする必要なしと言えばいいのに
なんてひねくれた奴らだ
2018/09/03(月) 19:42:32.34ID:NR0nQ5XR
>>356
ファイル連携で済むくらいにすっぱりと綺麗に分けられるなら分けるべき
共有メモリが必要になるような密な連携が必要なら本末転倒
358デフォルトの名無しさん
垢版 |
2018/09/03(月) 19:49:50.99ID:lS5Tq6xt
何が本で何が末やら全くわからん件
2018/09/03(月) 19:54:16.82ID:NR0nQ5XR
本: 目的の達成
末: プロセスの分割
本末転倒: プロセスの分割により目的の達成が逆に遠のいている状況
360デフォルトの名無しさん
垢版 |
2018/09/03(月) 19:58:46.45ID:lS5Tq6xt
>>359
共有メモリが必要なら必要な事をしとるだけで遠のいとらんやろ
何を言いたいんやおまえは?
2018/09/03(月) 20:06:23.97ID:BfF9DJB1
答える気がないことだけは分かった。
じゃーなゴミクズども。
家族や先生以外とコミュニケーション取ろうとしてんじゃねえよ池沼クサレガイジが。
362デフォルトの名無しさん
垢版 |
2018/09/03(月) 20:21:12.20ID:lS5Tq6xt
答える気がないのではなく答える能力がないのだという事だけは知っておいて欲しい
決して悪気があるのではない、むしろ彼らは答える気に満ち溢れているのだ
2018/09/03(月) 21:06:49.10ID:ttVcJTrG
普通は、共有メモリなんて考えない。
何が目的なのか、わからない

A | B | C

パイプなんて、これで処理完了する。
共有メモリもクソもない

メモリなんて、OS が勝手に共有しているだろ
2018/09/03(月) 21:13:29.70ID:vevNEWn4
普通にやるならtaskでcontinuewithするとか?
2018/09/03(月) 21:16:04.89ID:C1+EoShM
>>361>>362
ファイルにしろとかみんな答えているだろ
処理内容もわからないし処理するもののフォーマットや大きさが決まっているのかもわからない
そんな内容で細かく的確に導けって無理だから
ここ質問者だけでなく回答者もみんな初心者が来るスレだよ
2018/09/03(月) 21:59:51.88ID:YJr4EDHr
>>346
スレッドセーフなキュー(BlockingCollectionとか)を用意して、
受信してキューにデータを入れるタスクと、タスクからデータを取り出して処理するタスクに分ける。
2018/09/03(月) 22:12:38.21ID:NrThtKWO
MQ使えよ。標準機能にあるぜよ
368デフォルトの名無しさん
垢版 |
2018/09/04(火) 05:57:09.73ID:u5J3mHSN
同期・非同期通信のサンプルを探しているのですが、知識がないので、サンプルの善し悪しが分かりません。

実際に動かしてみてこれは良さそうだと思ったんですが、もっといいサンプルはありますか?
https://docs.microsoft.com/ja-jp/dotnet/framework/network-programming/socket-code-examples
2018/09/04(火) 13:00:56.54ID:JkSql3w1
JavaScript, jQuery などの非同期処理は、Deferred、ES2015ではPromise

他に、ES2015のGenerator、Async/Await
2018/09/04(火) 17:47:51.73ID:B4hp9gin
>>217
未確認飛行は自分は最初きつかった
本当に最初は1週間で学べるc#が助かった
2018/09/04(火) 18:23:01.71ID:xdg0c65C
>>369
スレタイ読めないのかな
2018/09/04(火) 18:59:47.33ID:2N5HXzo8
Rubyガイジだろ
優しくしなさい
2018/09/04(火) 20:02:49.34ID:KXm2oNE8
>>368
昔ながらの非同期処理としては鉄板だけど、async/await使うならこことかかなあ
https://qiita.com/tadokoro/items/76085061c38de3d021c0
2018/09/04(火) 23:30:43.13ID:MLAZDoHF
ライブラリ関係って聞いても大丈夫ですか?
ウィンドウをタブ化したくてDockPanelSuiteを導入したのですけれど、
DockStyleをFloatとDocumentしか使わないのですが
ウィンドウをFloatの状態からDockPanelのどこにドラッグアンドドロップしても
DockPanelに収納できるような設定はありませんか?
今の状態だとタブ一覧の上に持って行かないと反応してくれなくて…

スレチだったらすみません
2018/09/05(水) 07:03:56.71ID:VaHR8CA9
>>273
ExcelDataReader ででエクセルを読み取るのをググって調べてるんですが、英語で書かれててよく分かりません。
シート1のセルA1の値を読み取るサンプルコードを教えて下さい。
2018/09/05(水) 08:44:06.60ID:faIDkIPM
英語で書かれててよくわかりませんって、パワーワードだよな。
よくいるけど。
2018/09/05(水) 08:52:00.83ID:Utg8HVgU
今はMSも日本語翻訳に昔ほどのリソースを割かなくなっていて、英語が読めないとMSDNもまともに読めない時代になってる
英語読む気ないならやめた方がいい
2018/09/05(水) 08:54:04.24ID:t8SDBZY6
docsじゃなくて?
2018/09/05(水) 09:04:06.00ID:jUbmg1Bj
ExcelDataReaderで検索したら使ってみたってページすぐ見つかるじゃん
2018/09/05(水) 09:42:29.44ID:ldiBrb1r
ChromeつーかGoogle翻訳が最近賢いから
英語読むこともかなり減ってきたわ
2018/09/05(水) 09:46:07.75ID:QYx0ZVvn
>>380
ところがMSDNになると話は別
まったく逆の意味に翻訳されることもある
というか多すぎる

英文見ると一発でおかしいとわかるけど
2018/09/05(水) 09:57:13.79ID:6xDXCsXb
MSDNの機械翻訳ってなんであれほどまでにアレなのか
昔よりひどい気がする(気のせい)
2018/09/05(水) 10:25:50.71ID:weayVUk8
昨今のAIだかdeel learningだかのブーム。ハードウェアは何倍とか進んでるけど、ソフトウェア的には、全然、世の中便利になったと実感わかない。
2018/09/05(水) 11:29:06.83ID:oU3nYC4L
>>382
機械翻訳の質は確実に向上している
向上した分だけ人力修正の工数を削減しているのだ
2018/09/05(水) 11:45:07.64ID:ldiBrb1r
逆の翻訳って
この前の炎上してたやつとかな

MSDNの機械翻訳は昔から酷いな
2018/09/05(水) 11:47:04.41ID:SyDlVyYO
>>384
なわけないでしょw
人力使った修正なんか昔もやってないからww

プログラマの端くれならAIブームなんてバズワードだって最初から分かれよ
機械翻訳の質なんか工場する訳がない
機会は文脈を理解できない、というのが問題の根本なんだが、それを解決する理論なんか何も見つかってないんだから
2018/09/05(水) 11:54:12.12ID:NmNBYqq+
>>386
MSDNのドキュメントが機械翻訳ベースで人間が校正してたのは有名な話だぞ
今は「英語で読む」スイッチが付いて、英語に抵抗がない人にとっては使いやすくなったね
2018/09/05(水) 12:33:12.01ID:8BhrS90z
日本語だと漢字の熟語とかで書いてることが一目でなんとなくわかるけど英語でも慣れればそうなるの?
2018/09/05(水) 12:38:10.26ID:mBdcezsc
まずスレタイ読めるようになろうな
2018/09/05(水) 12:38:46.31ID:o1PiTYm1
google翻訳やMSの翻訳は複数の文がコンマでつながれてる文とか壊滅的に訳がおかしい
係り受けや接続もおかしい
2018/09/05(水) 12:39:54.11ID:vNhhiwgZ
自治厨クッサ w
そういうのいいから
2018/09/05(水) 15:52:59.11ID:p4jLi+A7
>>386
んー?でもよくある文章と似たようなワードが出てくるようなときは
かなりの確率で概ね使う構文が一致すんじゃねーの?
2018/09/05(水) 17:37:26.80ID:/mbhrlqw
まだ夏休み中の子供たちが書き込んでいるのか。いつ終わるのかな
2018/09/05(水) 20:45:00.94ID:6xDXCsXb
お前の幸薄い人生の方が先に終わる
2018/09/06(木) 03:47:19.07ID:zXYr6cPt
>>383
ムーアの法則がのびのびになっているのに今更何を言ってるの?
2018/09/06(木) 08:03:45.96ID:8wNQzUcB
>>395
CPUはのびてないけどGPUのテンソルコアは何倍とか急激に延びてるのも知らないの?
2018/09/06(木) 08:26:21.75ID:8wNQzUcB
汎用コアでやってたものを専用コア使い出したり、推論?は単精度じゃなくて半精度で十分だったりでここ数年どんどん最適化進んで急激に延びてんだよ
だから余裕でムーアの法則以上に性能上がってるわ

(たぶん)
2018/09/06(木) 10:11:31.20ID:BzRDAIRM
上がってないよ
ムーアの法則が成立したのはもう10年以上前のPentiumIIIの頃まで

GPUGPUなんてマルチコア化と同じ苦し紛れに過ぎず本質的なものじゃない
2018/09/06(木) 11:21:20.12ID:hEScr/Qj
FPGAとかもあるぞ
だがスレ違い
2018/09/06(木) 11:24:39.92ID:7j2SToAT
マイニングだって汎用CPUで演算してたものを専用のFPGAとかASICにすりゃマイニング性能は爆上がりだろ。
ビデオエンコードだって専用HWで爆速(品質は知らね)

上がってない?って何が上がってないの?

単コア辺りに性能で比較してるんじゃねぇわ
文脈をちゃんと捉えたほうがいい。
2018/09/06(木) 11:43:27.49ID:BzRDAIRM
実にアホな議論だ

計算機は汎用であることに意味がある。
専用ハードなら〜なんて話は、たとえが古いが画像処理専用チップを持ってるファミコンの
ゲームだけ見て、ファミコンの方がPCより高性能だというのと同じ倒錯
2018/09/06(木) 11:57:46.78ID:7j2SToAT
もとから汎用演算の性能の話なんてしてねぇのに読解力ないやつが話に混じろうとして荒れるパターンってやつですね

たかが数レスのやり取りを勘違いするなんて相当読解力ないんですね。
2018/09/06(木) 12:15:05.22ID:Yg5/0qIe
今さらwpfで作る理由ない?
そもそもwpfで作られたアプリが見当たらないし
2018/09/06(木) 12:18:30.13ID:81SkF9sN
知らないだけ
2018/09/06(木) 12:18:36.33ID:Mg/mQaA6
>>403
GUIにこだわりがあるとかUWPにいずれ移植したいとかなら
業務で使っているとかはあまり聞かないから趣味の世界っぽい
2018/09/06(木) 12:41:04.75ID:2OVIK4Yi
>>403
知らないだけ
2018/09/06(木) 12:42:53.94ID:FeLrEgsW
>>403
>>405
VisualStudioやNuGetPackageExplorer見たことない人たち?
2018/09/06(木) 13:08:44.64ID:/FACCQq3
>>407
ところがVSのInstallerはWPFからElectronにリプレースされたんだよなあ
MS的にはできるだけVSCodeとリソースを共有したいだろうから、次期バージョンではほぼ確実にVSのワークスペース内にElectron入れてくるよ
2018/09/06(木) 13:55:14.55ID:DFj+i+04
>>408
そこに深い意味があるとは思えないw

昔のExpressのインストールディスクの起動画面もHTAだった気がしたけど、
あれだってHTAであることに特別意味があったわけじゃなかろう
2018/09/06(木) 16:14:10.25ID:Yg5/0qIe
>>405
MSも捨ててるしねえ
UWPも誰も使ってなくない?

>>406
教えて
2018/09/06(木) 18:42:49.75ID:vsw29ZWk
有名どころだとSourceTreeだな、むしろこれはいまだにElectronとかにしない理由がわからん(GitHub for Windowsはそうなった)
他は知らん

MSもVS,Blendは別とするとWinDbg Previewで使ってるくらいじゃね?

野良アプリはちょくちょく見るけどキリがないので割愛
2018/09/06(木) 20:12:45.37ID:RXSnHqjc
WPFはWindows10のスケーリングに対応しているのかね?
Winformで作ったらWin10スケーリングな人からボロクソに叩かれたからリベンジしたい
2018/09/06(木) 20:14:49.96ID:vwxBR5u1
Windows7で作っていたWinformのアプリがたくさんあったけどWin10にしてスケーリングで問題出たものは一つもないな
2018/09/06(木) 21:15:20.65ID:vsw29ZWk
>>413
4.6.2以降ならmanifest宣言すればPer Monitor DPIもWPF内でやってくれる

https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI
ここのDeveloper Guideを参照

WinformsはSystemAwareの範疇でも見ても中途半端に対応していたせいで
Win32生でやるよりHiDPIで崩れてるアプリが多い気がするなw
2018/09/06(木) 23:08:09.49ID:fUpyP9r6
>>412
WPFは仮想DPIなので元々何もしなくてもスケーリング対応(System DPI aware)
※Per Monitor DPIでは無い
4.6.2以降はmanifestで宣言すればPer Monitor DPIも対応
4.6.2未満もapp.configで宣言すればPer Monitor DPI対応するらしいけど、確認はしてない
2018/09/06(木) 23:14:44.26ID:DFj+i+04
でもPer Monitor DPI自体がポンコツで使い物にならんからなあw
活用してる人がどれだけいるか
2018/09/06(木) 23:54:26.00ID:ZAMf2Fva
他のアプリケーションの持ってるDataGridViewをゴリゴリ弄りたいんだけど何かいい方法ないでしょうか。
持ってるプロパティやデータも読みたい。
しこしこSendMessageするのは現実的ではないと思いまして。
2018/09/07(金) 00:07:44.07ID:edPtcLES
流行りのRPA使えば
2018/09/07(金) 22:13:02.02ID:UPnWNaJM
RPAは自動化処理としては不完全
SendMessageしこしこした方が確実なのは言うまでもない
2018/09/07(金) 23:15:50.54ID:JDDOE++X
ほとんどのプロセサに共通して言えるのは
整数演算性能はどうでもいい扱いになってることだな
2018/09/09(日) 18:37:21.78ID:P2ummhES
エクセルを『ClosedXML』で読み込んで、A2からセルを順に下に見ていってセルが空まで繰り返すって、どの繰り返し文が理想ですか?
2018/09/09(日) 18:43:33.91ID:FyKgo8MI
>>421
while(true){}

空行が100行続いたら抜ける的な
2018/09/10(月) 01:32:47.82ID:Jsw/KSGz
private void AAA()
{
var list = new List<Myclass>();
var numberList = new List<int>()
{
1, 2, 3, 4
};

Myclass mc = new Myclass()
{
Nunber = 0,
};

int i = 0;

foreach (var n in numberList)
{
if(n == 1){
mc.Nunber = 1;
list.Add(mc);
Console.WriteLine("1={0} ", list[i].Nunber);
}

else if (n == 2) {
mc.Nunber = 2;
list.Add(mc);
Console.WriteLine("2={0} ", list[i].Nunber);
}


つづく
2018/09/10(月) 01:33:12.59ID:Jsw/KSGz
else if (n == 3) {
mc.Nunber = 3;
list.Add(mc);
Console.WriteLine("3={0} ", list[i].Nunber);
i += 1;
}
}

foreach (Myclass n in list)
{
Console.WriteLine("res= {0} ", n.Nunber);
}
}
}

public class Myclass
{
public int Nunber { get; set; } = 0;
}
2018/09/10(月) 01:35:58.68ID:Jsw/KSGz
上記を実行すると

1=1
2=2
3=3
res= 3
res= 3
res= 3

となります
list.Add(mc) でlisの要素の最後に追加しているのに
res ではすべての要素が"3" になっています
なぜなんでしょう?
2018/09/10(月) 01:41:58.64ID:4pnQI32t
mc一個しか作ってないからだろ
2018/09/10(月) 01:58:50.78ID:u3SYaGhq
list={ mc ,mc ,mc}になっているんだよな
ループ中でインスタンス毎回作らないと
2018/09/10(月) 06:41:51.42ID:k9vEXAki
c#と言うかプログラミングの勉強始めたばかりなのですが、例外とエラーコードの違いがよくわかりません
2018/09/10(月) 07:45:28.87ID:ndgOlWH8
使い分けるものではないから違いを気にする必要はない
エラーコードはどうしても必要な特別な場合を除きC#では使わない
人によっては業務エラーは戻り値を使うべきだとか色々な主張があるが、今はまず標準的な方法を学ぶ段階であり、そのような意見は無視せよ
430デフォルトの名無しさん
垢版 |
2018/09/10(月) 09:34:21.75ID:uDZUf97M
全部Expect型で解決してるわ
2018/09/10(月) 10:07:06.77ID:WqnqKse5
期待すんな
432423
垢版 |
2018/09/10(月) 11:43:05.11ID:Jsw/KSGz
>>426-427
なるほど!よく考えればそうですね
ありがとうございました
433デフォルトの名無しさん
垢版 |
2018/09/10(月) 13:13:32.38ID:aMpMOsPb
コントロールの名前を小文字で始めると「名前指定の規則違反です」と出るけど
デバッグは通ります
何か問題出ますかね?
あとCamel形式になじめず変数の命名する時
単語の連結にアンダーバー入れたい衝動がハンパ無い
一人で完結するなら問題ないだろうけど
チームでやるようになると嫌がられるのかなあ?
まあ無いだろうけど
2018/09/10(月) 14:25:56.49ID:j74hNM/I
>>433
デバッグ通るなら問題ないでしょ
コーディングスタイルの設定を変えればそういう警告は出なくなるんじゃないかな

チームでやるならチームのスタイルに合わせる、簡単なことじゃん
チームのみんなを納得させられるほどの合理的な理屈があるなら説得してみればいい
2018/09/10(月) 16:32:06.78ID:YgCo9XUL
名付け方式がPascalだろうがCamelだろうが小文字アンダーバーだろうがぶっちゃけ通ればいいよ
チームで嫌がられたらその時合わせ方を考えればいい
2018/09/10(月) 17:35:00.22ID:ed5IUta3
>>433
その手の表記法は余程不合理な物でない限り慣れの問題
少なくとも俺は1週間で慣れる

>単語の連結にアンダーバー入れたい衝動がハンパ無い
これはむしろアンダーバーを入れる表記法の方が冗長で不合理なので、
一旦キャメルやパスカルに慣れた後では間違いなく逆の感覚を抱くようになるw
掛けてもいいよ
2018/09/10(月) 18:05:47.60ID:JmcP0T+k
じゃあ俺のスーツを
2018/09/10(月) 18:07:33.75ID:hb3Qyg+S
俺は靴下
2018/09/10(月) 18:40:22.87ID:lrNRw7rP
web屋、というかPHPerはsnake caseじゃなきゃヤダ!派がやっぱ多いよね
440デフォルトの名無しさん
垢版 |
2018/09/10(月) 18:55:37.19ID:DjrEsgmz
そかあ・・慣れねぇ・・・

ところで「小文字で始めると規則違反って警告が出る」って話だけど
よくよく観察したら
VSがデフォで自動命名したのでも警告出るんだけど・・・・なんで?
例えば
private void button1_Click() の button1_Clickとか・・・
441デフォルトの名無しさん
垢版 |
2018/09/10(月) 19:07:39.58ID:okAQrHmq
日本語メンバは邪道?
442デフォルトの名無しさん
垢版 |
2018/09/10(月) 19:16:20.74ID:BcdHqxqC
アンダーバーを入れない理w
バカ怖るべしwww
2018/09/10(月) 19:17:08.96ID:7Twb5yy4
>>436
単語の間に空白を入れると視認性が高まるという研究結果があるらしい
それを信じるなら、空白ではないがセパレーターが間に入るスネークケースとケバブケースは理にかなってるはずだ
何はともあれまずは実験してみるべきだろう
444デフォルトの名無しさん
垢版 |
2018/09/10(月) 20:53:55.15ID:DjrEsgmz
>>440
自己レス
オプションのコーディングスタイルの
「フィールド以外のメンバー」がパスカルになってたから
これを削除したら出なくなったわ
キャメルにしたかったけど選択肢に無かったから削除にした
よく分からないけどこれで良いんだろうか?www
445428
垢版 |
2018/09/10(月) 21:01:52.45ID:ZrUglARC
わかりました。とりあえず例外の使い方を勉強します。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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