[過去ログ] ふらっと C#,C♯,C#(初心者用) Part137 (963レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: (ドコグロ MM07-2FKJ) 2018/04/06(金)17:40 ID:oKXVP34zM(1/2) AAS
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
省18
883: (ワッチョイ d69a-msj4) 2018/05/31(木)20:26 ID:9/5XjJFR0(1) AAS
>>879
入力支援・単位の入力補完・数値⇔文字列の変換
何でもできるけどホントにしたいことがそのレスでは分からない
884: (ブーイモ MMf1-CKCa) 2018/05/31(木)21:28 ID:ygkZdVXVM(1) AAS
>>873
え、more付いてないのと付いてるのって同じ本なん?
独習C#と言い、命名がわけわからんな…
885: (ワッチョイ 4e57-msj4) 2018/06/01(金)09:05 ID:azdekr4p0(1/2) AAS
説明不足ごめんなさい。
出力ですが、最終的にはTextBoxの枠ごと印刷したいと考えております。
883の言う単位の入力補完だと思います。
MaskedTextBoxのマスクに####℃と記入し、
「-24.4」等のデータをデータベースから取り出して、入れたところMaskedTextBox.Textが244℃となってしまいました。
このテキストボックスを小数点有りの場合、なしの場合、負の符号が有りの場合なしの場合、「----」の場合、
1桁から5桁+「℃」としてTextBox.Textに出力したいと考えております。
省1
886: (ラクッペ MM35-gTal) 2018/06/01(金)09:13 ID:gkm5sPLjM(1) AAS
TextBoxクラスを継承して自前で実装すればできる
887: (アウアウカー Sa5d-GynM) 2018/06/01(金)09:47 ID:czZmZo8za(1) AAS
TextBoxクラスを継承してTextプロパティを上書き
書式とか単位を属性に持たせれば汎用的に使える。
コピペされたときの場合も考慮すること
888: [879] (ワッチョイ 4e57-msj4) 2018/06/01(金)09:58 ID:azdekr4p0(2/2) AAS
ありがとうございます。
なんとなく、それっぽいものが作れそうです。
889: (ワキゲー MM62-03s2) 2018/06/01(金)10:22 ID:XLd38QjBM(1) AAS
ユーザーコントロールでボーダーなしテキストボックスとラベル並べた方が楽な気がする
890: (ワッチョイ b117-NLsb) 2018/06/01(金)18:06 ID:TnI3eVXu0(1) AAS
テキストボックスの描画や挙動を弄るの面倒くさいから汎用性を求めるんなら InputMan 買った方がいいよ
891: (ブーイモ MM9a-dURk) 2018/06/01(金)18:10 ID:UBye49NJM(1) AAS
ライセンスとかテクリスとか面倒だから買わない
892: (ワントンキン MMb5-67BG) 2018/06/01(金)18:21 ID:S7DUtxKdM(1) AAS
NuGetで参照できるオープンソースのWinFormsリッチコンポーネントって何が有名なの?
893: (ドコグロ MM19-5Q+M) 2018/06/01(金)20:17 ID:dZV2tAFxM(1) AAS
nugetは俺の鬼門
894: (ワッチョイ 018a-75sl) 2018/06/01(金)21:28 ID:naL+ZRGN0(1) AAS
僕の半蔵門
895: (ワッチョイ fae3-mRcc) 2018/06/01(金)23:18 ID:fWGAwsr30(1) AAS
前門の虎 肛門の狼
896: (ワッチョイ d103-Y2aB) 2018/06/02(土)00:25 ID:A4SZL/oE0(1) AAS
寒っ
897: (ワッチョイ 21e3-5Q+M) 2018/06/02(土)10:06 ID:QJbZaU5f0(1/7) AAS
c#で穴ぼこメモリにしないように組むのって不可能?
898: (ワッチョイ 5db3-7ot6) 2018/06/02(土)10:27 ID:nL4AUV2I0(1/2) AAS
可能だが、規模によっては現実的でない
パフォーマンスを気にするなら、別にボトルネックが存在していないかを見直す方が先
899(1): (アウアウウー Sa09-667V) 2018/06/02(土)10:30 ID:rvy10L9Oa(1/2) AAS
OSの仕事
どうしても嫌でデカいbyte配列確保して中に文字や数字全部入れても無駄
900(1): (ワッチョイ 21e3-5Q+M) 2018/06/02(土)10:40 ID:QJbZaU5f0(2/7) AAS
>>899
それでも駄目なの?
もうサービス部分はC言語で組んだほうが良さげ?
901: (ブーイモ MMf1-CKCa) 2018/06/02(土)10:42 ID:1ZPJADB4M(1/3) AAS
GCが勝手に詰めてくれるから気にしなくていい
ただし巨大なオブジェクトは専用の領域があって移動されないので断片化されやすいから注意
902: (ワントンキン MMb5-67BG) 2018/06/02(土)11:05 ID:msgJi+IZM(1/5) AAS
Spanとstackallocで我慢しなさい
903(1): (アウアウウー Sa09-667V) 2018/06/02(土)11:10 ID:rvy10L9Oa(2/2) AAS
>>900
Cだって確保管理はOSの仕事だろ
何のためにメモリの管理をOSに任せたくないんだ?
904: (ワッチョイ 018a-75sl) 2018/06/02(土)11:12 ID:msBkLZBc0(1) AAS
DMAが僕を呼んでいるから
905: (JP 0H89-C2Ni) 2018/06/02(土)11:18 ID:J1HVezEsH(1) AAS
>>903
Cだってオブジェクト毎の領域をそれぞれ全てOSが管理しているわけじゃない
mallocが効率化のためにだいぶ仕事してる
906: (アウアウウー Sa09-667V) 2018/06/02(土)11:42 ID:gRqFSsBQa(1) AAS
OSでメモリはブロックなどで管理されていて要求があったら
要求サイズに合わせてそのブロックの中のさらに細かいブロックなどを払いだしてる
こっちがどうしようとOSでブロックを作ってその中でやりくりしてる
例えそのブロックの中で断片化していて何か不都合あるのか?
907: (ワッチョイ d5b5-wk7t) 2018/06/02(土)14:08 ID:65ghWvPg0(1) AAS
使う予定の最大量の倍の空きメモリーあれば大体は気にならない。
いまどきのパソコンはアプリが使いたいメモリーサイズの数百倍は有るから気にするな。
908(1): (ワッチョイ 21e3-5Q+M) 2018/06/02(土)14:25 ID:QJbZaU5f0(3/7) AAS
リークしてると1ヶ月ぐらいで死ぬじゃん
現状自分でメモリ管理しないとどこで何が確保されてるのかわからないわけで
そういうの確実に管理したいときはc言語のがいいのかなぁ?と
909(1): (ワッチョイ d55d-C2Ni) 2018/06/02(土)14:34 ID:gayBoTaI0(1) AAS
極めて厳密に管理したいならC/C++でアロケータを自前で書くというのはあり得る
しかしリークという点ではC#よりC/C++の方が遥かにやっちまい易いので, メモリ安全を確保する目的でC/C++で書くのは本末転倒のように思う
910: (ワッチョイ b117-NLsb) 2018/06/02(土)14:39 ID:I3vJQFJE0(1/2) AAS
リーク前提とかバカでしょ
911(2): (ワッチョイ 7a8a-sZ2J) 2018/06/02(土)15:01 ID:fV6b9MUi0(1) AAS
List#Containsの重複判定基準をEquals以外にすることはできないでしょうか?
ListにしたいクラスのEqualsが、別の目的用にオーバーライドされている為、Equalsを使うことができません。
912: (ワッチョイ 21e3-5Q+M) 2018/06/02(土)15:43 ID:QJbZaU5f0(4/7) AAS
>>909
c#は現在実行中のアプリのインスタンスを確認する方法はあるの?
913: (アウアウエー Sa22-UB1l) 2018/06/02(土)15:47 ID:XUNevU9ma(1/2) AAS
>>911
>Equalsが、別の目的用にオーバーライドされている
常識的にはそっちの方が解消すべき「問題」のように思うけど...
914: (アウアウエー Sa22-UB1l) 2018/06/02(土)15:54 ID:XUNevU9ma(2/2) AAS
まあ、Exists使うだけだよね
915: (ワッチョイ 5db3-7ot6) 2018/06/02(土)16:03 ID:nL4AUV2I0(2/2) AAS
>>908
Webサービスか何かを想定してる?
だったらコーディングで対応するんでなく、ロードバランサで複数のアプリケーションサーバに振り分けて
サービスが止まらない様にしつつ、一部のサーバをオンメンテでリブートすべし
916: (ササクッテロラ Sp05-wk7t) 2018/06/02(土)16:05 ID:wt7oIb0Vp(1/2) AAS
C#スレでメモリーリークを心配するとか、どんだけ無能なんだよ。
917: (ワッチョイ d6c9-msj4) 2018/06/02(土)16:12 ID:5ltA6BNw0(1) AAS
普通はリークで死ぬ前にGen2GC連発して性能ガタ落ちになるんじゃ
どんだけ握ってんだよと
918(1): (ワッチョイ 21e3-5Q+M) 2018/06/02(土)18:04 ID:QJbZaU5f0(5/7) AAS
実際にメモリリークが起こらないように気をつける術は昔ながらの方法しかない?
プロジェクトでnewするときはインスタンスマネージャー的なのを通して
可能な限りインスタンスを監視するとかそんなの?
919: (ワントンキン MMb5-67BG) 2018/06/02(土)18:17 ID:msgJi+IZM(2/5) AAS
マトモなコードを書くだけ
920: (スッップ Sd9a-L98v) 2018/06/02(土)19:01 ID:pCnJrSzQd(1/2) AAS
メモリリークさせようと思わないとなかなかできんよ
921(1): (ブーイモ MMf1-CKCa) 2018/06/02(土)19:11 ID:1ZPJADB4M(2/3) AAS
>>918
一時的なオブジェクトはもう必要ないなら握りっぱなしにしないで即座に使い捨てること
中途半端に握りっぱなしにしてるとGCの世代か昇格してメモリ使用量の増加やGCのパフォーマンス低下の原因になる
一方、単寿命オブジェクトのGCは爆速なので、newしたら積極的にすぐ放置すべき
922: (ブーイモ MMf1-CKCa) 2018/06/02(土)19:16 ID:1ZPJADB4M(3/3) AAS
>>911
Any
923: (ワッチョイ b117-NLsb) 2018/06/02(土)19:21 ID:I3vJQFJE0(2/2) AAS
C#でメモリリークさせるコード書く奴がC/C++で無くせるとは到底思えないわ
924: (ワッチョイ 21e3-5Q+M) 2018/06/02(土)19:25 ID:QJbZaU5f0(6/7) AAS
>>921
うーん
爆速ではないなぁ
3分に1回動かしてる処理があるんだけど
強制GCせずにずっと動かしてるとき
メモリ使用量がかなりあがった状態でGCが動くと
3分に一度の処理のタイミングがズレちゃうんだよね
省1
925(1): (スッップ Sd9a-L98v) 2018/06/02(土)19:29 ID:pCnJrSzQd(2/2) AAS
だめだこいつ
926(1): (ワッチョイ 21e3-5Q+M) 2018/06/02(土)19:31 ID:QJbZaU5f0(7/7) AAS
>>925
なんかいい方法あるんですか?
927: (アウアウカー Sa5d-SvXf) 2018/06/02(土)19:37 ID:KX6MAuAea(1) AAS
ちゃんと設計してればC#でメモリーリークなんて気にすることなんてあるか?
そんなガバガバ設計してるやつがCだったら大丈夫なんだけど、って馬鹿な話誰が信じるよ
928: (ワントンキン MMb5-67BG) 2018/06/02(土)19:45 ID:msgJi+IZM(3/5) AAS
>>926
簡単だよ
マトモなコードを書くだけ
929: (ワッチョイ d681-gTal) 2018/06/02(土)20:14 ID:fh+k246w0(1) AAS
以降放置でお願いいたします
930: (ワッチョイ 21e3-/vbK) 2018/06/02(土)20:28 ID:iRadbqpq0(1) AAS
>メモリーリークなんて気にすること
ページフォルトを気にしないヴァカっていたな。
リークしていないが累積しすぎたページフォルトがOSを殺す
931: (アウアウウー Sa09-C2Ni) 2018/06/02(土)20:30 ID:+/nRHGaPa(1) AAS
C#でリークやらかす奴がC/C++でやらかさない道理がない
932: (ラクッペ MM35-gTal) 2018/06/02(土)20:31 ID:eSvYHUXNM(1) AAS
こいつもトンチキなので放置でいいです
933(1): (ササクッテロラ Sp05-wk7t) 2018/06/02(土)20:50 ID:wt7oIb0Vp(2/2) AAS
まあ、でもC#はメモリー管理を隠蔽しちゃったから、実はCやC++よりメモリー管理しにくいんだよな。
934: (ワントンキン MMb5-67BG) 2018/06/02(土)20:58 ID:msgJi+IZM(4/5) AAS
C++出身のC#初心者にありがちだね
935: (ワッチョイ 4a15-ZeuL) 2018/06/02(土)21:10 ID:u/NNd5OV0(1/2) AAS
未確認飛行のSpan説明みてサンプルコード動かそうとしたんだけど
using System.Memory;すると
CS0305ジェネリック種類 'Memory<T>' を使用するには、1 型引数が必要です。
って叱られるのなんで?
VSもCoreも最新
936: (ワントンキン MMb5-67BG) 2018/06/02(土)21:20 ID:msgJi+IZM(5/5) AAS
SpanはSystem.Spanだ
937(1): (ワッチョイ 4a15-ZeuL) 2018/06/02(土)21:33 ID:u/NNd5OV0(2/2) AAS
System.Spanにしてもでてきおる
using static System.Memory<string>;
ってするとエラーは消えた
938(3): (ワッチョイ d696-NLsb) 2018/06/03(日)17:57 ID:nwnHFAsS0(1/4) AAS
フォームアプリでマウスクリックでイベントをはっせいさせているのですが、
ある処理ループの実行中はこのクリックイベントの割り込み発生を禁止させたいです。
マウスクリック割り込みイベントを無効化、有効化する方法ってないでしょうか?
939(1): (ワントンキン MMb5-67BG) 2018/06/03(日)18:03 ID:acSSis/XM(1/2) AAS
>>937
そうじゃないusing System;ってこと
940(1): (ワッチョイ 259a-msj4) 2018/06/03(日)18:05 ID:5sPxkTAt0(1) AAS
>>938
イベントの購読とその解除
外部リンク[html]:ufcpp.net
941: (アウアウカー Sa5d-SvXf) 2018/06/03(日)18:07 ID:qpwWeWwga(1) AAS
>>938
-=、+=
デザイナーみればわかると思うよ
942: (アウアウエー Sa22-UB1l) 2018/06/03(日)18:08 ID:imVGa92Ya(1/3) AAS
>>938
Control.Enabled
どうでもいいけど、「割り込みイベント」って表現は間違ってるから他所では使わない方がいいよw
943(1): (アウアウウー Sa09-NLsb) 2018/06/03(日)18:26 ID:y7bK61pJa(1) AAS
処理中フラグ持っておいて
クリックイベントの入り口で処理中ならreturnするのでよくない?
bool 処理中=false;
クリックイベントの頭
if(処理中)return;
944: (ワッチョイ 018a-75sl) 2018/06/03(日)18:33 ID:3EuqECGs0(1) AAS
lockで囲めば
945: (ワントンキン MMb5-67BG) 2018/06/03(日)18:43 ID:acSSis/XM(2/2) AAS
ボタンからしか起動しない処理だと保証されてるなら-=+=でもフラグでもいいが
そうでないなら真面目に並列処理管理しないとね
946: (ササクッテロラ Sp05-wk7t) 2018/06/03(日)18:59 ID:4vwgZnFjp(1) AAS
はあ?
クリックイベント自体を抑止したのか?
意味あるの?
947: (アウアウカー Sa5d-GynM) 2018/06/03(日)19:18 ID:bhcyF/oUa(1) AAS
処理ループの中でメッセージループを実装してGetMessage()でマウスイベントをフィルターかな?或いは読み捨てる
948(1): (ワッチョイ d5b5-wk7t) 2018/06/03(日)20:09 ID:pjD3SZS60(1) AAS
え、連打対策してないの?
949: (アウアウカー Sa5d-SvXf) 2018/06/03(日)20:15 ID:OWt1glR4a(1) AAS
非同期で実行した場合とかの抑止とか?とエスパー
950(1): (ワッチョイ 4a15-ZeuL) 2018/06/03(日)20:19 ID:S4J0YpoT0(1/3) AAS
>>939
つまりSpanを使うのにusing System;さえすればいいってこと?
ごめんな、クソ素人過ぎて質問がまずいのか
外部リンク:ufcpp.netの
var s = "abcあいう亜以宇";
var sub = s.Substring(3, 3);
var span = s.AsReadOnlySpan().Slice(3, 3);
省5
951: (ワッチョイ 21e3-5Q+M) 2018/06/03(日)20:26 ID:klvCZP9p0(1) AAS
>>933
やっぱりそうだよね
厳密にやろうと思ったら昔ながらの方法でやるしかないんだよね
952(1): (ワントンキン MM8a-67BG) 2018/06/03(日)20:50 ID:H2Gh+VvdM(1) AAS
>>950
現時点ではAsReadOnlySpanが存在しないっぽいね
Stringはもともと読み取り専用だからAsSpanでReadOnlySpanになるってことだと思うけど
過渡期の記事はそのまま鵜呑みにしない方がいいぞ
953: (ワッチョイ d696-NLsb) 2018/06/03(日)21:25 ID:nwnHFAsS0(2/4) AAS
>>940
全く知らない概念でした。
勉強してみます。
954(1): (ワッチョイ d696-NLsb) 2018/06/03(日)21:26 ID:nwnHFAsS0(3/4) AAS
>>943
これうまい手ですね。
使える場所ありそうですので試してみます。
955(1): (ワッチョイ d696-NLsb) 2018/06/03(日)21:27 ID:nwnHFAsS0(4/4) AAS
>>948
おっしゃる通りで、連打対策必要だったんですね。
フォームアプリだと必須の対策なんですね。
他で少し変な挙動してたのは連打対策してなかったことが原因のようです。
連打対策してみます。
というか、どうやればいいんだろ。
また、お勉強しなければ。
956: (ワッチョイ d69a-msj4) 2018/06/03(日)21:42 ID:0r68Qt9D0(1) AAS
>>955
いま質問した答えをイベントメソッドに組み込めば連打対策は終了
そっちを先に覚えるのが普通だと思ってた
957: (アウアウエー Sa22-UB1l) 2018/06/03(日)21:51 ID:imVGa92Ya(2/3) AAS
>>954
全然うまい手じゃないw
PC-98の時代じゃあるまいし、フラグって言葉を聞いたら眉に唾して聞かなきゃダメwww
それを好むのは可読性に感心がないダメグラマの可能性が高いw
958: (アウアウエー Sa22-UB1l) 2018/06/03(日)21:56 ID:imVGa92Ya(3/3) AAS
そもそもUIのデザイン論なんて大げさな話じゃなくても、
ユーザーの捜査に反応できない文脈では何らかの方法(通常はグレイアウト)でそれを
ユーザーに対して明示しないUIは問題あるでしょうww
そんなことにも思い至らない回答者は無視していいよw
959: (ワッチョイ 4a15-ZeuL) 2018/06/03(日)22:53 ID:S4J0YpoT0(2/3) AAS
>>952
ありがとう、そういうこともあるんだな
勉強になった
10Gくらいの固定長テキストファイルから一行ずつ読み取って
最初の1-10文字はUSER ID、11はSEX・・・って分けてdbに突っ込んでるんだけど
StringBuilderでLength=0しつつappendするくらいじゃ、stringでsubstringするのとあまり変わらなかったんで
Span使えばマシになるのかなと思ったんだ
960(1): (アウアウウー Sa09-CKCa) 2018/06/03(日)23:00 ID:8gLBE5WNa(1) AAS
そんなもん丸ごとDBにロードしたほうが速いだろ
固定長ファイルのロードはどのDBMSでもコマンド一発でできる
961: (ワッチョイ 4a15-ZeuL) 2018/06/03(日)23:12 ID:S4J0YpoT0(3/3) AAS
>>960
それなw
tempのカラムに一行まるごと突っ込んで、クエリでsubstrするやり方やってみる
外部リンク:stackoverflow.com
962(1): (ワッチョイ d6c9-msj4) 2018/06/03(日)23:35 ID:iikfdxhC0(1) AAS
10GBのデータだと読取よりDBMSへの書き込み方法がネックになりそう
963: (ワッチョイ 4a15-ZeuL) 2018/06/04(月)06:33 ID:mxEQUVjg0(1) AAS
>>962
細かくなるとdbスレ行きなんだろうけど
実際に書くところはC#なわけで、どこがボトルネックになってるのかザコ過ぎてわからんw
とりあえずsqliteつかってメモリ上dbにinsertでトランザクション管理しっかりやってってして30分くらいだったからまーいいかと
sql server expressだとbulk insertはわからんけどselectで並列処理されるみたいだから乗り換えてみる予定
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.213s*