C#, C♯, C#相談室 Part93©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/22(土) 08:52:00.93ID:iVvswOrb0
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part92
http://echo.2ch.net/test/read.cgi/tech/1485589613/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/02/01(木) 01:19:13.10ID:7ACR6glp0
ラムダ式を受け取るメソッドの引数を
Func<String>の代わりにExpression<Func<String>>にしたりする
キーワードは式ツリー
2018/02/02(金) 00:27:05.13ID:eoTWLp2s0
>>131
ありがとー。
軽く見てみましたが、Expression ってよく分からないですね。。
式ツリーでも、もっと調べてみます。
2018/02/13(火) 16:59:47.00ID:KbLCHvlc0
サイズ、位置が固定されているウィンドウを外部プログラムから移動、サイズ変更する方法を教えてください
2018/02/13(火) 20:22:55.89ID:ElvL/+ZbM
とりあえず一般的には
FindWindowやEnumWindowsで目的のウィンドウのウィンドウハンドルを手に入れて
SetWindowPosする
>>133のウィンドウがこれでできるかどうかはそのプログラムの作り次第
2018/02/13(火) 20:56:39.50ID:KbLCHvlc0
>>134
ありがとうございます
それで移動、サイズ変更できないウィンドウをどうにかできないかなと思い質問してみました
ユーザーが移動サイズ変更できないウィンドウでも強引にしてしまうプログラムがあるらしいので、どうしてるのかな?と
2018/02/13(火) 21:00:42.72ID:00bUqpHu0
>>135
とりあえず直接のC#の話でなくWinAPIなんだからそっちで調べた方がいいと思うよ
2018/02/13(火) 21:21:31.71ID:KbLCHvlc0
>>136
ありがとうございます
2018/02/16(金) 06:01:32.86ID:W1XJdyx10
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
2018/04/09(月) 14:21:53.70ID:hXBdpr6O0
厳密に言うとC#の話じゃないんだけど
TcpClientでコネクション使い回しというか
開けっ放しでデータ送り切るって出来ない?
flushしてもデータ残っててCloseしないと全部送られない
2018/04/09(月) 15:36:40.77ID:Cpp6LEO80
ソースで説明してくれ
2018/04/09(月) 15:51:30.50ID:hXBdpr6O0
そんな複雑な話じゃないんだ
GetStream()でストリーム取ってWrite()するだろ
でもClose()しないとケツのいくばくかはいつまで経っても送られない
断続的に送りたいから、いちいちClose()してからConnect()やり直すとかしないで済む方法あるか知りたい
2018/04/09(月) 15:59:29.12ID:uvdwBq6N0
NoDelay=true
2018/04/09(月) 16:03:49.46ID:hXBdpr6O0
おおサンクスやってみる
144デフォルトの名無しさん (ワッチョイ ffe7-UPLz)
垢版 |
2018/04/16(月) 21:16:34.15ID:f86xegYk0
質問です。

非同期実行について勉強中です。

以下のサイトの内容なんですが、

https://ufcpp.wordpress.com/2012/11/12/asyncawait%E3%81%A8%E5%90%8C%E6%99%82%E5%AE%9F%E8%A1%8C%E5%88%B6%E5%BE%A1/

ページ中ほどにある
"スレッド プール実行"

"一方、内側は、スレッド プール上での実行になりますが、スレッド プール上のコンテキストではawaitしてもスレッド プール上のどこかで実行されるだけで、決してUIスレッドには戻らなくなります。"
の意味が理解できません。プール上のどこかで何が実行されるのでしょうか?


また、その下の”問題となる書き方の例”

”Task.Runの中のawaitでは、単一スレッド実行にはならないので、lockが必要になることがあります。”

理解が出来ませんでした。

2連続someTask()は同時に実行されるという意味でしょうか?
2018/04/16(月) 21:51:32.37ID:zRE5gkIia
スレッドは使い捨ての領域だから、
その中で遅延実行しても戻り値は受け取れないよ
だって戻る領域が数秒後も存在しているか分からないからね
って意味だと思う
2018/04/16(月) 23:04:11.81ID:qlfABgAK0
マルチスレッドなんて、素人がやるものじゃない。
Ruby を作った、Matz でさえ、何十年もやっていないのに

OS・CPU が今、どのプロセスのどのスレッドの、どの実行コードを実行しているのか、
君のプロセスのスレッドから、わかるわけないでしょ

同期処理じゃないのに。
バラバラに、無関係に動いているのに

逆に言えば、バラバラに動くスレッドの、
現在実行中のコードがわかるのなら、それは同期処理になる
2018/04/16(月) 23:28:22.82ID:pnvSaCZFa
これがシングルスレッドおじさん再登場の瞬間であった
2018/04/17(火) 06:32:51.54ID:/3sDS4fX0
どうもありがとう
2018/04/17(火) 08:18:31.78ID:iJwyhGM3M
シングルスレッドだけで出来る仕事って限られてないか。通信なんか絡んだらマルチスレッド必須でしょう。私の現場は.net3.5なんでback|ground work|er使ってるよ。
2018/04/17(火) 08:24:21.80ID:AgNOdAZLM
>>149
taskって4.0からだっけ?
2018/04/17(火) 10:03:57.21ID:iJwyhGM3M
>>150
確かそうです。
taskとか使えると楽なんですが4.0強制もできない案件なんで。
2018/04/17(火) 10:50:32.95ID:EhGIAhyrd
どうしても.net3.5を使わないといけないんだったらRxで処理するわん
2018/04/17(火) 11:51:31.97ID:iJwyhGM3M
おっ!
いいこと教えてもらった。
Rxってsilverlightだけじゃないんだ。
2018/04/17(火) 12:18:07.14ID:xGjbcgxza
そんなの使えるなら.NET4だって使えるでしょw
3.5が使えて4が使えないプラットフォームは存在しないと思うけど
2018/04/17(火) 12:48:49.14ID:JQ78IAVca
そういう問題じゃないんだよ・・・
2018/04/17(火) 13:03:19.02ID:iJwyhGM3M
お客様のPCがWindows7ならデフォルトで3.5が入ってるでしょう。4.0にしてから使ってくださいとは言いずらい。
2018/04/17(火) 13:07:10.43ID:rojjHsw+0
ちょっと前までUnityも3.5止まりだったから多少はね?
2018/04/17(火) 16:37:52.80ID:joazaAE7M
Rxってなんぞや!!
2018/04/17(火) 17:17:34.43ID:JQ78IAVca
gugure
2018/04/17(火) 19:00:52.03ID:F4BOoGzu0
ググれは正論だけど、せっかく話題になったんだからここの住民の意見も聞いてみたい。使ってる人の感想とか。
2018/04/17(火) 19:14:49.95ID:joazaAE7M
せや!Rxについて詳しく
2018/04/17(火) 19:54:15.01ID:xGjbcgxza
全然関係ないけど、receiveの略が何でRxなのか昔から結構謎
2018/04/17(火) 20:38:22.07ID:F4BOoGzu0
それ組み込みの世界だね。送信ポートはTxだ。スレチだね。
2018/04/18(水) 14:53:40.81ID:ur62Feqwa
インストールされている証明書の読み取り、エクスポートをやりたいんだけどさ
ググるといろいろ出てきてX509とかってのを使うと良いとある
まだ実装とか全然なんだけど、この情報だけだと不安なのでだれかやったことのある人いない?

X509Cartificate.Exportはバイトデータを吐き出してそのままファイルに保存できるるっぽいけど、秘密キーを設定したいとかあったりしてモヤモヤしてる
2018/05/03(木) 18:58:35.37ID:+FWBwd0JM
ワッチョイなしスレが1000行ったからこっちをage
2018/05/03(木) 18:59:21.23ID:+FWBwd0JM
ageられてなかった…
2018/05/04(金) 20:04:32.00ID:hRV05sGM0
windowformアプリケーションで

form1 ディスプレイの解像度等を入力する。入力したデータをもとにform2に表示する長方形の大きさ(rx,ry)を算出
form2 form1で算出した(rx,ry)をもとに長方形を表示

ってしたいんだけど

A. rx,ryをpublicで定義してform2.csから参照する
B. form1のrx,ryを求める計算式をクラスにしてform2からインスタンス生成して求める

のどちらがお作法的に正しいんでしょう?
2018/05/04(金) 20:12:02.30ID:h17LifXxa
データとUIを分離するとして、データ保持と計算用のクラス、formは入力のみ、表示のみって感じになるのかな
でも、まぁそんなのAでもBでもいいだろ

関係ないが解像度ぐらい自動で取得してくれると楽
2018/05/04(金) 20:14:46.22ID:QSaueu9Z0
なんとなく、こういうのを"お作法"と呼ぶマにはいいイメージがない
2018/05/04(金) 20:20:22.68ID:hRV05sGM0
>>168
ありがとうございます。
解像度は自動取得なのでディスプレイのoサイズでした。
2018/05/04(金) 20:22:53.75ID:hRV05sGM0
>>169
すいません。
プログラミング初めて勉強なので、なるべくへんなコーディングしないように可読性高くと考えてまして、
普通はどう描くんだろうなというところが気になって仕方ない。
public変数作りすぎると、後でどこかで変に触るとわけわからんことになるのかなと極力使わないように心がけてます。
2018/05/04(金) 20:37:07.58ID:HEa1U9rI0
何かフリーソフトを作ってみたくて勉強しているところなのですが、GUI?を学ぶ上で良い本があれば教えていただきたいです
2018/05/04(金) 20:55:12.49ID:L0LZvRGB0
>>171
フォームは入力の受付と出力の描画だけをする
内部で使うデータはモデル側で持つ
2018/05/04(金) 21:33:04.91ID:hRV05sGM0
>>173
それでいってみます。
ありがとうございます。
2018/05/04(金) 21:34:38.54ID:hRV05sGM0
連投すいません。

ユーザー側でフォームのサイズを変えたとしても
常にフォーム右端にボタンを固定する方法ってないでしょうか?
2018/05/04(金) 21:39:42.44ID:EvkA5vHv0
>>175
ボタンのAnchorのプロパティをTop, Rightに変更
2018/05/04(金) 22:00:01.60ID:hRV05sGM0
>>176
Anchorって設定があったんですね。
できました!
ありがとうございます。
2018/05/04(金) 22:18:10.81ID:hRV05sGM0
Form1で作成したmethod1をForm2で使用したい場合どのようにすればいいのでしょう?

Form1.method1();

だとエラーなのですが、form自体がクラスだからインスタンス生成が必要ということでしょうか?
本当に初歩的な質問ばかりですいません。
2018/05/04(金) 23:14:52.98ID:hRV05sGM0
駄目だ煮詰まってきた。

Visualstudioで新規ソリューションを作成して、既存のソリューションからフォームを追加したのですが、
フォームデザインでは新規フォームが表示されているだけ、.Designer.csを除くときちんとコードが記載されているのですが、
[デザイン]:の画面では反映されておらず、この画面でコントロールを追加などするとエラーがでてビルドできなくなります。
フォームの追加の仕方が間違ってるのかなぁ。
2018/05/04(金) 23:16:00.99ID:o0wzY09D0
煮詰まる=完成する
2018/05/05(土) 01:05:27.05ID:i9GeFih30
>>179
エラーの内容は?
2018/05/05(土) 08:03:54.33ID:CBIAOUw10
>>181

エラー CS0121 次のメソッドまたはプロパティ間で呼び出しが不適切です:
'InitalMonitorSetteing.InitializeComponent()' と 'InitalMonitorSetteing.InitializeComponent()'

エラー CS0111 型 'InitalMonitorSetteing' は、'InitializeComponent'
と呼ばれるメンバーを同じパラメーターの型で既に定義しています。

です。
2018/05/05(土) 08:08:30.21ID:CBIAOUw10
ソリューションエクスプローラーで
追加→既存の項目
でフォーム一切合切を取り込むと
フォームの[デザイン]タブのところで新規のフォームが表示され、これをいじると上記エラーが出ます。
フォームの[デザイン]タブをいじらなければ正常に実行されます。

.Designer.csを見るときちんとコードが書かれているので
[デザイン]と.Designer.csが一致していない状態になっているようです。
2018/05/05(土) 08:36:55.68ID:CBIAOUw10
地道に

フォームのデザインすべてコピー貼り付け
コードすべてコピー貼り付け

ってやって追加しました。
なんかネットで見ると、

ソリューションエクスプローラーで
追加→既存の項目
でフォーム一切合切を取り込む

ってやると後々まで得体のしれないエラーに悩まされるので、上の方法を推奨している方がいました。
Visual Studioかフォーム自体の持つバグなんですかね…。
2018/05/05(土) 08:47:39.95ID:5nbJxYdYa
〜VS2015しか使ってないが俺はエラー起きたことないよ。原因分からないけど、何かやらかしてるんでしょ
2018/05/05(土) 09:57:21.01ID:+PUGPCx60
無闇にコピペした結果を環境のバグとか
プログラム向いてないよお前
2018/05/05(土) 10:00:36.87ID:CBIAOUw10
失礼しました。
私がよく理解していないために、しなければいけない作業をしていないのかもしれませんね。
2018/05/05(土) 10:35:22.91ID:TTUQSH5zM
むしろしちゃいけない作業をしてるような気がする...
2018/05/05(土) 11:08:14.41ID:T9f+iK/r0
>>178
そもそもこの質問の時点でFormsのコード部分が何をやってるのか理解できてない可能性がある
2018/05/05(土) 11:25:44.32ID:qEM4shRT0
いきなり難しいことをやろうとするとダメやね
2018/05/05(土) 11:27:18.98ID:LtMyhhwZM
基礎も身につけずに一端のフリして解決しようとして、半端で折れるバカってのはよく聞く話

とりあえず何か入門書籍に頼って動くものを作れ
話はそれからだ
2018/05/05(土) 20:20:18.85ID:xedbZMvy0
>>184
情報共有する場所なんだからこういったいいかげんなこと書くのやめてほしいな
まずソースをそのまま取り込みたいのならプロジェクトに追加で何も不具合は起こらない
それでデザイナが反映されないのならDesigner.csを直接書き換え(認識できなくなるような書き換え)やっているはず
あとユーザーコントロールを内部で追加している場合は一度ビルドするとデザイナで反映される
プロジェクトでなくソリューションにソース追加しても当然何も起こらない
最初からふらっとにいけばいいのに
2018/05/05(土) 20:30:34.54ID:Tc8hf/iLa
WinFormのデザイナは中途半端に内部実行するからしょっちゅうトラブるんだよな
コンストラクタでなんかやってる奴は特に要注意
2018/05/05(土) 22:08:57.94ID:1Zee5iE50
デザイナかどうか判断するコードを書くのは飽きた
2018/05/05(土) 22:38:59.04ID:T9f+iK/r0
そんなあなたに!WPF!
2018/05/05(土) 22:40:45.58ID:CBIAOUw10
フォームをコントロール含めて継承すると継承先でコントロールの編集ができなかったり云々
という書き込みを見たので、
そこで提案されていた新規フォーム作成して
そこにコピペとしてみて結果オーライだったのでそれで良しとしたのですが、
私の方でなにか既存のフォームを取り込むのにまずいことをしてたのかもしれません。
記憶にないけどDesigner.csを直接書き換えしたかなぁ・・・。

フォームで作成するかWPFを使うかを悩んでた時にフォームは放置されたバグが多いと警告されていたので、
単純にバグなのかと思いましたが根拠なくソフトのバグと書き込むのはまずかったですね。
失礼しました。
2018/05/06(日) 07:44:34.64ID:8BI4PAGy0
FormかWPFか悩んでるならWPFを推す。
最初は難しいがXAMLはUWPでも使っていて今後につながると思う。
2018/05/06(日) 15:08:05.14ID:gzoDeGmX0
今後ピクセル単位でのUI作成は完全に無くなるからなぁ
2018/05/06(日) 16:52:40.62ID:6XezKW2ea
多段継承してるカスタムコントロールはぶっ壊れやすい
Winアプリ作らにゃならんならWPFのがマシってのはまあそうだ
でも将来性あるとは思わんな
2018/05/06(日) 17:34:01.02ID:ZPoK8KSTM
WPFそのものの将来性はともかくとして、その技術のエッセンスが次代に引き継がれると思うんです。
今後もWinアプリを開発することになるんで、なるべく将来性と言うか潰しのきく技術に投資したいと思ってWPFにしたんだけど。
2018/05/06(日) 17:36:34.98ID:w10wIaHya
>>199
それはないよw
継承の段数は関係なくて、単にコントロールのカスタマイズは意外と難しいってだけの話

俺も経験があるけど簡単にシステム側のバグを疑いたくなる現象にぶち当たるけど、
ほとんどの場合はプログラマの理解不足によるユーザーコード側のバグが原因
2018/05/06(日) 17:37:23.44ID:6XezKW2ea
潰しがきくってんならなおさら独自仕様なんぞあかんやろ
WPF出てから何年経ってるよ
他に採用してるとこないのはそういうことだ
2018/05/06(日) 17:39:54.31ID:YMV7ENjt0
>>202
XAML
2018/05/06(日) 17:41:16.14ID:6XezKW2ea
>>201
いや正確にはシステムがぶっ壊してるんじゃなく
レイアウト決定だの初期化順番だので罠にはまる確率がガンと上がるって話
コントロール1種を少々カスタマイズしたくらいじゃあんまハマらんさ
2018/05/06(日) 17:43:51.97ID:EPydt9+c0
GDIが使えない時点でゴミ
WPFでCADを提供してみろ
2018/05/06(日) 18:14:23.28ID:8BI4PAGy0
>>202
対案示してくれると検討もできるんですけど。
2018/05/06(日) 18:17:03.64ID:6XezKW2ea
>>206
オプショナル独自仕様なんぞわざわざ覚えんでもC#だけ抑えときゃいいじゃん
2018/05/06(日) 18:17:55.59ID:JGiuZYwWa
formとwpfどっちかじゃなくて、状況に応じてどっちか使えばいい
言語だってそうだ。c#に拘らず、必要に応じてほかの言語も使えば楽になるぞ
縛りプレイとか馬鹿臭くてやってられん
2018/05/06(日) 18:18:35.39ID:gpR98zCG0
何でこのスレ来てるの?
2018/05/06(日) 18:21:30.52ID:gzoDeGmX0
xamlが単なるコードトランレート言語だったなんて知らなかったんだよ。
2018/05/06(日) 18:31:06.82ID:8BI4PAGy0
>>207
まさかの浅い答えでしたね。
今時、なんか開発する時は言語だけじゃなくAPIとかプラットホームとのセットじゃないの?
2018/05/06(日) 18:36:24.83ID:Yj4OtQcz0
最近form触る機会あったけど、WPFになれた後だとバインディングが面倒でならない
formはformでわざわざ部品探したり作る必要ないから良いんだけどね
2018/05/06(日) 18:49:36.56ID:c85H7Qr90
Bindingが遅すぎて使い物にならない
2018/05/06(日) 19:05:20.38ID:8BI4PAGy0
なんか変なイチャモン付けてる人いるけど。
CAD作れるかとか、Formならできるの?
Windows、.net、C#でGUIアプリ作るならFormかWPFしかないじゃん。
Formは終わった技術で行き止まり、WPFは普及しなくて過渡的な技術になるかも知れないがその先につながりそうでって言ってんです。
もっと論理的に反論して欲しいです。
2018/05/06(日) 19:06:34.14ID:lPSPWHr00
昔から居ついてるから一々突っからなくて宜しい
2018/05/06(日) 19:13:48.84ID:8BI4PAGy0
>>215
昔から居てもアホな書き込みすると初学者は惑わされるのよ。
自分が理解出来ない技術はみんなダメって言ってないか?
ちゃんと論理的に反論してよ。
出来ないなら駄まってろ。
2018/05/06(日) 19:15:40.37ID:JGiuZYwWa
formでCAD作ってる奴ぐぐると日本人でも複数いるよ
2018/05/06(日) 19:17:40.07ID:OZSh5wZJ0
>>214
お前さんみたいな銀の弾丸求める奴ぁ先がないぞ
XAMLは文字列だらけで設計の筋がいいとは到底言えない
もし次があるなら全然違うもん出してくるんじゃないの
2018/05/06(日) 19:21:54.60ID:8BI4PAGy0
>>217
FormでできるならWPFでもできるだろう。
Formの優位性は何?
2018/05/06(日) 19:24:56.35ID:8BI4PAGy0
>>218
XAMLは面倒よ、たしかに。
でもね、オレは使ってないがGUIのリソースエディタがあるんじゃないか?
なくても直ぐにできるよ。
2018/05/06(日) 19:27:17.19ID:8BI4PAGy0
>>218
UWPもXAMLだよ。
MSは当面これでいくんじゃないの。
あんたよりMS信じる。
2018/05/06(日) 19:34:40.78ID:OZSh5wZJ0
XAMLの筋が悪い一例としてIDEサポートがHTMLにすら劣る点が上げられる
今でも時々vsごと落ちる
まあ次が出る前にWinアプリ自体がオワコンになる可能性も低くないけどな
あんたの人生だから好きにしたらいいよ
2018/05/06(日) 19:44:28.98ID:8BI4PAGy0
>>222
XAMLでの開発3年弱だがVS落ちた経験ないよ。
Winアプリがオワコンになるんだったら、早いとこ他の言語・環境に移行したら?
オレはWinアプリだけじゃなくタブレットとかスマホにも適用できると思ってるから、この道行くよ。
2018/05/06(日) 19:47:05.22ID:YMV7ENjt0
>>222
俺も落ちたことないんだけど、どんな環境で何したん?
2018/05/06(日) 19:59:30.59ID:P5UQ0avb0
WPFはもちろん最良ではないけど
すくなくとも現行のUWPと共通のXAML使ってるぶんFormsよりは十倍マシ
2018/05/06(日) 20:10:59.67ID:OZSh5wZJ0
メモリ8Gで5段くらいネストした奴編集してたらストンと落ちたぞ
vs2015だ

>>225
「現行では」比較論でまあせやな
将来性は怪しいが
2018/05/06(日) 20:17:33.07ID:YMV7ENjt0
>>226
ハードウェアアクセラレーションの問題ではなくて?
2018/05/06(日) 20:19:15.57ID:8BI4PAGy0
>>226
すごいな。なかなか落とせるもんじゃない。
そんなにWinの将来に悲観的なら、本当にどこかに行ってください。
間違った書き込みを堂々と恫喝的にされると初学者の道を誤らせるよ。
それって罪なことです。
このスレタイでは。
2018/05/06(日) 20:22:22.92ID:YMV7ENjt0
>>228
落ちるときは落ちるさ
こんな風にその問題を追及しないのがアレ
https://stackoverflow.com/questions/31021049/visual-studio-2015-crashes/33182194#33182194
2018/05/06(日) 20:28:51.95ID:8BI4PAGy0
>>229
他の環境はそんなに安定してるのか?
VSが特別に酷いとは思わないけど。
MSデスってなんでここにいるの?
2018/05/06(日) 20:30:40.96ID:YMV7ENjt0
>>230
俺がいつMSをデスった?いつ他の環境と比較した?
ID:OZSh5wZJ0と間違えなさんな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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