◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

ふらっと C#,C♯,C#(初心者用) Part146 YouTube動画>10本 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1576069931/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワッチョイ 9f0b-Fgt1)
2019/12/11(水) 22:12:11.28ID:d09CciDz0
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part145
http://2chb.net/r/tech/1570446977/
■関連スレ
C#, C♯, C#相談室 Part95
http://2chb.net/r/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (ワッチョイ 1524-Fgt1)
2019/12/11(水) 22:32:15.34ID:mMKqVbip0
C#
3デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
2019/12/12(木) 09:41:18.58ID:a67Hqgb2F
O2
4デフォルトの名無しさん (ワッチョイ 06b0-DoXq)
2019/12/12(木) 14:29:42.64ID:56xY8w560
ひらがな文字列をヘボン式ローマ字に変換するプログラム作りたいのですが
やっぱ正攻法でswitch-caseで123個くらい分岐させますか?
でも長音や促音の例外処理とか難しそうだなあ・・・
5デフォルトの名無しさん (エムゾネ FF02-uKDx)
2019/12/12(木) 14:47:29.26ID:b3wcvAqBF
変換テーブルと検索
6デフォルトの名無しさん (ワッチョイ e242-xO71)
2019/12/12(木) 17:38:52.89ID:OYDho7HG0
UNIXのShellのソースでコマンドを切り分ける場所では思いっきりswitch文の嵐だったな
1文字目でまず切り分けで、次にに文字目ってな具合で

速度なら圧倒的にswitch分だと思うが、作りやすかったり保守が簡単なのはDictionary使ったパターンだと思う
7デフォルトの名無しさん (ワッチョイ ef24-xO71)
2019/12/12(木) 17:42:49.22ID:NIaj3T140
要素数が多くなれば多くなる程switch文よりDictionaryの方が速度的にも早くなるのでは?
8デフォルトの名無しさん (ワッチョイ 5701-2Uq8)
2019/12/12(木) 17:52:34.02ID:VQC2yHD50
つ libstree
9デフォルトの名無しさん (ドコグロ MMab-oPxD)
2019/12/12(木) 18:32:36.61ID:Ijd1d2r8M
>>7
C#コンパイラは多数の分岐先を持つswitchの場合には二分探索を行うコードを生成したりする
基本的に人間が最適化するより速い
10デフォルトの名無しさん (ワッチョイ 06b0-DoXq)
2019/12/12(木) 19:09:09.93ID:56xY8w560
>>4です
ありがとうございます
switchでコツウコツやることにします
要素の数え漏れでもっと増えそうだし
例外を拾う処理も考えなきゃww
11デフォルトの名無しさん (ワッチョイ 8b45-6Mij)
2019/12/12(木) 19:47:35.25ID:XSG0K+ND0
vs2017ExpressでC#のフォームを使ってSQLiteのデータをDataGridViewに表示させたいです
セキュリティの関係でSystem.data.SQLiteを使うには申請が必要でMicrosoft.data.SQLiteを使っています
SQLiteをデータソース欄に追加する方法を教えてもらえないでしょうか?
12デフォルトの名無しさん (ワッチョイ 8b45-6Mij)
2019/12/12(木) 21:16:54.09ID:XSG0K+ND0
ソース貼り忘れました
https://dotnetfiddle.net/DXwCTe
よろしくお願いします
13デフォルトの名無しさん (アウウィフ FF3b-EbeN)
2019/12/13(金) 10:16:06.63ID:V90d9jYdF
いくら払えますか
14デフォルトの名無しさん (スプッッ Sd2f-6Mij)
2019/12/13(金) 11:41:55.37ID:D/hLKfPDd
>>13
自宅でSystem.data.SQLiteをインストールして同じコードを書いたらデータベースに接続出来ました
恐らくSQLiteConnection等の参照が足りずにエラーなっていると思いますが、解決策が思い浮かばなかったのでSQL Serverを使って試したいと思います
申し訳ありません
15デフォルトの名無しさん (スフッ Sd02-cBt2)
2019/12/13(金) 12:10:09.33ID:SSw9bcJtd
Microsoft Visual Studio International Feature Pack を使うんだ!
KanaConversion クラスだったかに RomajiToHiragana メソッドがあったと思う
16デフォルトの名無しさん (ブーイモ MM13-RobM)
2019/12/13(金) 17:23:20.97ID:f86+e1mZM
>>10

亀レスで申し訳ないが、正規表現と Dictionary と LINQ を使えば 5 行くらいで書けるよ。

var kana = “あ|い|う|え|お|か|き|く|け|こ”;
var roman = “A|I|U|E|O|Ka|Ki|Ku|Ke|Ko”;
var dic = kana.Split(‘|’).Zip(roman.Split(‘|’), (l, r) => new { Key = l, Value = r}).ToDictionary( x => x.Key, x => x.Value );

Console.WriteLine(Regex.Replace(original_string, $”({kana})”, match => dic[match.Value]));
17デフォルトの名無しさん (ブーイモ MM13-RobM)
2019/12/13(金) 17:33:03.63ID:f86+e1mZM
あとは 50 音を全パターン書いてね。

ただし注意点があって、長いワードは短いワードよりも (例えば「ちょ」は「ち」よりも) 先に並べるんだ。
そうしないと短いワードが先に部分マッチしてしまう。
18デフォルトの名無しさん (スップ Sd22-aD55)
2019/12/13(金) 17:47:39.93ID:s9cNxHbdd
テーブル作る前提なら始めからdictionary作ればよくね?
19デフォルトの名無しさん (スップ Sd22-aD55)
2019/12/13(金) 17:49:41.61ID:s9cNxHbdd
一文字ずつ正規表現でマッチしてたらとんでもなく時間食いそうだな
姓名の変換くらいならどうとでもなるだろうけど
20デフォルトの名無しさん (ブーイモ MMdb-RobM)
2019/12/13(金) 18:16:48.88ID:RrhzxBUdM
>>18
作っているのはテーブルだけではないし、このように書くとスッキリ書ける。

>>19
処理の重さの本質はワード比較による分岐であって、switch 分岐もそれに引きずられるから、C# で比較するならどちらも大差ないと思う。

正規表現の方が、むしろ、最適化がかかることに期待できる。
21デフォルトの名無しさん (ワッチョイ c788-aD55)
2019/12/13(金) 18:33:49.64ID:KAf60mjk0
まったくスッキリしてない
圧倒的にswitchが早い
22デフォルトの名無しさん (ブーイモ MMdb-RobM)
2019/12/13(金) 18:44:01.44ID:8Ub64SZCM
>21
それは感情論だな。計時してみてくれよ。

Perl, JavaScript, Java, C# で正規表現を使うこと 30 年弱になるけど、パターンの複雑さによらず、正規表現が目に見えて遅いということはなかったな。

アセンブラでゴリゴリに最適化したものと比べたら遅いだろうが、同じ言語のユーザー定義関数より目に見えて遅いことはまあないと思うよ。
23デフォルトの名無しさん (スププ Sd02-qWAV)
2019/12/13(金) 18:48:06.09ID:04gYwNVod
これならDictionary作るわ
24デフォルトの名無しさん (ブーイモ MMdb-RobM)
2019/12/13(金) 18:51:56.74ID:8Ub64SZCM
>>23
何か勘違いしてないか?
こっちも Dictionary つくっているが。
25デフォルトの名無しさん (ワッチョイ c788-aD55)
2019/12/13(金) 19:49:57.23ID:KAf60mjk0
2文字置換を考慮したらスッキリは書けなかった
すまんこ
こんなクソみたいなコードでもregexよりは数倍早い
https://ideone.com/c7ILX4
頭良い人がもっとスッキリしたコード書いてくれそう

長文のほうがreplaceは不利だろうから数千文字にしたけどそれでも余裕
速度気にしないならregexで良いと思う
26デフォルトの名無しさん (ワッチョイ c788-aD55)
2019/12/13(金) 19:58:53.60ID:KAf60mjk0
最終文字が2文字置換対象じゃないときにsubstringで範囲外例外出るわ
条件1個追加しといて
27デフォルトの名無しさん (スップ Sd22-aD55)
2019/12/13(金) 20:57:05.81ID:9t702OJgd
小さい「っ」が未対応なことに気付いた
これ正規表現でもめんどいね
正規表現ならっを無視してreplaceした後に1個ずつ置換かなぁ
28デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 21:07:14.03ID:M1n71JyZ0
多少簡略化したロジックで計測してみた。

マッチ文字列が 1 文字固定なら、ユーザー定義関数の方が正規表現より 8 倍速かったが、1 〜 2 文字可変なら所要時間は同じ。

パターンマッチの文字列長が可変・複雑になるとそれをハンドルするための分岐が増えるせいでユーザー定義関数は遅くなる。

もちろん置換をかけるオリジナル文字列の文字出現パターン&確率にもよる。

チューニングするなら C やアセンブラで書くべきだし、C# で書くなら正規表現で簡潔に書けるほうがよいのでは?
29デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 21:12:22.88ID:M1n71JyZ0
>>27
おもしろいところに気づいたね。

例えば仮文字 $ とかに変換しておいて、最後に直後の子音字に変換。

ちゃっと => cha $ to => cha t to
30デフォルトの名無しさん (ワッチョイ ef63-aD55)
2019/12/13(金) 21:22:02.14ID:VulPdUq80
どうあがいてもregexは遅くないという結論にしたいみたいだけど
string単体で見ても遅いのにregexが遅くないわけがない
簡潔に書くならregexがスマートなパターンが多いのは分かってるよw
処理速度求められるパーサーなんかではまずregexなんか使わない

遅いと言っても数万文字の処理が何万回も必要とかでなければ気にするようなレベルではないので問題ないなら素直にregex使ったほうが良いよ
25ですでにそう言ってるしね
31デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 21:26:23.93ID:M1n71JyZ0
あるいはワンショットで置換するなら、下記のようなパターンを使って後方参照し、第1マッチ文字列が空でないなら、第2マッチ文字列の置換先の1文字目に置換するとか。

(っ?)(あ|い|う|え|お|か|き|く|け|こ)
32デフォルトの名無しさん (アウアウイー Sa1f-f14Z)
2019/12/13(金) 21:26:56.26ID:yXJ+I/RUa
「ンョ゛ハー ゛」みたいなのが来た時の対応とか考え出すと仕様肥大化するだろうなあ
ひらがなカタカナ両対応とか、半角カナとか、
長音の代わりにハイフン使いだした場合とか
「ヴァッソ」とか
テストパターン考えるのも厄介そうだね
33デフォルトの名無しさん (ワッチョイ 5f01-uKDx)
2019/12/13(金) 21:30:11.16ID:0IHjBlJG0
LALRを受理するジェネレータ書いたことがあるんだけど、状態表の大きさは字句解析のほうが遥かに大きくなるのが普通みたいですよ。
字句解析と構文解析は一つの表にまとめられるのに、なぜ分けるのかというのが最初の疑問だけど、なぜか答えが載ってる本が無い。
実際にやってみると表の大きさが爆発的に大きくなるからでした。
状態機械は分けられる箇所があるなら積極的に分けたほうが効率的になるようです。
34デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 21:30:12.87ID:M1n71JyZ0
>>30
文字列操作だからもちろん絶対的には遅いよ。

C# で書いたユーザー定義関数と比べたときに正規表現が相対的にそんなに不利かといったらそうではないだろうという予想を立てただけで。実際測ったら同等だったわけだけど。
35デフォルトの名無しさん (ワッチョイ 5701-2Uq8)
2019/12/13(金) 21:30:26.83ID:7oWhly6q0
日経だったか「むかっっ」という促音が
重なる文章というか記事があったな
36デフォルトの名無しさん (ワッチョイ 5f01-uKDx)
2019/12/13(金) 21:33:36.65ID:0IHjBlJG0
字句解析におけるNFA対DFAというのも最初に気になる部分です。
結論から言うと、NFAの選択は十分に考慮できるはずです。
僕も最初はDFAにこだわっていました。
でも、字句解析は表が大きくなりがちです。
特にregex並みの便利機能を組み込もうとすると、とても大きくなります。
たいていはNFAで十分かと思います。
37デフォルトの名無しさん (ワッチョイ 5f01-uKDx)
2019/12/13(金) 21:37:02.69ID:0IHjBlJG0
ちなみに、DFAにこだわる理由は、多くの本がDFAのほうが効率的と述べているからです。
みんなそうだと思います。
最悪のケースではその通りですし、最悪のケースを考慮するのはセキュリティにも関わります。
でも最悪のケースはめったになく、たいていはNFAで十分で、たいていは効率的だと思います。
38デフォルトの名無しさん (ワッチョイ ef63-aD55)
2019/12/13(金) 21:39:05.74ID:VulPdUq80
>>34
その同等だったっていうコード貼ってくれない?
25で貼ったコードで1文字2文字の比率変えてもregex側が常に3〜4倍くらい遅いんだよね
古い.NETだとsubstringが遅いとかあった気がするんだけどその影響じゃないよね?
39デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 21:42:16.88ID:M1n71JyZ0
>>38
コード書いてくれてたんだね。
25 があぼーんで読めない。。。
40デフォルトの名無しさん (ワッチョイ 62b0-DoXq)
2019/12/13(金) 21:42:32.85ID:f+S2ArPq0
>>4でーす
>>16以降、何書いてるのかサッパリ分かりません!
なんせまだifとforとswitchと文字列操作のメソッドくらいしか知らないもんでww
半年くらい後に読みに来まーす
41デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 21:51:25.19ID:M1n71JyZ0
>>38
コードは長すぎて多分アップできないと思う。

やっていることは switch 式を2 文字マッチの場合と 1 文字マッチの場合で 2 種類つくり、残文字列が 2 文字以上あるなら前者にかける (破棄パターン _ => で後者を呼び出す)、1文字なら後者にかけ、インデックスを進めるだけ。

置換後文字列の連結には StringBuilder 使っているし、メソッド呼び出しは AggressiveInlining している。ユーザー定義関数を意図的に遅くするようなことはしていない。

1文字あるいは2文字の切り出しに Substring 使っているけど、それが遅いのかな?
42デフォルトの名無しさん (アウアウイー Sa1f-f14Z)
2019/12/13(金) 21:52:27.04ID:yXJ+I/RUa
ローマ字変換でばっとググってみた

お勉強用ならJavaScriptで書かれてるこれを理解しながらC#に移植するのがよさそうかな
ソースコードも簡潔だし悪くなさそう
https://www.pandanoir.info/entry/2016/03/29/190000

とにかく動けばいいというならMicrosoftが配ってるらしい「Japanese Kana Conversion Library」?でもこんなの使ったことないや
43デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/13(金) 22:00:14.44ID:+9OE4qBy0
ンボマはmboma
ンバッペはmbappe
だからね

練習用なんだろうけど
簡単に見えても文字変換を自力でやるのはかなり面倒くさい
44デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/13(金) 22:10:51.66ID:+9OE4qBy0
正規表現のほうが単純文字列比較より遅いのは当たり前
1文字比較の場合に単純比較と同等になるような
最適化が施されてるエンジン積んでれば数倍とかの差はつかない

少し古いバージョンのブラウザのJSのなら平気で10倍近い差が出てた
でもその差がUXに影響を与えるようなユースケースはそう多くはない

ちなみにstringのswitch caseは数が増えると
.NET Core以前は内部的にDictionary使うみたいよ
.NET Coreもhash比較するのは同じだけどDictionaryをアロケートしない方法にしてるらしい
45デフォルトの名無しさん (ワッチョイ ef63-aD55)
2019/12/13(金) 22:12:49.12ID:VulPdUq80
>>39
これで見えるかね
https://ideone.com/c7ILX4
このコードはswitchじゃなくDictionaryでやった
おそらくswitchのほうがこれより早くなるか最適化で同程度になるはず
switch版までは作るのめんどい

配列の境界値チェックも遅い要因なのでできるだけチェックが発生しないのが望ましい
このコードでは2文字変換したときに境界値チェックが入ってしまうので2文字変換比率が高いと性能が悪くなる
2文字変換ばかりにしてもregexよりは早い
46デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 22:38:36.62ID:M1n71JyZ0
>>45
ありがとう。週末に評価してみる。

switch より Dictionary の方が処理性能がぶれない気がする。ハッシュで検索がワンショットに決まるから。switch は if カスケードを通ることで前スレで議論したパイプライン処理の影響を受けるため、処理速度がデータに強く依存する。

そんなわけでこの件の性能はコードの書き方 (チューニング含む)、データ、環境にかなり依存すると思う。

これは価値観の問題なのでみなが同じように考えるとは思わないが、正規表現で 3 - 4 倍程度の性能悪化なら、ユーザー定義関数よりチューニングより正規表現を私は採用する。
10 倍の悪化なら用途によっては考える。(パターンが複雑・多岐の場合) 正規表現は開発効率と保守性が 10 倍よいと思うので。
47デフォルトの名無しさん (ワッチョイ 0663-aD55)
2019/12/13(金) 22:59:26.50ID:x4Cvv/aS0
>>46
switchとdicの関連は44が説明してくれてる
最適化次第でいい感じにしてくれるはずだからどっちもたいさない感じになると思う

個人的には性能差が10倍だろうが1000倍だろうが許容できるケースなら可読性を取る
今どき文字→数値変換でc-'0'なんて書かずに大体int.Parse使うのと同じ

UIに入力された氏名のローマ字変換みたいな1ユーザー1回で済むような処理に速度なんて無意味
GB単位のログデータをいじるなら数倍の差でも考慮すべき
なんなら入力データの傾向に応じてチューニングしやすい単純処理のほうが更に高性能にしやすい
48デフォルトの名無しさん (ワッチョイ fb68-xO71)
2019/12/13(金) 23:21:38.26ID:Lnvxq+5t0
俺なら、ひらがな小文字の変換は、変換元「ちゃ」とか「ぱっ」のパターンを文字数降順で優先的に置き換えるかな。
配列で変換パターンを保持して、それにない文字パターンは先頭から徐々に削っていく。
それなら「ぱ」と「は゜」なんかも判りやすく対応できると思うよ。
49デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/13(金) 23:36:31.48ID:M1n71JyZ0
>>44, 45, 47
みんな有益な考察をしてくれるのでありがたい。感謝。

今まで正規表現が際立って遅いと体感することなかったけど、利用目的を想定した評価をきちんとしたことなかったので一連の議論はとても参考になりました。
50デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/13(金) 23:57:37.29ID:+9OE4qBy0
オリジナルの文字列を1文字ずらしでzipして
2文字ずつ取得するイテレータでやるのがいいかなとか思ってたが
多少非効率でも↓ここの実装みたいに繰り返し変換していく方が
条件分岐が少なくて読みやすいかも

https://tools.m-bsys.com/original_tooles/romaji.php
https://tools.m-bsys.com/js/romaji.js

function hebonG(s) {
s = s.replace(/ん([aiueoy])/g, "n$1");
s = s.replace(/ん/g, "n");
s = s.replace(/n([bpm])/g, "m$1");

var hebonGMap = {
"kuぁ": "kua", "kuぃ": "kui", "kuぇ": "kue", "kuぉ": "kuo",

}

s = s.replace(/っch/g, "tch");
s = s.replace(/っ([kstnhmyrwgzdbp])/g, "$1$1");
51デフォルトの名無しさん (ワッチョイ e22c-3siJ)
2019/12/14(土) 11:11:39.02ID:8NRAnTxB0
>>49
正規表現が遅いのは、コンパイルだろ

実行時ではなく、初期化時にコンパイルするようにと、Go の本には書いてある
52デフォルトの名無しさん (ワッチョイ e22c-3siJ)
2019/12/14(土) 11:24:37.56ID:8NRAnTxB0
>>4
Ruby では、条件分岐しなくても、変換用の辞書で書ける

>>16
も、これに似ている

hash = { 'ab' => 'あ', 'xy' => 'ん' }

p re = Regexp.union( hash.keys ) #=> /ab|xy/

p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx
53デフォルトの名無しさん (ワッチョイ e752-RobM)
2019/12/14(土) 16:02:25.78ID:BZ704rid0
>>51
まあね。ただ、C# の Match Evaluator 付き Regex.Replace は事前コンパイルできないと思う。

ちなみにあの後何度か測り直したのだが、switch より事前コンパイルなし正規表現は 2 倍遅かった。同等ではなかった、すまん。

45 によると Dictionary & ユーザー定義文字列操作は正規表現より 3-4 倍良かったそうだから、今回のケースでは Dictionary : switch : 事前コンパイルなし正規表現 = 3-4 : 2 : 1 くらいの性能比かと考えられる。

switch はカスケードがさらに増えると内部で Dictionary 化して最適化されるから、一般論としては 正規表現は事前コンパイルすれば switch に肉薄する、あるいは、多少超えるかもしれないが switch に Dictionary 最適化がかかったらまた離されるかもって感じではないかと。

>>52
ありがとう。Match Evaluator 正規表現でハッシュ置換するのはもう四半世紀も使っているテクだけど他で見たことなかったから、Ruby の例は参考になる。
54デフォルトの名無しさん (アウアウイー Sa1f-f14Z)
2019/12/15(日) 00:27:58.57ID:x+hGNtUDa
このスレにいる人たちで
C#を日本語で記述ってのを実際にやってる人、どれくらいいるかな
https://togetter.com/li/1441951 を読んで試してみてもいいかなと思ったんだけど
VisualStudioのコード補完が利く環境ならIME切替の手間もさほどかからない気もするし
何か致命的なデメリットとかあるんだろうか
55デフォルトの名無しさん (アウアウウー Sa3b-xnB/)
2019/12/15(日) 02:49:23.51ID:SZPXyEbKa
>>54
ほとんどいないのでは?w
デメリットはインテリセンスとの相性の悪さに尽きるね。

どうでもいいけど「C#を日本語で記述」の是非というより識別子に日本語を使うことの是非だよね
論より証拠、やってみたらいかに非合理な試みか分かると思うよ
56デフォルトの名無しさん (ワッチョイ e22c-3siJ)
2019/12/15(日) 05:39:16.51ID:fpSJINfx0
Ruby では、RSpec(BDD)のユニットテストで、
日本語の関数名を付ける人はいるけど

まあ、テストだからね
57デフォルトの名無しさん (ワッチョイ 62ad-zBV4)
2019/12/15(日) 05:45:38.27ID:cmnyuAvp0
テストのメソッド名とかなら使っちゃうかな
58デフォルトの名無しさん (ワッチョイ e242-xO71)
2019/12/15(日) 06:17:17.09ID:6XATZvNs0
 enumの要素で使うと便利
どうせ数はないからインテリセンスも問題なし
59デフォルトの名無しさん (ワッチョイ 5f01-xO71)
2019/12/15(日) 13:41:49.81ID:TLgol4W/0
>>54
補完のために半角英数+日本語が便利
これなら最初だけだしIME切り替えは
60デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/15(日) 14:56:15.21ID:pFDibfNW0
補完はomnisharp + migemoで解決できる

他言語で変数名に日本語使うのはよくやってるけど扱う対象の用語が固まってる場合は便利
そうじゃない場合は結構厳格に命名ルールを決めないと逆にわかりにくくなったりする
61デフォルトの名無しさん (ワッチョイ 972d-3OBQ)
2019/12/15(日) 16:18:24.21ID:QBANyAHK0
俺が英語ができなかったり、デザインパターンの理解が足りなかったりするせいだとは思うけどさ
どうしてもファイル名=ネームスペース名=クラス名=主なメソッド名になりがちなんだわ
単一責任の原則に合わせた時、ファイル名〜メソッド名まで決める簡単な基準とかあったら教えて欲しいな
62デフォルトの名無しさん (ワイーワ2 FFfa-EbeN)
2019/12/15(日) 16:21:28.32ID:NIombkpjF
Javaやりすぎると後遺症でそうなることがあるな
63デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/15(日) 16:49:35.38ID:pFDibfNW0
ファイル名=publicクラス名.csは一般的

ネームスペース名はそのクラスが属するレイヤーとかコンポーネントの名前
アーキテクチャが整理されてればあんまり迷わないと思う

クラス名=主なメソッド名は状況による
FormatterクラスにFormatメソッドがあるのは自然

Utilitiies > Formatter > Format
64デフォルトの名無しさん (スッップ Sd02-PR0H)
2019/12/15(日) 17:58:43.69ID:LwtoOKkQd
日本語を使った感想

メリット
名称に悩まない(重要)
比較的読みやすい

デメリット
インテリセンスと相性が悪い
imeの切り替えが面倒
大文字小文字がないから名称が被りやすい
システムハンガリアン推奨

他にも何かあった気がする
65デフォルトの名無しさん (アウアウウー Sa3b-xnB/)
2019/12/15(日) 18:23:34.11ID:yHa/r3w4a
プロパティーやフィールドはいいけど、メソッドやイベントの名前は馬鹿っぽくはなるねw
66デフォルトの名無しさん (ワッチョイ 622c-b+2D)
2019/12/15(日) 18:24:56.51ID:ltDbPg3S0
プロパティはいいとしてメソッドは動詞(+名詞)の形にするの
日本語だと不自然だけどどうしてるのかな
67デフォルトの名無しさん (ワッチョイ 62ad-zBV4)
2019/12/15(日) 18:30:01.27ID:cmnyuAvp0
>>58
中点使ってるせいでC#6.0対応時にエラー吐いたプロジェクトあったわ
68デフォルトの名無しさん (アウアウカー Sac7-+v21)
2019/12/15(日) 18:49:58.62ID:yNhbn0Xna
>>54
DBテーブル名/カラム名が日本語名のWindows業務システムで、
Entityクラスや画面コントロールの命名をDBそのまんまの日本語にしたら
ソースが滅茶苦茶読みやすくとても良い感じになった
以後、積極的に日本語で命名するようにしてる

自分の書き方だと、
日本語を使うのは画面項目や業務用語の名詞のみ、動詞は英語
英語とチャンポンして Update利用情報()、Is有効期限内 みたいなメソッド/ブロパティをよく作る
ローカル変数はiとかsとかtとか適当なプレフィクスをつけて無理やりcamelにする
フィールドは_始まり
とかかな
日本語で書くコメントが大幅に減らせてメリット大だと思う

デメリットは…C#関係ないけど
postgresだとテーブル名が日本語だとテーブルエクスポートが出来なくて不便、
多分ASP.NETみたいなWebシステムだと日本語名を使うのはリスク高い、
とか
69デフォルトの名無しさん (アウアウエー Sa3a-aL8g)
2019/12/15(日) 20:10:28.99ID:KTmzWILYa
訳のわからん不具合踏みそう
日本語使ってると
70デフォルトの名無しさん (ワッチョイ 1b84-uKDx)
2019/12/15(日) 21:16:07.17ID:eTsOryw+0
Listについて質問なのですが
BindingList<T>にはToList()では代入できないのでしょうか?
LINQの結果をToListで代入しようと思ってたのですが
型が違うとか出るんです(自作クラスによるListです)
普通のList<T>へならできるのでBindingList固有の問題かと思います
仕方なくforeachで一つずつ代入して一応目的は達成してるんですが
LINQでforeach使わず抽出しておきながら
最後に代入でforeach使うのはバカらしいなあ・・・と思いまして
どうすれば直接LINQの結果をBindingListに入れられるのでしょう?
71デフォルトの名無しさん (ワッチョイ 622c-b+2D)
2019/12/15(日) 21:26:38.59ID:ltDbPg3S0
new BindingList<Hoge>(fuga.ToList())
72デフォルトの名無しさん (ワッチョイ 1b84-DoXq)
2019/12/15(日) 22:05:28.60ID:eTsOryw+0
>>71
おお!何かわからんけど、できた
初期化したらキャストできるの?
でもdataGridViewのDataSorceプロパティに入れてたのも外れるから
もう一度入れ直さないといけないけど・・・
73デフォルトの名無しさん (ワッチョイ 57da-boqi)
2019/12/16(月) 05:42:00.98ID:cXUrIyKd0
razor page のコーディングについてなんですが、
1ページのデータ量が多くなれば必然的にソースも長くなりますが、2000行とかになるとごちゃっとして「目に優しくない」ソースになっちゃいます。
目に優しいコーディング方法やら規約やら法則があれば教えてください。
74デフォルトの名無しさん (ワッチョイ efa7-SgqX)
2019/12/16(月) 07:41:26.07ID:v/vzDWBs0
>>73
1メソッド300行以内っていう社内ローカルルール
75デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/16(月) 15:28:44.50ID:+KWK+mzK0
>>73
Partial ViewとかView Component使って分割する
再利用しなくても分割する
個人的には200行超えると黄色信号

>>74
1メソッド300行ってすごいな
76デフォルトの名無しさん (ワッチョイ c788-aD55)
2019/12/16(月) 17:57:20.50ID:I8DdFnIZ0
200も300も大差無いような…
77デフォルトの名無しさん (ワッチョイ 6bb2-5cGf)
2019/12/16(月) 20:05:28.74ID:FR/i0CTk0
やっと会社の環境がvisualstudio2010から2019になったわ、これで非同期無双できるw
78デフォルトの名無しさん (ドコグロ MM07-oPxD)
2019/12/16(月) 20:08:09.24ID:X2KrPzv7M
そんな環境で2019なんか入れて大丈夫か?
アップデートで不具合引いてダウングレードさせられないように、不用意なアップデートはやめとけよ
79デフォルトの名無しさん (スップ Sd22-zBV4)
2019/12/16(月) 20:09:20.42ID:J5g2Edewd
2010とかサポート切れ直前やな
80デフォルトの名無しさん (アウアウイー Sa1f-f14Z)
2019/12/16(月) 21:08:24.24ID:LIM2IbDka
2010だとNuGetすら使えないんじゃ

54だけどレスありがとう>ALL
実践してる人もそこそこいるのね
テーブルやカラムを日本語で命名できるのってAccessに限らないのか・・・・
不具合の事例も知りたいけど、具体的に出てきたのは>>67くらい?
C#に閉じた範囲で使うぶんには大丈夫そうかな・・・・今度試してみるよ
81デフォルトの名無しさん (ワッチョイ a201-VrMI)
2019/12/16(月) 21:33:12.54ID:+KWK+mzK0
>>76
viewの行数とメソッドの行数の違い
82デフォルトの名無しさん (ワッチョイ 5f01-rutQ)
2019/12/17(火) 09:59:27.04ID:GVP8bqm50
>>80
全角ピリオドとか&とかヤバそうに思えるのは使わないのが無難
date前月末とか昔から使ってます

昔々のACCESSで一部の通常全角文字が使えないとかありましたが、今はもう大丈夫と思ってます
将来的にトラブル可能性はゼロではないとしても、可読性のメリットのほうが遥かに大きい
例えば「要介護認定等基準時間」みたいなのを英字変数にするとかアホにもほどがある
83ダーク王鍬大使 ◆SoVpkB15jY (ワッチョイ 9702-X5Um)
2019/12/17(火) 18:03:06.99ID:9VuoOKjt0
質問でふ(^^
Unityのアセットとか覗いたりするとifは使われてまふよね(^^
Switchが使われているの見たことないんでふが(^^
あれって使っちゃいけないとかってあるんでふか?(^^

ボッキング!(^^
84デフォルトの名無しさん (ワッチョイ a324-xO71)
2019/12/17(火) 18:30:01.62ID:I793zFiP0
最適化すると数行のswitch文はifに自動変換されるんじゃなかったっけ
85ダーク王鍬大使 ◆SoVpkB15jY (ワッチョイ 9702-X5Um)
2019/12/17(火) 18:39:07.95ID:9VuoOKjt0
そうだったんでふか(^^
教えていただき感謝感謝のボッキング!(^^
86デフォルトの名無しさん (スッップ Sd02-IB+3)
2019/12/17(火) 19:40:18.25ID:vR4SZ06Rd
class Hoge{
int Id
ICollection<Hoge> Hoges
}
ってクラスをEntityFramework使ってテーブルにしたんだけど無理だったりする?
Hogeテーブル(Id)と、Gehoテーブル(id、HogeId、HogeId2)後ろ二つ外部キーみたいなイメージなんだけどこういうパターンが調べても出てこない
87デフォルトの名無しさん (スプッッ Sd22-IB+3)
2019/12/18(水) 15:34:43.72ID:bmnVQ6Qnd
>>86
この構成じゃ出来ないことが分かったので質問を取り下げます
88デフォルトの名無しさん (オイコラミネオ MMab-7F0B)
2019/12/19(木) 01:57:08.71ID:Ty/KdhcjM
webview使ってブラウザ操作してるんですけど、相手がASP使ったサイトだとボタン押したりテキストボックスに文字入れたりって操作は無理ですかね?
89デフォルトの名無しさん (ワッチョイ 17da-UiIE)
2019/12/19(木) 12:09:36.23ID:WCM9NoNV0
jsonファイルを読んで、木構造を編集して、jsonファイルに出力する
ファイルの入出力はJson.NETを使用
この場合内部のデータ構造はどう持つのがいいでしょうか?

Json.NETのJTokenを使うか、自作するか考えてますが、
標準的な手法は有りますか?
90デフォルトの名無しさん (ドコグロ MMdf-On3P)
2019/12/19(木) 12:13:14.10ID:+iaW+uMUM
ちゃんと型を付けてデシリアライズ→加工→シリアライズする
型を付けるまでもないアドホックな処理ならそもそもC#なんか使わずに他のスクリプト言語を使う
91デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/19(木) 18:39:36.79ID:IsJpyVgV0
質問なのですが
エンティクラスを配列に入れて使うようなことはできないでしょうか?
数が多いのでループでコードをすっきりさせたいです。

こんな感じなのを
public class test()
{
using (var context = new MyContext(connection))
{
var datalist1 = context.MyEntities1.ToList();

var datalist100 = context.MyEntities100.ToList();
}

//以下 共通処理

}


こんな感じで使いたい
string[] MyEntitiesList = new string[100];
MyEntitiesList[0] = "MyEntities1";
MyEntitiesList[1] = "MyEntities2";

MyEntitiesList[99] = "MyEntities100";

for(var i =0;i<100;i++)
{
var datalist1 = context.MyEntitiesList[i].ToList();
}
92デフォルトの名無しさん (エムゾネ FFbf-hPjh)
2019/12/19(木) 19:11:55.40ID:aq+5Nz0cF
var datalist1 =
上書きで良いなら最後のだけ入れろ
93デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/19(木) 19:54:28.09ID:IsJpyVgV0
>>92
すまないよくわからないのでもう少し説明をお願いしたい

>>91
こんな感じで使いたいを修正してみました。

string[] MyList = new string[100];
MyList[0] = "MyEntities1";
MyList[1] = "MyEntities2";

MyList[99] = "MyEntities100";


public class test(int i)
{
for(var i =0;i<100;i++)
{
using (var context = new MyContext(connection))
{
      var datalist1 = context.MyList[i].ToList();

     //以下 共通処理
       }
}
     }
94デフォルトの名無しさん (ブーイモ MMdb-R6SS)
2019/12/19(木) 20:10:40.73ID:AGyCFxKvM
>>93
92 は for ブロック内部の代入式の左辺が変わってないよ、というツッコミ。

やりたいことは、抽出対象プロパティをテキストで指定してシステマティックにデータ抽出したいってことでしょ?

Dictionary やインデクサで、テキスト => 対象プロパティ or 抽出メソッド、のマップを作って、Reflection か何かで呼び出せばできそうな気がするけど、LINQ to Entities でワークするかどうかは試してみないとわからないな。
95デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/19(木) 20:25:17.21ID:qKbwpXVq0
>>93
有益な回答を得るためにもう少し説明が必要かも。

なぜ抽出対象プロパティをテキストで指定する必要があるの?
1 カラムごとに 100 回抽出しようとしているけど、まとめて 100 カラムをワンショットで抽出してから加工するのではなぜダメなの?

また環境が EF6 なのか EF Core なのかも言及した方がいいかもね。
96デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/19(木) 20:38:12.29ID:qKbwpXVq0
ごめん、勘違いしていた。
テキストで指定したいのはカラムじゃなくてテーブルなんだね。
97デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/19(木) 20:58:33.77ID:IsJpyVgV0
そうですそうです。
データを取り出すところ以外はほぼ変わらないのに
↑のコードだけでも1テーブルの数が多い場合余裕で1万行超えてしまうので

public bool test1()
{

public bool test2()
{

〜〜〜〜
public bool test1000()
{

と用意して
test1();
test2();
〜〜
test100();


public bool test()
{


for(var i =0;i<100;i++)
{
test( iLop );
}

だけにできないかと思っています。
98デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/19(木) 21:00:56.21ID:IsJpyVgV0
>>95
環境はEF Core3.1 です。
99デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/19(木) 21:11:26.20ID:qKbwpXVq0
抽出テーブルを動的に指定したいなら、DbSet<T> を返すプロパティが DbContext の派生クラスに定義されていると思います。

型引数 T にテキストは直接指定できないので、その DbSet<T> 型のプロパティをラップするメソッドを定義して、テキストを引数で渡してやればよいのではないでしょうか。こんな感じで。

class MyDbContext : DbContext {
DbSet<MyEntityDataModel1> MyEntity1 { get; set; }

DbSet<T> GetTable<T>(string table) where T : CommonBaseClassOfMyEntityDataModels =>
this.GetType().GetProperty(table) as IQueryable<T>;
}

// 呼び出し側
context.GetTable(“MyEntity1”).ToList();
100デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/19(木) 21:54:02.04ID:qKbwpXVq0
>>97
そういう目的ならテーブル名をテキストで指定する必要もなくて、

foreach (var prop in context.GetProperties())
{
var table = (prop as IQueryable<CommonBaseClass>).ToList();

// table に対するテスト処理
}

でよいかもしれない。

ただし下準備として、DbContext の全プロパティのデータコンテナを共通で受ける基底クラス CommonBaseClass を定義する必要がある。

似たようなことはやったことあるのだけど、このコードが手直しなく動くかどうかはわからない。

テスト処理もラムダ式のリストで用意しておいて、各テーブルと Zip() して適用するなど、LINQ を活用するとよいと思うよ。
101デフォルトの名無しさん (ワッチョイ 17da-UiIE)
2019/12/19(木) 21:59:04.37ID:WCM9NoNV0
>>90
説明が稚拙で申し訳ないです

プログラムはフォームで、木構造の編集とはノードのコピーや削除、値の編集などをGUIで行います

GUIの理由はJSONファイルはあるスマートウォッチのカスタムフェイス用で配置などを確認するためです

自分が知りたい事はc#でよく使われる木構造を扱うライブラリです
102デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/19(木) 22:24:53.20ID:IsJpyVgV0
>>99>>100
ありがとうございます。
まだうまく動いていなくて返事遅れました。
100参考にして試してみます。
103デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/19(木) 23:07:37.09ID:IsJpyVgV0
>>99>>100
さっぱり動かせそうにない
CommonBaseClassOfMyEntityDataModels
CommonBaseClass
の説明をもう少しお願いできませんか?
104デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/19(木) 23:56:40.46ID:qKbwpXVq0
プロパティ DbSet<EntityModel1> MyEntity1 や DbSet<EntityModel2> MyEntity2 の型引数 EntityModel1, EntityModel2 があるとすると、その共通基底クラス BaseEntityModel を定義する必要があります。

class EntityModel1 : BaseEntityModel {} というように。BaseEntityModel は抽象クラスでも可。

そうすると、.GetProperty() の返り値の型が、DbSet<EntityModel1> だったり DbSet<EntityModel2> だったりするのだけど、これが IQueryable<BaseEntityModel> という型で共通的に受けられるということを想定しています。
105デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/19(木) 23:58:37.24ID:qKbwpXVq0
訂正。
.GetProperty() ではなく .GetProperties() でした。
106デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/20(金) 00:14:57.12ID:wMdfjBuG0
>>104
明日また試してみます。
丁寧に説明ありがとうございます。
107デフォルトの名無しさん (アウアウウー Sa5b-On3P)
2019/12/20(金) 02:04:01.33ID:aZ9V3LMHa
>>101
よく分からん理屈だなあ
そのスマートウォッチの設定に限らず、世の中のアプリが扱うデータなんて大半は木構造なわけだが、
そいつらがみんな木構造を明示的に扱うようなGUIを持ってるか?
断言するが、明示的に木構造を扱うようなUIが必要なのはフォルダツリーのように再帰的な構造を扱う必要がある場合だけだ
それ以外は必ずもっと適したUIがある
108デフォルトの名無しさん (ワッチョイ 972d-vnDE)
2019/12/20(金) 02:21:20.80ID:oj5hMkFq0
while文がネストしていた時、階層の奥から一番外側のwhileループまでブレイクするにはどうするのが正しいのでしょうか?
while(true){ while(true){
if(true) 外側のwhileまでbreak;
}}
よろしくお願いします
109デフォルトの名無しさん (ワッチョイ b763-CWbB)
2019/12/20(金) 02:23:20.84ID:qHTdS2+z0
goto
110デフォルトの名無しさん (ワッチョイ 9fad-WY45)
2019/12/20(金) 03:01:50.54ID:1digpYZT0
ここでいいのか分からないんですが質問させて下さい。
macでのvisual studioないしはC#の解説の載っているサイト、もしくは操作方法などを教えてください。
つい先日3Dモデリングやゲーム開発に憧れてC#の本を手に取りました。情報系の知識はないに等しく、せいぜい中学の授業レベルです。
「やさしいC# 第3版」を手に進めようとしたのですが、当方macで作業しようとしていたため、本の内容と実際の動きが異なり、四苦八苦しています。
現状なんとかhello worldはできましたが手順が理解できておらず困惑しています。
よろしくお願いします。
111デフォルトの名無しさん (ワッチョイ 17da-UiIE)
2019/12/20(金) 05:17:47.97ID:GjFm0fld0
>>107
漏れてて申し訳ないです

そのスマートウォッチではノードの記述順によって表示順が決まるので木構造の順番を入れ替えたい

入れ替える枝の深さもまちまちですので木構造を直接編集できた方が良いと思った訳です

また、全てを木構造で扱うのではなく、末端部は類型化されてますのでクラスにして編集の予定です
112デフォルトの名無しさん (ワッチョイ 1752-R6SS)
2019/12/20(金) 07:23:20.70ID:NMJ3uqPu0
>>106
当初は利用目的がわからなかったため、.GetProperties() やジェネリックで対象を動的に指定して DbSet<T> 型プロパティを呼び出す方法を提案しましたが、
DbContext に MyEntiyty1, MyEntity2, ... と 100 個のテーブルがあり、個々のテーブルに対応した Test1, Test2 ... というテスト関数を地の文で定義しており、
これをシステマティックに対応させたいというのが課題の本質であるなら、実はジェネリックとか使わなくてもできます。

テスト関数 Test1 は DbSet<MyEntityDataModel1> が入力で bool が出力として bool result1 = context.MyEntiti1.Test1() or Test1(context.MyEntity1)
と記述できるように定義されていると思いますが、これを下記のように変形すればよいと思います。

1. MyDbContext を入力として bool result1 = context.Test1() or Test1(context) と記述できるようにテスト関数を書き換える
(Test1 内部の冒頭で context.MyEntity1 と対象を指定する)
2. テスト関数をラムダ式にし、地の文で定義している Test1, Test2 ... というメソッド群をリストオブジェクトにする
  List<Func<MyDbContext, bool>> TestList =
new [] { context => { context.MyEntity1 /* ... */ },
context => { context.MyEntity2 /* ... */ }, ... };
3. using ブロック内 for/foreach 文でリストオブジェクトをキックする
  using (var context = new MyDbContext())
  {
bool result[100];

    for (var i = 0; i < 100; i++)
    {
     result[i] = TestList[i](context);
    }
  }
113デフォルトの名無しさん (アウアウウー Sa5b-On3P)
2019/12/20(金) 08:59:06.48ID:aZ9V3LMHa
>>110
ゲーム開発がしたいならUnityを使う
Unityの本を買え
Mac版のVisual Studioは一応あるけど誰も使ってないから本は存在しない
114デフォルトの名無しさん (オイコラミネオ MMab-7F0B)
2019/12/20(金) 19:28:07.00ID:laM9bMPJM
>>110
まずMACを捨てましょう
プログラミングはwindowsでないと、今は良くても後々面倒だと思います
私がゲーム開発してた頃はDirectX使ってました
3Dプログラミングはサインコサインタンジェント使いまくりなので数学の知識がいります
2Dは足し算引き算ぐらいなので初心者でもできると思います
画面にドット絵表示までが鬼門ですがそこ乗り越えられたら楽しい世界が待ってるのでがんばってください!
115デフォルトの名無しさん (スッップ Sdbf-hGMP)
2019/12/20(金) 20:00:27.38ID:FDXklgq8d
>>114
MacでもWindowsが動かせるから捨てる必要なし
116デフォルトの名無しさん (ワッチョイ d75f-r9Jq)
2019/12/20(金) 20:09:06.50ID:wMdfjBuG0
>>112
こんな書き方もできるのか勉強になりました。

色々調べて試してみて>>100
をベースにして思ってたように動かせました。
コードすっきりになりました!ありがとうございます。
117デフォルトの名無しさん (ワッチョイ b763-CWbB)
2019/12/20(金) 21:29:38.47ID:qHTdS2+z0
そもそもweb周りなんかだとはMacかなり多いのにプログラミングはWinで!なんて発想はどこから来るんでしょうか

2Dであろうと三角関数くらいはガンガン使います
118デフォルトの名無しさん (ワッチョイ f7da-69wU)
2019/12/20(金) 21:41:47.69ID:Vbt2Sjhj0
webは簿給でMacのお布施を払っていると
儲けが減ってしまうからですよ

血の繋がりの無いパパさんが見つかると良いですね
119デフォルトの名無しさん (ワッチョイ b763-CWbB)
2019/12/20(金) 21:47:02.02ID:qHTdS2+z0
webが薄給ってどこの世界の話?
120デフォルトの名無しさん (スプッッ Sddf-hGMP)
2019/12/20(金) 22:22:52.66ID:tNG2om7pd
>>119
ここの世界だよこの世界
121デフォルトの名無しさん (ワッチョイ b763-CWbB)
2019/12/20(金) 22:31:48.04ID:qHTdS2+z0
>>120
まじか
同じ世界に住んでるようで違う世界なんだな
金融医療なんかと比べりゃ薄給かもしれんが世間の平均以上はあるでしょ
そら平均ないとこもいっぱいあるし中間搾取が多い部類だとは思うが…
日本は世界的に見てweb系、というかプログラマ自体が安いってのはあるけどそれでも他業種に比べりゃ全然マシだと思うよ
122デフォルトの名無しさん (ワッチョイ 9f52-1WEo)
2019/12/20(金) 23:14:05.81ID:F92JDOtZ0
web系と一括りにしているが>>118が経験した狭い範囲でのことだろう
123デフォルトの名無しさん (オイコラミネオ MMab-7F0B)
2019/12/20(金) 23:56:36.17ID:laM9bMPJM
webは金になるよ
プログラマーの花形だから
求められるスキルは最下位だけども
組み込みプログラマーとゲームプログラマーが最上位
前者はハードの知識も求められるし、後者はプログラムの真髄まで知っとかないといけない
ゲームプログラマー経験してたら、他の分野のプログラマーの仕事はほんと簡単だもん
若い時はムチャやって良かったと心の底から思う
124デフォルトの名無しさん (ワッチョイ b763-CWbB)
2019/12/21(土) 00:37:36.41ID:4yldtPmm0
webのスキルが最下位ってどこの世界の話?
125デフォルトの名無しさん (ワッチョイ 9fad-2sPR)
2019/12/21(土) 01:32:51.93ID:Mk9xcjQY0
110の者です。反応してくださった方々ありがとうございます。

ひとまずUnityのガイドで勉強してみます。

C#を勉強するなら、現状手元にはmac book airしかないためWindowsを入れるしかないみたいですね…(スペックギリギリですが…)

一応理系なので三角関数自体は大丈夫です。

ちなみにプログラミングの初心者がまず勉強すべきもの、もしくは買うべき本などありませんでしょうか?
場違いの質問で申し訳ありませんが、教えていただけると嬉しいです。
126デフォルトの名無しさん (ワッチョイ 9f01-pdcM)
2019/12/21(土) 01:46:23.53ID:tKqa0Mcd0
最初に読むべきなのは公式チュートリアル
https://docs.microsoft.com/en-us/dotnet/core/
https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/
127デフォルトの名無しさん (アウアウウー Sa5b-kT4h)
2019/12/21(土) 02:36:40.50ID:zyAIfpOSa
ゲームは知らんけど、組み込みはほんとピンキリだよw
学者みたいに何でも知ってる人もいるけど、狭い範囲のことしか知らないくせに
コード書かせたら構造化以前なんて人もゴロゴロいる

web系は仕事内容は良く知らんけどストレス度は高そうだよねw
なんか俺は最先端のとんがったことやってるんだぞ的な自己陶酔系の人が多いように感じるのは、
そうでも思わないとたぶんやってられないんだろうなと想像
128デフォルトの名無しさん (ワッチョイ 9fad-YiuP)
2019/12/21(土) 05:00:47.48ID:biYUElkB0
>>125
Unityならmacで十分だよ

Windowsでないと後々面倒というのは、会社で使うのはWindowsがほとんどだから
もし仕事にするなら、今から使い慣れてた方がいいということ

開発行為自体だと、unix系のアプリケーションならmacの方が色々揃ってるからやりやすいし
Windowsのアプリケーションなら、当然Windowsがやりやすいよ
129デフォルトの名無しさん (ブーイモ MMbf-70ba)
2019/12/21(土) 08:35:24.74ID:elCUYmNmM
>>123
オプションとなるスキルが違うだけでプログラミングスキルはどの分野でもピンキリ
130デフォルトの名無しさん (ワッチョイ 9f52-1WEo)
2019/12/21(土) 09:37:34.69ID:k+w4ikT00
>>123
2Dなら足し算引き算だけなんていってる人が"プログラムの真髄"なんて言っても、自分がやったことある範囲の知識がすべてなんだなって感じで説得力ゼロだぞw
131デフォルトの名無しさん (オイコラミネオ MM4f-isjD)
2019/12/21(土) 12:32:00.35ID:W85y2T7QM
2Dでも三角関数使うしな
132デフォルトの名無しさん (ワッチョイ 7707-7F0B)
2019/12/21(土) 12:58:47.60ID:jr0+pgES0
プログラムかじった事ない人にいきなり三角関数必要とか言って作れると思う?
3Dは数学の知識が最低減ないと作れないけど、2Dは三角関数知らなくても作れる
分かったような口聞くな
133デフォルトの名無しさん (オイコラミネオ MM4f-isjD)
2019/12/21(土) 13:15:08.24ID:W85y2T7QM
三角関数をなんだと思ってるんだよ
中学生なら習ってないからしょうがないけどさ
134デフォルトの名無しさん (ワッチョイ 9f01-pdcM)
2019/12/21(土) 13:17:44.87ID:tKqa0Mcd0
>>132
>プログラムかじった事ない人にいきなり三角関数必要とか言って作れると思う?

この文章だけで頭の悪さがよく分かる
自然言語でまともな文章書けないやつに
まともなプログラム書けるやつはいない
135デフォルトの名無しさん (スッップ Sdbf-CWbB)
2019/12/21(土) 13:31:19.22ID:B9cNmAcsd
三角関数なしに2Dゲームを作ることはできる
数学知識なしに3Dゲームも作れる
流石に加減乗除くらいは必要だが
無くても何かは作れると何を作るにも不要かどうかは別の話
136デフォルトの名無しさん (ワッチョイ 7707-7F0B)
2019/12/21(土) 17:01:18.37ID:jr0+pgES0
>>135
ほうー
3D空間を数学の計算以外でどうやって動かすのかな?
キャラクター動かないゲームかな?
137デフォルトの名無しさん (アウアウウー Sa5b-kT4h)
2019/12/21(土) 17:06:21.58ID:ToibKenqa
下らない話はそのぐらいにしておいたら?
中学生じみてるよw
138デフォルトの名無しさん (ワッチョイ 9f5e-xbXx)
2019/12/21(土) 17:12:20.47ID:3iZbeqQ/0
Unityなんかに任せるとか?
結局使うことになるとは思うけど、使わずに済まそうと思えばなんとかなると思う。
139デフォルトの名無しさん (ワッチョイ 977b-XEnz)
2019/12/21(土) 17:20:19.27ID:722GI/wM0
テンプレ読んでください
オイコラミネオ MMab-7F0B
ワッチョイ 7707-7F0B
NG
140デフォルトの名無しさん (オイコラミネオ MMab-EwPn)
2019/12/21(土) 18:47:28.86ID:BGAOi6L9M
オレのミネオはどう表示されるんだろ…
141デフォルトの名無しさん (ブーイモ MMfb-Veox)
2019/12/21(土) 19:03:45.63ID:qQirr//DM
おれもテスト
142デフォルトの名無しさん (ワッチョイ d72f-+Tiu)
2019/12/21(土) 21:45:23.13ID:/91O1xjY0
C#でコルモゴロフスミノフ検定した上で、単回帰分析とかするライブラリってありますか?
統計解析するならテキストファイルにデータ書き出して、
PythonとかRにわたすほうがいい?
143デフォルトの名無しさん (スププ Sdbf-hGMP)
2019/12/21(土) 21:47:47.94ID:q7cBKLSTd
>>142
そこはRubyでしょw
144デフォルトの名無しさん (ワッチョイ 77b2-Veox)
2019/12/21(土) 22:46:57.61ID:jv2HuDh00
>>142
R.NET
145デフォルトの名無しさん (ワッチョイ 9f24-prDO)
2019/12/22(日) 00:25:07.44ID:7hF/cDg80
byte[]として受け取ったmp3をファイル化せずにそのままmp3tagの読み書きを行えるライブラリはないでしょうか?
出来る限り通信のやり取りだけで済ませたいため、受け取ったmp3バイナリをそのまま処理して受け流したいと考えています。
taglibは試してみましたが、FileStreamとして渡さないと上手く機能しないようでした
146デフォルトの名無しさん (ワッチョイ 7790-MEwc)
2019/12/22(日) 00:38:07.26ID:GX5OjjKF0
Streamクラスとして抽象化されてるんじゃないの?
taglibは入力にStreamを受け入れんじゃなくて、FileStreamというより具象的な入力を受け入れるような馬鹿な設計になってるの?

byte[]をMemoryStreamでラップして渡せないの?
147デフォルトの名無しさん (ワッチョイ 7790-MEwc)
2019/12/22(日) 00:58:17.93ID:GX5OjjKF0
俺が馬鹿だったかも。書き込みも必要か。

https://docs.microsoft.com/en-us/dotnet/api/system.io.memorystream.-ctor?view=netframework-4.8
リサイズ可能なメモリストリーム作れるかこれ?

作れないなら、変更できるようなインメモリの独自ストリームクラス作るとか。
148デフォルトの名無しさん (アウアウウー Sa5b-kT4h)
2019/12/22(日) 02:10:14.34ID:LPMS/GLqa
ビットマップを編集するライブラリがFileStrem前提になってたら馬鹿設計だけど
Exifを編集するライブラリがそうでも別に馬鹿とは思わないなあ
149デフォルトの名無しさん (ワッチョイ 7790-MEwc)
2019/12/22(日) 04:41:32.86ID:GX5OjjKF0
まじで言ってる?
例えば、カメラで撮影したローカルにあるJPEG画像を投稿サイトにアップロードする機能つくるとき、EXIFを消してアップロードしたいありがちな機能。

MemoryStreamを渡せれば、元のファイル変更せずにメモリ上で修正してアップロードして破棄できる。
同じことをやるにはFileStreamだと一々コピーしないといけない。
150デフォルトの名無しさん (ワッチョイ ff7b-oVqu)
2019/12/22(日) 05:57:32.35ID:R0LOzgYE0
タグ部分と同じ構造体作って該当部分のバイト配列を構造体に変換すりゃ済むんじゃないの
151デフォルトの名無しさん (ワッチョイ f742-prDO)
2019/12/22(日) 08:25:01.65ID:/NGpR+eY0
TaglibSharpの.net Standard版をUWPから使っているが
TagLib.File.IFileAbstractionってのを使ってストリームを操作している
自分でこのインターフェースを実装すれば割と簡単に行けると思うよ
実装してクラスをTagLib.File.Createに渡せば問題ない
152デフォルトの名無しさん (アウアウウー Sa5b-kT4h)
2019/12/22(日) 12:48:45.77ID:d/zyo53Ma
>>149
それ、別にFileStreamを受け取ってStreamを吐く仕様で何も困らないのでは?
153デフォルトの名無しさん (ワッチョイ 9f24-prDO)
2019/12/22(日) 13:18:15.55ID:7hF/cDg80
>>146>>151
ありがとうございます。
IFileAbstractionを実装したクラスでCreateしていましたが、CloseStreamで内部のMemoryStreamをDisposeしてしまっていたため、挙動がおかしくなっていただけでした
TagLib.File.Save()を行うことで初めて内部のstreamにTag情報が書き込まれ、同時にCloseStreamも呼ばれるためそこでは内部のstreamを閉じずに自前の後処理を行ってから閉じることで希望の動作になりました
154デフォルトの名無しさん (ワッチョイ 5701-EwPn)
2019/12/22(日) 16:13:05.02ID:thbQEK090
ヽ(・ω・)/ズコー
まあ、バグ調べてて「俺ってバカ?」って思うことはよくあることだ
バグ作り込む気は全く無いのに、毎度あるのは何でか不思議でならない
(まあ最近は熟知してない言語で作ることが増えてきたのもあるが、COBOLごときでも一緒だったな…)
155デフォルトの名無しさん (ワッチョイ d75f-JuL9)
2019/12/22(日) 22:16:50.41ID:TCqgMSVE0
ライブラリを作ろうかと思うのですが
あるクラスをライブラリ内ではインスタンス化できるようにしたいけど
ライブラリを使う人はインスタンス化できないようにする
というようなことは可能ですか?
参考になるサイトなどありますか?

クラスのプロパティは基本的にすべて読み出しだけ可能にする予定です。
156デフォルトの名無しさん (ワッチョイ 9f2c-thcZ)
2019/12/22(日) 22:22:55.94ID:CUDsNTIh0
コンストラクタをinternalにする
157デフォルトの名無しさん (ワッチョイ 7790-MEwc)
2019/12/22(日) 22:28:00.73ID:t9cAONDx0
>>152
じゃあさあ。ネットワークから受け取った画像をファイルに保存せずに、そのまんまEXIF修正して別のサーバーに送り返す場合、どうするの?

と、使う方次第で色んな用件があるわけ。

実装コスト増えるならまだしも、今回のケースでは読み書きできてシークできるStreamであれば良さそうなのに、それをFileStreamに限定するの意味がわからない。
158デフォルトの名無しさん (ワッチョイ 972d-vnDE)
2019/12/22(日) 22:37:29.12ID:b8EKEEl60
この動画の人がVisual StudioでやっているAuthenticatonをオンにする設定は、dotnetコマンドではどうやるのですか?

159158 (ワッチョイ 972d-vnDE)
2019/12/22(日) 22:45:45.81ID:b8EKEEl60
すまん
自己解決しました
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-3.1&;tabs=netcore-cli
160デフォルトの名無しさん (ワッチョイ 7f0d-9COd)
2019/12/23(月) 02:14:36.96ID:CbUt8X2i0
c#からpythonのmatplotlibを呼んでみたらグラフ描画に10秒くらいかかった・・・
めんどくさい数値演算とかをPythonライブラリに丸投げしたかったけど厳しい
グラフ描画はwinformでやるにしても描画するための連続データを戻り値として受け渡しするのなぁ
161デフォルトの名無しさん (ワッチョイ 77b2-Veox)
2019/12/23(月) 06:05:21.41ID:n/5EZXjd0
>>160
chartじゃだめか?
162デフォルトの名無しさん (スププ Sdbf-TTwh)
2019/12/23(月) 06:33:23.54ID:TTdlQikFd
>>156
ありがとうございます。
難しく考えすぎてました。
163デフォルトの名無しさん (ワッチョイ bfde-/IHk)
2019/12/23(月) 08:20:32.39ID:AV2OtNnH0
>>160
その程度の何が障害なの?
ナメてるのか?
164デフォルトの名無しさん (ラクッペ MMdb-uJpR)
2019/12/23(月) 09:06:54.33ID:5ISBodU5M
>>163
食ってかかるなよ

>>160
ふーん。日記ならママにでも聞かせとけよ
165デフォルトの名無しさん (ワッチョイ 9750-+Tiu)
2019/12/23(月) 14:12:00.92ID:CVji7Zdt0
自分で使う用のWinデスクトップアプリケーションを作ってみたいのですが
VScodeにC#の拡張をインストールしたところ、".net Coreが無い"というメッセージが出ました
.net frameworkを後から入れるつもりだったのですが
現在はframeworkではなくCoreを使用するのでしょうか?

軽くしらべたところ、Coreはサーバサイ用、frameworkはデスクトプ用っぽいんですが
Coreでデスクトップアプリを作成するチュートリアルもあるようでした
166デフォルトの名無しさん (ワッチョイ 1788-CWbB)
2019/12/23(月) 14:29:00.57ID:FZMFlrDL0
coreはサーバー用ではないよ
今ならデスクトップアプリでもcoreで作るけど別にframework使えないってわけでもない
古い環境への配慮とか考えなくていいならcoreでいいんじゃない?
167デフォルトの名無しさん (ブーイモ MMfb-69wU)
2019/12/23(月) 15:12:57.52ID:Gp3oh3j2M
そして System.Drawing の移植性の無さで
泣ける。
168デフォルトの名無しさん (ワッチョイ 5702-Rp4x)
2019/12/23(月) 15:38:13.00ID:Wyd1VJ4y0
WebBrowserでカスタムHeaderの送信とResponse Headerの取得ができません
.net core 3.1を使っています。バグでしょうか?
169デフォルトの名無しさん (ワッチョイ 9750-+Tiu)
2019/12/23(月) 15:46:22.84ID:CVji7Zdt0
>>166
ありがとうございます
Core入れてきます
170デフォルトの名無しさん (スップ Sd3f-UJaa)
2019/12/23(月) 17:45:51.26ID:eQmrU5ERd
>>169
そのレベルだと、VSCodeでxaml手書きはキツいんじゃない?素直にVisual Studio使いな
171デフォルトの名無しさん (ブーイモ MMcf-70ba)
2019/12/23(月) 18:05:28.45ID:oBvZW+b7M
今ならBlazorが簡単で良いよ
一般常識レベルのHtmlがわかってれば後は直感で作れる
172デフォルトの名無しさん (ドコグロ MMbf-On3P)
2019/12/23(月) 18:16:31.10ID:+KUE/8IiM
C#使いたがる人ってWebに苦手意識がある人が多い印象だなあ
最初からrazor使えるような奴はそもそもC#(というかWindows開発)を選ばないと思うよ
173デフォルトの名無しさん (ワッチョイ 9701-69wU)
2019/12/23(月) 18:22:36.62ID:P6gAM1Rw0
嫌ぁCAD+画像処理屋なので、webじゃ
やっとれんだけですよ。
SPIDERがwebに乗って実用化されたら
考える。
174デフォルトの名無しさん (ドコグロ MMbf-On3P)
2019/12/23(月) 18:28:43.48ID:+KUE/8IiM
ほらね
175デフォルトの名無しさん (ワッチョイ 9f52-1WEo)
2019/12/23(月) 18:44:33.92ID:kZpvALBe0
>>172
お前はC#スレに来て何がしたいんだ?
176デフォルトの名無しさん (オイコラミネオ MM4f-isjD)
2019/12/23(月) 19:08:35.91ID:kDR2U+EyM
なにがほらねなんだろ
177デフォルトの名無しさん (ワッチョイ 9701-69wU)
2019/12/23(月) 19:10:12.11ID:P6gAM1Rw0
法螺ね
178デフォルトの名無しさん (スププ Sdbf-FdL6)
2019/12/24(火) 11:17:43.39ID:pJ4JfZbNd
prism の質問もここでいいですか?
179デフォルトの名無しさん (ワッチョイ f761-prDO)
2019/12/24(火) 11:23:10.23ID:rY4O3lLw0
許すん
180デフォルトの名無しさん (ドコグロ MMdf-On3P)
2019/12/24(火) 11:27:15.31ID:4hGbK3LLM
今のprismはMSとは無関係な単なる野良ライブラリの一つだからダメ
181デフォルトの名無しさん (スププ Sdbf-hGMP)
2019/12/24(火) 12:29:36.63ID:2vtH2tiGd
>>178
C#で使うならOK
182デフォルトの名無しさん (ワッチョイ 9701-69wU)
2019/12/24(火) 12:45:35.02ID:+zwswjcb0
skiasharp Microsoftの純正ライブラリー
扱いなのに(nugetでは)
情報が少なくて笑える
人脈が無いとこういう扱いなのかw
183ャfフォルトの名末ウしさん (ワッチョイ f761-prDO)
2019/12/24(火) 13:55:17.48ID:rY4O3lLw0
流れ読まずに。

private int hoge(){
 using(/* なんか入る */){
  /* ひたすら処理 */
  return nanka;
 }
}

こういうreturnの書き方は一般的なのでしょうか?
usingの中カッコの外にreturn文がないと値の返し損ねがないか心配なのですが
VisualStudioの警告は出ないしアリなのかナシなのか諸兄のご意見をいただきたく。
184デフォルトの名無しさん (ドコグロ MMdf-On3P)
2019/12/24(火) 14:15:20.75ID:4hGbK3LLM
>>183
普通にアリ
メソッドから戻る直前にDisposeが実行される
なお、C#8以降では以下のように書けるため、従来のusingブロックはほとんどの場合必要なくなった
using var x = new Hoge("Arial", 10.0f);
x.Foo();
// メソッドを抜けるときに自動的に x.Dispose が呼ばれる
185デフォルトの名無しさん (ワッチョイ 1788-CWbB)
2019/12/24(火) 14:42:06.62ID:JGZzQNV20
>>183
returnが無いパスがあったら警告出るよ
警告が出ないということは必ずreturnが呼ばれている
186デフォルトの名無しさん (スププ Sdbf-FdL6)
2019/12/24(火) 16:17:46.84ID:pJ4JfZbNd
>>181,179
ありがとう。DIコンテナにUnityを使ってて、App.xaml の RegisterTypes で RegisterSingleton で登録する共用クラスがあるんだけど、このコンストラクタに引数を渡したいです
UnityContainerの中で生成するタイミングがわからなくて渡し方がわかりません
187デフォルトの名無しさん (スププ Sdbf-FdL6)
2019/12/24(火) 16:20:01.66ID:pJ4JfZbNd
あ、引数はユーザーコンフィグから取得したいです
188デフォルトの名無しさん (ワッチョイ f761-prDO)
2019/12/24(火) 17:24:40.68ID:rY4O3lLw0
>>184,185
ありがとうございますm(_ _)m
usingの中カッコの中で変数宣言してそれを返せて終われたらいいなと思ってたのでこの書き方でやってみます
189デフォルトの名無しさん (ブーイモ MMcf-70ba)
2019/12/24(火) 19:00:31.16ID:yk68HN8sM
>>187
コンフィグクラスかコンフィグ読み込みクラスを注入すればいいよ
190デフォルトの名無しさん (ブーイモ MMfb-Veox)
2019/12/24(火) 19:05:38.59ID:0ojb25IiM
>>184
まじ?C#は洗練されてるね
191デフォルトの名無しさん (ワッチョイ 772c-FdL6)
2019/12/25(水) 00:57:35.17ID:BOYk9T8B0
>>189
ああそりゃそうか。DIコンテナがあるんだからインジェクションすればいいだけなんだねありがとう
192デフォルトの名無しさん (ワッチョイ 972d-BqQa)
2019/12/25(水) 21:07:41.04ID:nysCvhr10
.netライブラリでかすぎじゃね?
193デフォルトの名無しさん (ワッチョイ f12d-vQnI)
2019/12/26(木) 03:51:48.92ID:bzjIw0U90
作ったプログラムをUbuntuのバックグラウンドで動かし続けたいんだけどさあ
nohup dotnet run &
だと、動かないのかすぐ終わっちゃうのかわかんないけどダメだったぜ
どうすればよかんべえな?
194デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
2019/12/26(木) 09:37:04.58ID:qmNoWNu8F
>>192
既にライブラリじゃないですね
195デフォルトの名無しさん (ドコグロ MM40-NvuD)
2019/12/26(木) 10:09:04.01ID:Wx+k6OqqM
>>193
Docker使うのが簡単だしスキル的にも得るものが大きい
196デフォルトの名無しさん (スップ Sdc4-dFlL)
2019/12/26(木) 22:14:19.89ID:z0a0esehd
>184
1000行近い関数が沢山あるクソコードだと以前の方が便利だな(涙目)
197デフォルトの名無しさん (ブーイモ MM5e-7Yd4)
2019/12/26(木) 22:19:53.43ID:YRIJALUmM
メソッド内にラノベでも書いてんのか?
198デフォルトの名無しさん (ワッチョイ 082c-avnG)
2019/12/27(金) 23:38:38.82ID:rZaePzzs0
頻出パターンだと思うんだけど、
ツリービューとかデータグリッドを選択したら詳細を表示する画面で、詳細部分のリジョンにナビゲーションで登録する時って、
詳細のビューのコードビハインドに書くしかないのかね。
サンプルがそうなってるけど、コードビハインドに書くのに抵抗がある
199デフォルトの名無しさん (アウアウウー Sa83-BCWm)
2019/12/28(土) 00:09:08.65ID:L8M+Vbvra
React等の仮想DOMを使ったモダンなMVVM系Webフレームワークでは、コンポーネントとしてVMを階層化する。
この場合、親VMが子VMとしてツリービューVMと詳細VMを持つ形になるだろう。
そして、ツリービューの選択項目が変更されたらツリービューVMがそれを受けて親VMに通知し、親VMが詳細VMの表示対象データのプロパティを更新する。
WPFの原始的なMVVMではそのへんはあまり洗練されていないし、そもそもWPF自体誰も使ってないから特にベストプラクティスのようなものも無い。
WebのMVVMを真似するのもコードビハインドを書くのも君の自由だ。
200デフォルトの名無しさん (ワッチョイ 2590-NGpf)
2019/12/28(土) 02:11:10.25ID:n5/LKlnD0
「リジョンのナビゲーションで登録」
意味不明
201デフォルトの名無しさん (ワッチョイ 3538-n2a0)
2019/12/28(土) 04:17:29.52ID:j+kocMTA0
「詳細部分のregion(領域)」までは何とか…
202デフォルトの名無しさん (ワッチョイ 082c-avnG)
2019/12/28(土) 11:25:47.63ID:aAyiCa3V0
>>200
ごめんなさい。モジュールでレジスタービューウィズリジョンじゃなくて、レジスターフォーナビゲーションを使って登録するとこのことです
公式サンプルのベーシックリジョンナビゲーションの書き方をみての質問です
203デフォルトの名無しさん (ワッチョイ 3538-n2a0)
2019/12/28(土) 11:47:20.50ID:j+kocMTA0
クソワロタ
204デフォルトの名無しさん (ワッチョイ b2de-zEes)
2019/12/28(土) 11:53:28.80ID:mKsVnGCZ0
そうか、よくわからないけど解決したなら良かった
205デフォルトの名無しさん (ワッチョイ 4624-K0SF)
2019/12/29(日) 16:58:05.30ID:Jl+XQSo+0
JavaScriptによって書き換えられた後のhtmlを取得する方法ってWebBrowserでInvokeScriptなどを使用する以外にはないでしょうか?
出来ればHttpClientやWebClientで済ませたいのですが
206デフォルトの名無しさん (ドコグロ MM36-BCWm)
2019/12/29(日) 17:07:07.30ID:J2Lmqp1KM
>>205
Seleniumを使いましょう
207デフォルトの名無しさん (アウアウエー Sa6a-n/Md)
2019/12/30(月) 00:00:44.86ID:/k8PkqODa
headlesschromeでええやないか
208デフォルトの名無しさん (ワッチョイ 4624-K0SF)
2019/12/30(月) 09:57:04.44ID:yg3zWj/W0
WebBrowserクラスやヘッドレスブラウザを使うところまで行ってしまうとC#で作る利点が薄れてしまってChrome拡張で作るか、となってしまうんですよね・・・
一般的な行数のスクリプトであればソースを見てC#のコードに置き換えるということで今まで解決してきたのですが、そうはいかない量のコードだとやはりブラウザに頼る他ないですよね
209デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 13:48:14.76ID:sCWLu8Vm0
コントロールに適用したいStyleがあるので、Generic.xaml を作成して、
App.xaml で ResourceDictionary.Merge Dictionaryしました。その中で自作のコンバータークラスを使いたくて定義したのですが、どうしても認識してくれません。ビルドは通るのですが、実行時に見つからないエラーがでます(xaml parse exeption)
同じ定義を App.xaml の中で、Generic.xamlをマージする前に書くと、何故か実行時にエラーも出ませんし、ちゃんと動きます。
Generic.xaml の中でコンバーターを定義することは出来ないのでしょうか
210デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 13:48:51.61ID:sCWLu8Vm0
すみません。相談室が荒れてるのでこっちで質問させてくださいm(_ _)m
211デフォルトの名無しさん (ラクペッ MMb7-f88z)
2019/12/30(月) 14:36:52.54ID:Nw7Rp9O2M
メンバーはこっちも同じだから直に荒れる
212デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 16:01:56.74ID:sCWLu8Vm0
まじすか(´・ω・`)
using について論議してたころはまだ読めたけど、一昨日ぐらいからダメな言い争いになってる
213デフォルトの名無しさん (ワッチョイ c461-K0SF)
2019/12/30(月) 18:18:27.76ID:ZR5/35mb0
>>210
で、質問はなんなんだい?答えてやらないが読むだけなら読んでやるぞい
214デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 18:29:26.91ID:sCWLu8Vm0
>>213
順番が前後してごめんなさい
質問は>>209です
215デフォルトの名無しさん (ワッチョイ 0c01-PaHz)
2019/12/30(月) 20:45:49.11ID:w8cwRlld0
>>209
>Generic.xaml の中でコンバーターを定義することは出来ないのでしょうか

Generic.xamlの中では定義できないんじゃないかと思うなら
自分で違う任意のxamlを定義してApp.xamlでMergedDictionariesして
使えるかどうかで切り分けたらいいんじゃない?
216デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/30(月) 20:48:13.19ID:0ybHI6rZ0
>>214
> Generic.xaml の中でコンバーターを定義することは出来ないのでしょうか
無理なんじゃねーの?
https://social.msdn.microsoft.com/Forums/silverlight/en-US/c4a84046-0b97-4225-a911-973c24117d79/converters-in-genericxaml?forum=silverlightnet
217デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 20:57:31.58ID:sCWLu8Vm0
>>215,216
そうかコンバーターって静的でもインスタンスが必要だからリソースとしては定義できないってことですかね…。同じことしてる人がいるもんですね。ありがとうございます。
218デフォルトの名無しさん (ワッチョイ 0c01-PaHz)
2019/12/30(月) 21:10:04.93ID:w8cwRlld0
マジカヨ

>>216
リンクの回答者は書き方こう変えればできるよって書いてるじゃん
219デフォルトの名無しさん (ワッチョイ 0c01-PaHz)
2019/12/30(月) 21:19:26.09ID:w8cwRlld0
MarkupExtensionを継承するのが一番楽
220デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 21:22:58.79ID:sCWLu8Vm0
>>218
言葉足らずですみません
質問にも書いている通り、Generic.xaml の外側に書けば view でも App.xaml でも定義出来ることは確認してるんです。ただ generic.xaml の中でしか必要ないのであれば、generic.xaml の中に書けないかというのが質問でした
221デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/30(月) 21:40:03.37ID:0ybHI6rZ0
>>218
> リンクの回答者は書き方こう変えればできるよって書いてるじゃん
いや、それがGeneric.xamlに書くのを諦めろんってことなんだが…
222デフォルトの名無しさん (ワッチョイ 0c01-PaHz)
2019/12/30(月) 22:31:58.88ID:w8cwRlld0
>>220
viewやApp.xamlで定義したんじゃ切り分けにならない
「見つからない」のがなぜか考えて切り分けしていかないと

>>221
回答者が書いてるのはGeneric.xamlの一部
223デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/30(月) 23:48:06.69ID:sCWLu8Vm0
>>221,222
あーなるほど。すみませんいただいた回答の記述を読み違えました。これ参考にしてやってみます
MarkupExtension を継承するのはやったことないので、これも調べてやってみます。ありがとう
224デフォルトの名無しさん (ワッチョイ d81b-hoej)
2019/12/31(火) 00:04:05.36ID:uRSSI5660
あと切り分け頑張ります
225デフォルトの名無しさん (ワッチョイ 2e10-ZrpS)
2020/01/01(水) 20:26:08.63ID:qG+Zau3f0
Generic.xamlが問題なのではなく、TemplateBindingだとダメ。
動的なものはBindingで指定しませぅ。

って、もう解決したかな...
226デフォルトの名無しさん (ワッチョイ 0245-E95m)
2020/01/04(土) 17:30:49.79ID:lajN/sCS0
デザインパターン使う場合のクラス名とかってそのパターンに則ったクラス名付けた方がいいよね?
StrategyパターンならContextとかXXStrategyとか

Contextはふわっとしててイマイチな気がするんだけどXXContextにしたほうがいいんだろうか
227デフォルトの名無しさん (オッペケ Srf1-Fu3+)
2020/01/04(土) 18:24:46.76ID:NeUDcD2dr
コードを見る人のレベルに合わせる
書いてて意味が分からない人達にそれをやっても理解を妨げるだけ
228デフォルトの名無しさん (ワッチョイ 0245-E95m)
2020/01/04(土) 22:40:12.56ID:lajN/sCS0
自学習がてら書いてます
純粋にコードベースで考えた場合にどうあるのが望ましいかを身に付けておきたいです
229デフォルトの名無しさん (アウアウウー Saa5-VrsN)
2020/01/04(土) 22:43:17.90ID:1qz+oavua
>>226
MSは基本的にデザパタ用語を名前に含めない
あくまでMSの流儀なのでお前が従う筋合いはないが、少なくとも.NETではあまり好まれない傾向があるようだ
230デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/04(土) 23:23:49.91ID:TMQyheu90
>>228
まずは細かいところに引っ掛からず自分の分かりやすい命名で学習を進めればいいよ。
慣れてきたら標準的ライブラリや参考書等を真似たりして自然に落ち着くとこに落ち着くと思う。
231デフォルトの名無しさん (アウアウウー Saa5-pIXJ)
2020/01/05(日) 18:41:51.12ID:k4uQmGiya
関数名を文字列で指定して実行する方法ってないですか?
テスト用の関数が何個もあってif文による分岐とか面倒過ぎます。
232デフォルトの名無しさん (ワッチョイ e179-E95m)
2020/01/05(日) 18:43:29.73ID:aAOSNRx/0
リフレクションでググれ
233デフォルトの名無しさん (アウアウウー Saa5-pIXJ)
2020/01/05(日) 18:46:16.34ID:k4uQmGiya
>>232
うわぁ知らなかった
つーかググってくださいだろ
234デフォルトの名無しさん (ワッチョイ e179-E95m)
2020/01/05(日) 18:48:19.94ID:aAOSNRx/0
何いってんだこいつ
235デフォルトの名無しさん (ワッチョイ c263-rB7U)
2020/01/05(日) 18:50:27.53ID:bXDAqvmf0
>>233
質問してるくせに上から目線の上にお礼も言えないやつはさっさと死んでください
236デフォルトの名無しさん (アウアウウー Saa5-pIXJ)
2020/01/05(日) 18:54:40.52ID:k4uQmGiya
>>235
すいません本当は感謝してます
それにしてもこのスレ、入門っていう割には
ifとかforの質問がなくて何か上級者ぶってる気がします
DOMとかMVVMとかそんな文法知らないんですけど
237デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/05(日) 19:25:28.08ID:y+bEWN5I0
>>236
初心者と言ったってそれが指す範囲に幅があるし、初心者なんだから自分の知らないことが出てきて当たり前だろう。
いちいちつまらないケチを付けないと気がすまないタイプなのか?
238デフォルトの名無しさん (ワッチョイ c259-E95m)
2020/01/05(日) 20:02:43.18ID:crBHIl3n0
>>229
>>230
ありがたや
239デフォルトの名無しさん (オッペケ Srf1-71dz)
2020/01/05(日) 22:30:14.47ID:rgbPi9HCr
Cにおけるerrno.h のようなものは無いですか?
コンソールアプリで、終了コードにマジックナンバー書きたくないのですが
240デフォルトの名無しさん (ワッチョイ e563-IJNu)
2020/01/05(日) 22:34:35.66ID:clFA3Pd30
ifやforで質問があるならすりゃいいじゃん
過去スレ全部見てるわけじゃないが146もいってりゃそういう質問もあっただろうよ
241デフォルトの名無しさん (ワッチョイ e563-IJNu)
2020/01/05(日) 22:41:17.44ID:clFA3Pd30
>>239
自分で定義すればいいのでは?
.NETにはたぶんそういった類のものは無いんじゃないかな
242デフォルトの名無しさん (ワッチョイ 027d-UAPS)
2020/01/05(日) 22:45:00.85ID:u1SBF/rW0
.NetFWももう4.8か
VS2019入れてビックリだよ
243デフォルトの名無しさん (アウアウウー Saa5-VrsN)
2020/01/05(日) 22:51:30.91ID:3XFOch5ma
>>239
勘違いしてるみたいだが、プログラムの終了コードとerrno.hは無関係だぞ
244デフォルトの名無しさん (ワッチョイ 422c-RM0q)
2020/01/05(日) 23:00:41.14ID:BPHXVrhY0
初心者は馬鹿だから、勉強項目のレベルが分かってない!

初心者のくせに、リフレクションみたいな黒魔術・メタプログラミングをやりたがるw
自分がやりたい機能の、勉強レベルが分かってないから、
難しい事でも、それが分からずにやりたがる

勉強レベル
1. 初心者用の本
2. Effective 何々、逆引きレシピ本
3. フレームワーク・テスト技法
4. メタプログラミング(黒魔術、動的定義)
245デフォルトの名無しさん (オッペケ Srf1-Fu3+)
2020/01/05(日) 23:35:24.29ID:VZarSSAfr
文字列で指定した関数を実行したいということは数十年前から初心者にはありがちな願望だが
それはダメなやり方とされている

約40年前の自分も同じ願望を持った
246デフォルトの名無しさん (オッペケ Srf1-71dz)
2020/01/05(日) 23:52:29.48ID:pAh15eMMr
>>243
すまん、しばらく使ってないからうろ覚えなんだ
cstdlib.h
だっけか

とりあえず

return 0;

とか

Environment.exit(0);

とかせずに済む方法が知りたい。
247デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/05(日) 23:59:48.01ID:NzdiaSgk0
自前でEnumを書く
248デフォルトの名無しさん (ワッチョイ ade6-UAPS)
2020/01/06(月) 00:03:15.48ID:CTb2ztSI0
>>245
コード書き換えは自己進化につながるからAIの人類侵攻を防ぐために止むを得なかったのだ。
249デフォルトの名無しさん (オッペケ Srf1-71dz)
2020/01/06(月) 00:28:34.84ID:D/5LCEUkr
>>247
つまりシステム標準の定数定義は無いということ?
250デフォルトの名無しさん (ワッチョイ c263-rB7U)
2020/01/06(月) 00:39:27.05ID:z7GoHnb80
>>249
https://docs.microsoft.com/ja-jp/dotnet/api/system.environment.exit?view=netframework-4.8
@No__t-0 パラメーターの場合は、0以外の数値を使用してエラーを示します。 アプリケーションでは、独自のエラーコードを列挙で定義し、シナリオに基づいて適切なエラーコードを返すことができます。
たとえば、必要なファイルが存在しないことを示す値1を返し、ファイルの形式が正しくないことを示す値2を返します。 Windows オペレーティングシステムで使用される終了コードの一覧については、Windows のマニュアルの「システムエラーコード」を参照してください。

https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes?redirectedfrom=MSDN
251デフォルトの名無しさん (オッペケ Srf1-71dz)
2020/01/06(月) 01:45:05.98ID:D/5LCEUkr
>>250
エラー以外が 0 っていう定義は、C(Unix)でもそうだからわかるけど、その0を定義してる、
Cにおける stdlib.h の EXIT_SUCCESS のようなものは無いの?
あと、「@No_t-0パラメータ」ってなんでしょう?
ググったり、手元にあるオライリーの「プログラミングC#」の索引を調べてみましたが、それらしい情報が出てきません
252デフォルトの名無しさん (ワッチョイ c263-rB7U)
2020/01/06(月) 01:51:03.87ID:z7GoHnb80
>>251
>Cにおける stdlib.h の EXIT_SUCCESS のようなものは無いの?
ありません
何かエラーで意味ある情報出したいのなら定義済みの例外投げるのがいいんじゃないかな
それでも成功したときは情報出せないけど

>あと、「@No_t-0パラメータ」ってなんでしょう?
英語版見た感じ機械翻訳のミスっぽい
https://docs.microsoft.com/en-us/dotnet/api/system.environment.exit?view=netframework-4.8
253デフォルトの名無しさん (オッペケ Srf1-71dz)
2020/01/06(月) 01:58:33.40ID:D/5LCEUkr
>>252
>>239
>コンソールアプリで、終了コードにマジックナンバー書きたくないのですが

という前提なので例外は問題の解決になりません

標準の定義が存在しないことが断定できれば、独自定義を持つ理由にできるのですが
254デフォルトの名無しさん (アウアウウー Saa5-CnQr)
2020/01/06(月) 02:10:48.41ID:UfUfyfRwa
なんか日本人的だなあw

標準の定義が存在しようがしまいが終了コードの意味なんて
使う人が分かればそれでいいでしょ。

そもそも今時そんなもの使う人いるのかなw
いないと思うよ。だって前時代的な過去の遺物だから
255デフォルトの名無しさん (オッペケ Srf1-71dz)
2020/01/06(月) 02:21:24.64ID:D/5LCEUkr
UIアプリだと人がついてなきゃいけないから自動化できんのです
256デフォルトの名無しさん (ワッチョイ e179-E95m)
2020/01/06(月) 05:58:28.75ID:YSZbxSNB0
例外と終了コードの対応Dictionaryを作って
最上層で例外をキャッチした場合はそれを終了コードにすればいい

そもそも特殊な場面を除くとしたときC#使うような環境で
終了コードなんて 0 or not 0 以外で使う奴いるのか?
エラーメッセージを直接ログに吐くのが主流だろう
257デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 07:45:31.89ID:i8hCm9on0
いや、コンソールアプリの終了コードだから、最初から最上層のはなししかしてないんです。

>そもそも特殊な場面を除くとしたときC#使うような環境で
>終了コードなんて 0 or not 0 以外で使う奴いるのか?

言ってることは理解できるし、自分もそう思うけど、

それは

Environment .exit 0;

という記述の妥当性は場数を踏まないと理解できない、ってことじゃね?
場数を踏まないと理解できないようなコードを最上層には置きたくない
258デフォルトの名無しさん (スフッ Sd62-Cg7n)
2020/01/06(月) 10:35:04.71ID:t86QU+4Gd
いやそれくらいenum書けよ…
259デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/06(月) 10:45:06.66ID:vrofCXbf0
>>257
何を拘ってるのか理解できないな。
ソフトウェアの外部仕様として終了コードの値と意味を定義して、それをenumでソースに書けばいいだけでないの?
260デフォルトの名無しさん (ワッチョイ be7c-lxBK)
2020/01/06(月) 11:05:38.74ID:jysEDvVa0
もともとの質問としては終了コードのシステム定義がないのかって話でしょ
.NETの基本クラスライブラリでは定義されてない、で終わる話
じゃあどうするかとかは別の話
261デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 11:07:21.09ID:i8hCm9on0
ローカルコード定義するならenum使っても意味ないような
ローカルで閉じてるシステムで使うならそれでもいいかも知れないけど
262デフォルトの名無しさん (スフッ Sd62-Cg7n)
2020/01/06(月) 11:08:56.96ID:t86QU+4Gd
>>261
じゃあ何がしたいんだよ
263デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 11:13:06.51ID:i8hCm9on0
>>262
>>239
の記述では足りませんか?
264デフォルトの名無しさん (スフッ Sd62-Cg7n)
2020/01/06(月) 11:17:28.29ID:t86QU+4Gd
>>263
だからそれならenum書けよ
265デフォルトの名無しさん (ワッチョイ 312f-RM0q)
2020/01/06(月) 11:25:58.31ID:Hv00JF5o0
そもそもここでそれを聞いて
>標準の定義が存在しないことが断定
できるって理論がおかしいけどな
266デフォルトの名無しさん (ラクッペ MM85-QvtZ)
2020/01/06(月) 11:27:38.34ID:fbdBGVpXM
新春ガイジ品評会
267デフォルトの名無しさん (ワッチョイ d188-IJNu)
2020/01/06(月) 11:28:48.24ID:jV/UXfSz0
enumなりconstなりstatic readonlyなりで定義
外部に公開する必要がある情報ならreadme等に記載
OSSならコード見ろ
仮に標準で定義されていても各数値が何を意味しているのか?はドキュメントかコードを参照するしかないじゃん
268デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 11:50:48.98ID:i8hCm9on0
>>264
>>261

>>267
数値の意味と、それがどこで定義されているかは別の問題では?

標準で定義されていれば、例え規格が変わっても、対応した処理系でコンパイルしなおせば同じコードがそのまま使えるけれど、ローカルで定義していたらそうはいかない
269デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/06(月) 12:02:59.68ID:vrofCXbf0
>>268
そもそもerrno.hが終了コードを表しているというのが勘違いだぞ。あれはシステムコールや標準ライブラリ関数の戻り値の定義であって、あくまでもCのコードの中の話だ。
270デフォルトの名無しさん (JP 0H4a-Cg7n)
2020/01/06(月) 12:13:01.97ID:7++dQVmoH
>>268
何の規格の話?お前のシステムの規格が変わったのなら、なおさら独自のenum等で定義しておかなきゃバグるやろ
271デフォルトの名無しさん (ワッチョイ 06de-HDsw)
2020/01/06(月) 12:25:01.14ID:Vt94EpB40
そこまで言うからには
もちろんコマンドラインで
-h
ってやったら
戻り値に関するヘルプも出るんだろうな
俺は見ないけど
272デフォルトの名無しさん (ワッチョイ 814f-olRn)
2020/01/06(月) 13:03:54.64ID:HSlK76Pq0
初心者のつまらん質問で申し訳ありません
メッセージボックスを親フォームの中央に表示させたくて、方法を探したところ
Win32APIを使った方法を見つけましたが、結構コード量が多くて面倒くさそう・・・
これなら自前のモーダルフォームを作って親フォームの位置取得して表示させる方が簡単ですかね?
皆さんはどうされてます?
273デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 13:04:51.24ID:78RinjQr0
>https://docs.microsoft.com/en-us/dotnet/api/system.environment.exit?view=netframework-4.8
↑ここ読んでも分からないの?
ピンポイントで教えてもらってるのに
274デフォルトの名無しさん (ワッチョイ be7c-lxBK)
2020/01/06(月) 13:17:35.30ID:jysEDvVa0
すでにコードがあるならコピペするだけじゃね?
ライセンスは知らん
275デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/06(月) 13:54:30.86ID:vrofCXbf0
>>269
誤りがあったので訂正。
戻り値そのものでなく、戻り値がエラーを示した場合に参照するerrnoの値(エラー番号)だな。
276デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 15:54:50.90ID:i8hCm9on0
>>269
>>246
277デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 15:57:32.58ID:i8hCm9on0
>>270
>>261
278デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 16:03:27.39ID:codN4GMx0
>>277
は?
279デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 16:16:51.68ID:i8hCm9on0
>>278
>>277
がどうしたの?
280デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 16:25:16.18ID:codN4GMx0
ごめんキチガイに触ってしまった
281デフォルトの名無しさん (ワッチョイ 41e8-E95m)
2020/01/06(月) 17:00:25.20ID:/c/Em2OW0
>>272
APIをラップしたクラスを作ることをお勧めする

自分でFormから作ってもいいけど文字列に合わせてウィンドウサイズを調整したり
パラメータに合わせてアイコンとかボタンを作ったりする方が面倒だと思うよ
282デフォルトの名無しさん (オイコラミネオ MM49-Ivq/)
2020/01/06(月) 17:11:39.14ID:D3635f2eM
>>272
そんなの気にしてたの最初の頃だけだったな〜
自前でフォーム作ってもアイコンとかほぼ互換にするには手間かかる
APIでも大して変わらんのでは

他でも使い回すなら手間かかるかではなく、使い勝手がいいように組める方優先
283デフォルトの名無しさん (ワッチョイ 42ad-f3Fz)
2020/01/06(月) 18:34:31.97ID:HrPzlOWn0
おそらくエラー定義に拘ってる人は
元々自分で定義したらC使いの上司に
「EXIT_SUCEESSとかあるだろが二重定義するなゴラァ!」
とレビューで怒られて
「自分で定義してね♡」って書いてある公式ドキュメントが欲しいんだと思う
上司を納得させられる
284デフォルトの名無しさん (スップ Sdc2-IJNu)
2020/01/06(月) 18:39:19.67ID:kN/rUhZhd
そういう話だったのになぜか途中からどこで定義するのか問題にすり替えた
どこで定義されていようが最終的には同じなのに
285デフォルトの名無しさん (ワッチョイ 89ad-xMc7)
2020/01/06(月) 18:58:11.81ID:fXTekjlj0
>>272
WH_CBTをグローバルフックして表示位置を変更だな
286デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 19:01:20.67ID:codN4GMx0
>>283
>>273
287デフォルトの名無しさん (アウアウウー Saa5-CnQr)
2020/01/06(月) 19:09:21.84ID:vUR1r/Pua
>>272
自分なら自作するというかしてました。
標準のMessageBoxは使い辛いところが多いので。

(1) モーダルじゃない表示も可能
(2) カウントダウンして自動的に消える
(3) 背景だけ半透明表示可能

ついでにこんな機能付きのを作ったらどうでしょうか。
288デフォルトの名無しさん (ワッチョイ 4602-71dz)
2020/01/06(月) 19:12:29.35ID:i8hCm9on0
>>284
だから、処理系で定義されてるのとローカルで定義されてるのじゃ根本的に違うよ
ローカルで定義してて変更したらソースコードのリビジョンが変わる
処理系の変更だけならビルド番号が変わるだけ
289デフォルトの名無しさん (ワッチョイ 49a7-HDsw)
2020/01/06(月) 19:19:01.72ID:NtfTHL6y0
たかが終了コードの何を想定してるの?
290デフォルトの名無しさん (ワッチョイ ed0c-UAPS)
2020/01/06(月) 19:38:09.46ID:k52Bb7eZ0
わかった、話をまとめよう

Q. 定義済みのリターンコード無いの?
A. 無い

では次の方どぞ〜
291デフォルトの名無しさん (ワッチョイ 42ad-f3Fz)
2020/01/06(月) 19:43:24.53ID:HrPzlOWn0
>>286
システムエラーコードとアプリケーションエラーコードがごっちゃに書いてあるのが混乱の元な気がしてきた

"In your application, you can define your own error codes in an enumeration, and return the appropriate error code based on the scenario"
canが弱く見えるのでは
「C#はヘッダファイルとかないから各自自分で定義するように!」くらいあると

そっから飛べる先に
https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499-
とかがあってさも定数があるかのように見えるのも混乱のもとかと

まあ"use a non-zero number to indicate an error"と書くなら最低ゼロくらいは定義しといてくれというのはわからんでもない
292デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 19:43:37.98ID:codN4GMx0
>>288
処理系で定義?????
293デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 19:44:51.56ID:codN4GMx0
>>291
別に定義しなくてもいいからcanなんでしょ
294デフォルトの名無しさん (ワッチョイ 027d-UAPS)
2020/01/06(月) 20:48:06.04ID:2EPFHDaI0
コンソールはスレッドセーフなのため?
マルチスレッドで文字出す
そしてもエラーがおきないか?安全か?
295デフォルトの名無しさん (ワッチョイ 89ad-G+Sj)
2020/01/06(月) 20:52:31.08ID:fXTekjlj0
>>294
いけぬま?
296デフォルトの名無しさん (オッペケ Srf1-jmyp)
2020/01/06(月) 21:01:18.24ID:3fXeZgESr
処理系で想像してる粒度が違う気がするけど
.NET Frameworkとしては定義されてるものは無いで終わりだろ
297デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 21:31:26.23ID:78RinjQr0
>>291
その混乱は99.9%読み手の問題
298デフォルトの名無しさん (アウアウウー Saa5-qQU+)
2020/01/06(月) 22:48:28.16ID:mEVq710ia
お前らC#でWebサーバー建てたことありますか?
変な案件やらされそうで新年早々ウツ
299デフォルトの名無しさん (ワッチョイ c263-rB7U)
2020/01/06(月) 22:51:30.20ID:z7GoHnb80
>>298
さすがにやったことないな
ググッたら前例はあった
https://www.c-sharpcorner.com/article/creating-your-own-web-server-using-C-Sharp/
300デフォルトの名無しさん (ワッチョイ c2ad-Cg7n)
2020/01/06(月) 22:54:19.72ID:codN4GMx0
>>298
Kestrelじゃなくて?
301デフォルトの名無しさん (ワッチョイ c259-E95m)
2020/01/06(月) 23:07:18.60ID:D2EGtjEk0
任意に呼び出せる100個程度の文字列定数を作りたい時って地道に宣言するしかないよね?
enumは使えないしDictionaryはヌルポこわいし

>>298
IISとかではなくて?
302デフォルトの名無しさん (ワッチョイ 7197-IH4P)
2020/01/06(月) 23:14:02.24ID:v3NiRowX0
>>301
地道に宣言するにしても、Dictionaryに地道に値を入れていく以外に簡単に生成できる方法がある
(テキストから読み込むとか、keyとvalueが同一でよい)のなら、一旦Dictionaryを作って
そこからC#のコードを文字列処理で生成してソースコードにコピペとかすると楽だよ。
C#コードの生成はもちろんC#以外の言語でもなんでもいいから慣れてる言語でやればいいし。
303デフォルトの名無しさん (ワッチョイ e179-E95m)
2020/01/06(月) 23:14:03.88ID:YSZbxSNB0
>>301
日本語の意味が取れないからどういうのを想定してるか具体例を書いてくれ
304デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/06(月) 23:22:52.50ID:78RinjQr0
constでコンパイル時に解決したいというのでなければリソースファイルを使う
305デフォルトの名無しさん (ワッチョイ 422c-RM0q)
2020/01/06(月) 23:58:53.91ID:jMeFAWx00
どうせ戻り値は、4バイト整数だろ

signed int, -2,147,483,648 〜 2,147,483,647
unsigned int, 0 〜 4,294,967,295

システムが、0 〜 1,073,741,823
カスタムが、1,073,741,824 〜 2,147,483,647
の範囲を使うとして、

ひとまずカスタムは、1,073,742,000 〜 1,610,612,000 の範囲を使っておけばよい
306デフォルトの名無しさん (ワッチョイ e563-IJNu)
2020/01/07(火) 00:06:26.34ID:W22n+t+k0
処理系が正確に何指してるか不明ではあるが.NETのバージョンとかコンパイラのバージョンだったとして…
それ更新したら普通バージョン上げないの?
ソースコード変わってないからビルド番号しか上げない、みたいな運用聞いたこと無いけど…
乗っかってる大元を変えるって結構大きな変更だからコードの変更が一切不要でも念の為リビジョンなりバージョンなり上げない?
307デフォルトの名無しさん (ワッチョイ 4224-UAPS)
2020/01/07(火) 08:52:49.60ID:xOWyMMFH0
htmlファイルをディスク上に作らずに、こちらのプログラム上で仮想生成したhtmlをWindows規定のブラウザで開かせる方法ってないでしょうか?
ウインドウメッセージなどでデータを送りつける等の方法があれば良いのですが
308デフォルトの名無しさん (ワッチョイ 7133-988m)
2020/01/07(火) 09:00:28.70ID:JXhmELVL0
詐欺請求マルウェアかよw
309デフォルトの名無しさん (ワッチョイ 4224-UAPS)
2020/01/07(火) 10:01:00.59ID:xOWyMMFH0
すみません、解決しました
ブラウザの対応次第なものの一般的なブラウザであればdata Urlで簡単に実現できました
310デフォルトの名無しさん (アウウィフ FFa5-p4uH)
2020/01/07(火) 16:12:15.29ID:2Dq0zKSWF
おまいら printf の戻り値はちゃんと毎回確認するんだぞ判ったか
311デフォルトの名無しさん (ワッチョイ 9901-8/Ff)
2020/01/07(火) 17:16:35.91ID:PuPIfAOU0
お断りします。
312デフォルトの名無しさん (ワッチョイ e5ae-W/+2)
2020/01/07(火) 17:27:42.26ID:Tv0SPXaP0
Excelによる計算をマスターとした場合、
C#で浮動小数点の誤差まで再現するには、どうしたら良いのでしょうか?
floatやdoubleやdecimalをそのまま使うだけでは、完全一致はしないですよね?
313デフォルトの名無しさん (ワッチョイ 317b-I5PR)
2020/01/07(火) 17:39:13.63ID:wDqVPTN90
>>312
decimalは誤差がないが…
とりあえずそれはExcelの計算方法の再現であってC#の話題とは別
314デフォルトの名無しさん (オッペケ Srf1-Fu3+)
2020/01/07(火) 17:51:56.04ID:zRb5T0D/r
そもそものそのエクセルの計算が税法上問題なかったり物理学上の誤差などを
しっかり配慮された計算なのか?とう疑問がある
315デフォルトの名無しさん (ワッチョイ e5ae-W/+2)
2020/01/07(火) 18:25:35.96ID:Tv0SPXaP0
>>313
はい、Excelの計算誤差も含めてC#で再現したいのです
Excel固有の関数の再現では無く、除算乗算程度です

>>314
Excelは簡単な計算でも誤差が出る時があるのは理解していますが、それでもExceによる計算結果lを「神様」として完全一致させるのが理想です
https://docs.microsoft.com/ja-jp/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://answers.microsoft.com/ja-jp/office/forum/office_2013_release-excel/excel%E3%81%AE%E5%8D%98%E7%B4%94%E3%81%AA%E8%A8%88/e5421c34-8053-4132-a0a6-14729e505376
316デフォルトの名無しさん (ワッチョイ d188-IJNu)
2020/01/07(火) 18:30:52.77ID:RhWBTAz60
内部でexcel操作するライブラリを使って実際にexcelに計算させてその結果をもらう
って方式じゃだめかな?
何にせよ絶対関わりたくない要求仕様だなw
317デフォルトの名無しさん (ワッチョイ 8201-TJkF)
2020/01/07(火) 18:36:18.00ID:sMehhi+20
>>312
仕様を理解してエミュレートする
https://docs.microsoft.com/en-us/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel

無駄な努力
318デフォルトの名無しさん (ワッチョイ e5ae-W/+2)
2020/01/07(火) 18:59:31.78ID:Tv0SPXaP0
>>316
ExcelライブラリやEEPlusが使えれば良かったのですが、今回はライセンスの関係もあってExcelが無いPCで動作させる必要があるので、Excelを裏で動かす様なことは出来ないのです。

>>317
15桁処理なので、やるとしたら計算毎に桁数をカウントするとかになりそうですかね・・・。
C#で普通に計算した方が精度も出るので、すっごく無駄なことをやることになりますね。
319デフォルトの名無しさん (ワッチョイ ed0c-UAPS)
2020/01/07(火) 19:04:39.58ID:EurMb9rX0
一体どんなアホが集まればそんなふざけた案件が出来上がるんだ…
320デフォルトの名無しさん (スップ Sdc2-Cg7n)
2020/01/07(火) 19:18:53.11ID:OMl1FHHvd
>>318
EPPlusやClosedXMLなら、Excelがマシンにインストールされている必要はないやろ
321デフォルトの名無しさん (アウアウウー Saa5-pIXJ)
2020/01/07(火) 20:18:05.17ID:cpbbTuYka
これはC#じゃなくて、CやC++に言えることかもしれませんが、
List<int> test=new List<int>();
for(int i=0; i<100000000; i++)
test.Add(123456789);
このような膨大な要素のリストを作った場合でも、
プログラムが動くのは、変数はメモリではなくHDD領域に格納されているからでしょうか?
メモリに全て格納すれば、メモリ不足でプログラムは動きませんよね?
322デフォルトの名無しさん (アウアウウー Saa5-CnQr)
2020/01/07(火) 20:25:58.17ID:IHn/p+8Ca
>>315
8086の時代じゃあるまいし、30年前だって実数計算なんかHW処理だよw
つまり、CPUさえ同一なら(変なことをやってないかぎり)VBだろうがExcelだろうがC#だろうが計算結果は同じになるはず。

現に>>315の計算C#でやっても同じ答えが出るよ
323デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/07(火) 20:26:35.52ID:YKIaA9us0
>>321
仮想メモリでググってみな
324デフォルトの名無しさん (ワッチョイ c22c-lxBK)
2020/01/07(火) 20:27:46.08ID:+2sDQ8Ye0
今どき400MBぐらい物理メモリにのっけてもそこまでって感じだけど
仮想メモリで調べよう
325デフォルトの名無しさん (ワッチョイ adda-eJH9)
2020/01/07(火) 20:28:50.54ID:23MsATD60
>>321
10000000/1024/1024=95.36
95.36*4=381MB
まぁ今のPCスペックじゃ余裕じゃね。

ある時、テンプレートで消費されるメモリの方が格納データより多くなる
どこに限界があるか自分で計ってみなされ
326デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/07(火) 20:33:16.30ID:YKIaA9us0
>>322
C++でアプリ作ったときは浮動小数点制御ワードの設定次第で、演算の精度や丸め方向が変わって演算結果に差異が出たけど、C#やexcelではどうなんだろう? 同じ条件で決めうちなのかな?
327デフォルトの名無しさん (ワッチョイ 5f9b-Eg5K)
2020/01/08(水) 16:03:59.03ID:Sre2vN3k0
google spreadsheet とか ms office online とか 360 でも再現されるのかな
328デフォルトの名無しさん (ワッチョイ 5f7d-tgR8)
2020/01/10(金) 02:04:40.36ID:aPGnNlsf0
非同期メソッド(async/await)の必要性について教えてください。

Task.RunやTask.Factory.StartNewメソッドを使えば、タスクを別スレッドで生成・実行できると思います。
またこれらのメソッドによる戻り値を呼び出し側で使いたければ、Task<TResult>クラスのResultプロパティを利用してやればよいと思います。

となると、上記のメソッドと比べ、非同期メソッド(async/await)の必要性や有用性って何なんでしょうか?
329デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/10(金) 03:15:36.39ID:doMNh/YUa
>>328
この記事読めば最初の10分でわかるよ
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/app/masterasync_index.html
分からなかったらここで人に聞いてもたぶん納得するような解答は得られないと思う
その場合は諦めて下さいw
330デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/10(金) 07:14:44.82ID:1LguP2Z50
読めば読むほどDoEvents大勝利の予感!
331デフォルトの名無しさん (ワッチョイ df01-eaUz)
2020/01/10(金) 17:27:42.50ID:D+gtbuRW0
弊社は庶務おばちゃんのPCですら64bitでメモリ8GB
332デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/10(金) 17:40:13.71ID:g1glT3r10
>>331
どこから誤爆したのか知らんが10年前の話でもしてたのか?
333デフォルトの名無しさん (ワッチョイ df2d-guBg)
2020/01/10(金) 21:01:49.43ID:kvQnOJve0
本当はここの話題じゃないのかも知れないけどさあ
.NetCoreアプリ(〜.dllファイル)に対するAppArmorの設定ってどうやるのか解説してるサイトや書籍があったら教えてくれんかな?
dotnetコマンドに対する制約しかかけられないのかな・・・・
334デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/10(金) 21:14:00.77ID:PkgwRlbI0
>>328
async/await で書くと、深いネストのコールバック地獄を避けられるw
335デフォルトの名無しさん (ワッチョイ ffe3-G18V)
2020/01/10(金) 21:38:12.63ID:pVxCiE3h0
>>334
むしろasync/await地獄の始まりなんじゃ
336デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/10(金) 21:46:24.01ID:nE2xZxkX0
>>335
kwsk
337デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/10(金) 21:48:34.84ID:aX6A99t20
>>335
KWSK
338デフォルトの名無しさん (ワッチョイ 7fad-tNwm)
2020/01/10(金) 23:13:19.94ID:zSF+N+820
>>328
ブロッキングすんなよ…
339デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/10(金) 23:16:57.47ID:c4Cc7glv0
コールバック地獄のネストがasync/awaitで解消されるわけじゃないんだがな。
340デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/10(金) 23:25:42.90ID:nE2xZxkX0
>>339
なんで?
341デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/10(金) 23:40:56.46ID:c4Cc7glv0
コールバック引数に関数リテラルを書いてるからネストが深くなるわけで、それが嫌なら
関数を切り出しておけばいい。
async/awaitを使う場合は最初からそうするしかないってだけ。
342デフォルトの名無しさん (ワッチョイ df35-sGtB)
2020/01/10(金) 23:45:01.53ID:nE2xZxkX0
まあ逐一処理みたいに並べて書けるから便利だよね。
別の場所に用意したコールバック関数の中に次の処理書くよりマシかな
343デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/10(金) 23:48:54.52ID:c4Cc7glv0
あれ、ここc#スレじゃんw
344デフォルトの名無しさん (ワッチョイ df35-sGtB)
2020/01/10(金) 23:51:08.53ID:nE2xZxkX0
いや、こうか。
そうしないとコールバックで繋いでないな。
f1(x1,y1,
 f2(x2,y2,
  f3(x3,y3,
   f4(x4,y3)
  )
 )
)
345デフォルトの名無しさん (ブーイモ MM23-WKbt)
2020/01/11(土) 00:43:53.19ID:HNDaLABiM
目次見る限りasync/awaitまで書いてあるようだが内容古いかな?

C#による マルチコアのための非同期/並列処理プログラミング
http://gihyo.jp/book/2013/978-4-7741-5828-0
346デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/11(土) 10:39:28.88ID:LYbiGn3M0
C#で明示的にメモリを開放する手段はGC.Collect以外にはないんでしょうか?
画像やオーディオファイルを扱うアプリを作っている最中ですが、数百MBのデータを扱い終えても数分はメモリ使用量がそのままで少し気持ち悪いです
GC.Collectを行うと副作用も色々とあるようなので他に手段があればと
347デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/11(土) 10:49:45.29ID:W2txbHVT0
>>344
その場合どれがコールバック?

c#ならラムダを使えばjsのコールバック地獄と同じような地獄を味わえるが、async/awaitは関係ないな。
348デフォルトの名無しさん (ワッチョイ 5f7d-vCMi)
2020/01/11(土) 11:09:15.66ID:UtksiWPF0
async/awaitの件解決しました。
ありがとうございました!
349デフォルトの名無しさん (ワッチョイ dfa7-Eq4u)
2020/01/11(土) 11:28:43.37ID:TUd4PMk40
DoEvents最強!
350デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 11:44:58.26ID:tdQ2h9sk0
>>347
普通にミスった
関数ポインタ的なものを渡してるつもりだったけど実行演算子付けてたら意味ないな

f1(x1,y1,(y1,y2)=>
 f2(x2,y2,(x3,y3)=>
  f3(x3,y3,(x4,y4)=>
   f4(x4,y4)
  )
 )
)

多分こうかな
やっぱりこのほうがいいな
そもそもこんなに非同期処理並べるときあるか分からないけど
await f1(x1,y1)
await f2(x2,y2)
await f3(x3,y3)
f4(x4,y4)
351デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/11(土) 11:58:16.27ID:W2txbHVT0
それ、非同期ラムダならawaitで待つけど普通のラムダなら普通に呼ぶだけだろう。
awaitで解消できるわけじゃなくて。
352デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 12:03:26.24ID:tdQ2h9sk0
こうか
f1(x1,y1,async (y1,y2)=>
 await f2(x2,y2,async (x3,y3)=>
  await f3(x3,y3,async (x4,y4)=>
   f4(x4,y4)
  )
 )
)
353デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 12:04:51.20ID:tdQ2h9sk0
いや、これだとasync, await使ってるから本末転倒やな
もう時間ない
354デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/11(土) 12:28:03.20ID:yg8EbsDw0
>>346
> GC.Collectを行うと副作用も色々とある
あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ
別にイリーガルなAPIというわけでもない
まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが
355デフォルトの名無しさん (ラクッペ MMf3-elwi)
2020/01/11(土) 12:48:55.66ID:iMRI2zWpM
>>350のコールバックが非同期で呼び出されるってことだろうから普通に並べて呼ぶだけじゃ無理じゃね
356デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 10:53:37.47ID:dSru1J0h0
>>354
たしかに基本的には問題になりませんが、
数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・
こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか?
357デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/12(日) 11:39:38.30ID:hca/fTZV0
>>356
仮想メモリでググってみて
358デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/12(日) 12:06:08.27ID:EKUpo6h10
>>346
IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。
画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。
359デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/12(日) 12:10:08.97ID:VFqe+WSm0
usingで囲むのが定石かな?
360デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 12:28:05.83ID:dSru1J0h0
主にはMemoryStreamで巨大データを扱っていてちゃんとDisposeは行っていますが、タスクマネージャーで監視している限りだと中々メモリ使用量が減りません
361デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 12:32:04.56ID:21O0ncu50
>>356
その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ

マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず
なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある

アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある
加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは
程度問題ではあるけど基本的にはご法度

現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない
362デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 12:37:20.88ID:dSru1J0h0
>>361
一応上でも書きましたがメモリリークの相談ではありません
363デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 12:52:17.43ID:21O0ncu50
>>362
タスクマネージャ眺めてるだけじゃ開発者が手続きを間違えいてるのか
.NETのGCがクソなのかも判断できないという話だよ

CLRProfilerなり使ってもうちょっと詳細詰めてみたら?
364デフォルトの名無しさん (ワッチョイ 7f24-lB9F)
2020/01/12(日) 13:07:52.95ID:dSru1J0h0
>>363
言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます
ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと
365デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/12(日) 13:49:29.53ID:GXqrVy4G0
GCって動かしてやらないと限界まで解放しないよ
限界までいって開放時のその時起きるのはストップザ・ワールドと呼ばれる有名な現象

その前にもメモリの残量を見てるアプリが動かなくなる
あ、メモリ少ないじゃん俺起動やめんべ
こういうのも絡んで再現不能な不具合を多々撒き散らす
常駐アプリならストップザ・ワールドが困るなら定期的に解放せんとまずい

ちなみにストップザ・ワールドは10分は動かなかったときがある
366デフォルトの名無しさん (ワッチョイ 5f0c-lB9F)
2020/01/12(日) 13:50:45.08ID:21O0ncu50
>>364
まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら
(例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか)
それはCollect使っても構わない場面だと思うよ

結局副作用と言ってもヒューリスティックなGCの調整に影響が出て
細かくGCが起きる場面でのスループットが低下する、かもしれない
とかその程度だしね
367デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/12(日) 13:53:55.26ID:F6k+/xNLM
サーバーじゃなくてクライアントアプリだろ?
ガンガンGC.Collect打っても全然問題ないよ
368デフォルトの名無しさん (ワッチョイ 5f5f-alJZ)
2020/01/12(日) 13:54:13.68ID:yOfvFL1A0
>>365
なるべくストップザ・ワールドしないようにGCは改良されてきたけど、
.NET Framework 4.8でも10分かかったりする?
369デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/12(日) 14:00:58.90ID:GXqrVy4G0
>>368
俺がやったのは4.5ぐらい
でもこの辺の挙動って変わるかな?
370デフォルトの名無しさん (ブーイモ MM0f-2EI0)
2020/01/12(日) 14:21:33.28ID:EstEf4vMM
>>364
大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ
アンマネージドメモリなら開放したいときに無駄なく開放できる
今はspanがあるからアンマネージドメモリの扱いも簡単だ
GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い
ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない
371デフォルトの名無しさん (ワッチョイ 7fad-tNwm)
2020/01/12(日) 14:32:31.87ID:fMqCO5na0
逆に10分止めちゃうようなコードを見てみたい
372デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/12(日) 14:39:35.43ID:OVUZbrRA0
GCが分単位でかかる状況ってそもそも作り出せるもの?
373デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/12(日) 14:49:38.22ID:KwEpglzAa
ストップザワールドてw
PC-98の時代で頭が止まってるのかwww
374デフォルトの名無しさん (ワッチョイ 7f01-KDxU)
2020/01/12(日) 16:50:21.94ID:M8sF3s6B0
時間経過だけを条件にフルGCがされることってあるのかな?
メモリリークではないと言ってるけど状況的にそう言える根拠はないような・・・
- 数GBが開放されない
- 数分待てば開放される(ように見える)
- GC.Collectすれば開放される
- タスクマネージャーでのみ確認
375デフォルトの名無しさん (ワッチョイ dfa7-Eq4u)
2020/01/12(日) 17:07:03.57ID:M6sT7X550
MSDNより

ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
・システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
・マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
・GC.Collect メソッドが呼び出された場合。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
376デフォルトの名無しさん (ワッチョイ 7f59-G18V)
2020/01/12(日) 18:10:01.75ID:bIiQ1z8t0
>>373
せやな
ザ・ワールドだけで通じるよな
377デフォルトの名無しさん (ワッチョイ 5f2c-CCy/)
2020/01/12(日) 18:32:57.05ID:je4+hRX40
そして時は動き出す…!
378デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/12(日) 19:53:41.49ID:VFqe+WSm0
out of memory.
379デフォルトの名無しさん (ワッチョイ dfe7-b6Cp)
2020/01/12(日) 20:13:16.17ID:6g8s1ic00
>>373
GC界隈では普通に使う表現
380デフォルトの名無しさん (ワッチョイ dfe5-alJZ)
2020/01/13(月) 00:43:38.40ID:5i4YDTtr0
csvファイルを取り込むため下のようなプログラムを作ったのですが
データに「"1,234",test」のようなカンマ区切りの金額データが含まれるため
「1」「234」「test」のように列が分けられ配列に格納されてしまいます。
「1234」「test」のような形で配列を取得するにはどうしたら良いでしょうか?

static void Main(string[] args)
{
string textFile = @"C:\temp\test.csv";
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift_jis");
string[] lines = System.IO.File.ReadAllLines(textFile, enc);
foreach(string line in lines)
{
string[] stArrayData = line.Split(',');
Console.WriteLine(stArrayData);
}
}
381デフォルトの名無しさん (アウアウイー Sab3-VpI/)
2020/01/13(月) 00:49:22.13ID:3SwxEC/oa
nugetでcsvhelper
どうしても自前で車輪の再発明をしなければ気が済まないならTextFieldParserあたり
382デフォルトの名無しさん (ワッチョイ 7fad-UU8b)
2020/01/13(月) 00:50:08.91ID:wNJBXid30
>>380
https://dobon.net/vb/dotnet/file/readcsvfile.html
383デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/13(月) 00:50:48.38ID:5a7SXLUb0
ダブルクオートの数は論理行内で偶数に
なる事に気がつけば
難しくないよね?
384デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/13(月) 04:40:58.64ID:6QaMEdT10
Ruby なら、CSV モジュールを使うだけ

CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない

要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない
385デフォルトの名無しさん (ワッチョイ ffe3-G18V)
2020/01/13(月) 11:08:21.47ID:0YkcX+ND0
>>384
クォート文字有り無しが混在している時点でCSVじゃねえってことか
386デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/13(月) 11:21:19.23ID:5a7SXLUb0
元々のCSVはSuperCalc の形式(オズボーン1にバンドルされていた)
今目にするCSVの仕様は、管理工学研究所が定義したK3形式が元になっている

で、実際の処理には何の関係も無い
387デフォルトの名無しさん (ブーイモ MM9f-2EI0)
2020/01/13(月) 11:38:13.56ID:IOw3xBOoM
CSVという欠陥品はやめてJSONを使おう
JSONならテーブル形式も違和感ない
388デフォルトの名無しさん (ワッチョイ 7f59-G18V)
2020/01/13(月) 12:42:50.09ID:DisUSQsY0
丁度いいから聞きたいんだけどjsonのnugetってどれがいいんだ?
ニュートンでいいの?
389デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/13(月) 13:17:46.09ID:lNXH+eFP0
utf8json
390デフォルトの名無しさん (ワッチョイ dfe5-alJZ)
2020/01/13(月) 16:30:16.82ID:5i4YDTtr0
csvhelperなるものがあるのですね
情報ありがとうございます
ドボンさんの情報は以前は参考にさせて頂いてましたが、
.NET2.0くらいのやり方が多いので、今はより洗練された方法がありそうだなと
思っておりました
391デフォルトの名無しさん (ワッチョイ 7f2c-DGfv)
2020/01/13(月) 21:40:59.14ID:n3H4xPlw0
>>388
いいの定義次第ではあるが
.NET Core 3.0以降はSystem.Text.Jsonが標準ライブラリに組み込まれた
.NET Frameworkだと4.6.1以降で使える
392384 (ワッチョイ 7f2c-JQ6m)
2020/01/13(月) 22:56:09.48ID:6QaMEdT10
>>385
クォート文字の有り無しは、混在できる

CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(ダブルクォーテーション)がある場合は、
その要素をクォート文字(ダブルクォーテーション)で囲まなければならない

ただし要素内に、クォート文字がある場合は、クォート文字を2つにしてから、
その要素をクォート文字で囲まなければならない

でも要素内に、それらの特殊文字が無いなら、クォート文字で囲まなくてもよい
393デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/13(月) 23:01:31.99ID:kDbPI+DBa
それCSVっていうよりBASIC系のエスケープっぽいねw
そもそもCSVってカチッとした仕様がなかった気がするんだけど
394デフォルトの名無しさん (ワッチョイ 7f47-uhcM)
2020/01/13(月) 23:06:38.56ID:VhiGJyHM0
>>393
RFCの定義はある
https://tools.ietf.org/html/rfc4180
395デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/13(月) 23:18:49.19ID:lfPKL+oG0
>>393
もともとちゃんとした仕様が決まってないままに様々な方言が普及しちゃった後に、後付けでrfc4180が定義されたらしい。
396デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/13(月) 23:30:20.68ID:kDbPI+DBa
>>394
斜め読みした感じ、それって定義じゃないのでは?
むしろ定義なんかないってはっきり言ってない?
定義はないけど多くの実装の最大公約数的な仕様はこうだって書いてあるだけじゃないの?
397デフォルトの名無しさん (ワッチョイ 5f17-lB9F)
2020/01/13(月) 23:36:49.28ID:VaOcNYgw0
けっこう色々な種類のcsvファイル触ってきたけどこの定義から外れたもの見たことないから
とりあえずこの通りに実装しとけば問題ないけどね
398デフォルトの名無しさん (ワッチョイ 5f90-mHUb)
2020/01/13(月) 23:37:58.26ID:tegDOPxe0
>>394
そもそもこれstandards trackじゃないし。informationalやん
399デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/13(月) 23:40:16.54ID:kDbPI+DBa
よく見ると冒頭にちゃんと
Category: Informational
と書いてあるね
400デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/14(火) 03:26:39.48ID:3sd16sWN0
Ruby のCSV も、RFC4180

これが標準
401デフォルトの名無しさん (ワッチョイ 7f47-uhcM)
2020/01/14(火) 04:05:32.78ID:N3SxpKLV0
ルビーはどうでもいいけどRFC4180が標準だわな
402デフォルトの名無しさん (ワッチョイ df01-eaUz)
2020/01/14(火) 07:09:18.01ID:TfUAOhnl0
今のご時世で新規開発のデータ出力にcsv採用はセンス無いですか?
csv受け取るサブシステムは今の所無いと考えて
403デフォルトの名無しさん (ワッチョイ dfde-Eq4u)
2020/01/14(火) 07:12:40.24ID:Z55vDhY10
出力した後の運用によるだろ
PGがさわるわけでもないのにxmlで出されても工場のおじさん困っちゃう
404デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 07:56:37.29ID:RxBpnTJ90
>>402
例えば時系列の数値データとかだと今でもCSVが最適解のケースが多いと思う
構造が必要なデータとかでないとXMLやjsonはちょっと冗長
まあC#ならライブラリも充実してるからぶっちゃけどうとでもなるけど
405デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/14(火) 09:02:31.67ID:3sd16sWN0
表みたいに、行・列だけの、ネストしない単純な構造物は、CSV がベスト!

一方、構造がネストするものは、JSON, YAML, XML など
406デフォルトの名無しさん (ブーイモ MM0f-rUPC)
2020/01/14(火) 09:18:13.67ID:HiotJy5MM
Pandsみたいな優秀なライブラリ誰か作って、オレオレクラス定義すんの面倒になってきた
407デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/14(火) 12:25:10.48ID:1JLYJ3w5a
CSVを使う動機は他のプログラムにデータを渡すことでしょ。
例えばエクセル。日本も欧米もエクセルスキー多いからな

閉じたシステムでしか使わないデータのフォーマットなんか何だっていいでしょ。
あえてCSVを使う理由なんかどこにもないと思うけど
408デフォルトの名無しさん (ワッチョイ 5fde-Eq4u)
2020/01/14(火) 12:27:31.80ID:Kx+Dz7Lq0
>>405


構造がネストしてたってCSVに入れなければならないときがある
そもそもネストしたぐらいでリストにできないんじゃデータベースにどうやって入れるんだ?
parentid持ってりゃネストしてたって再構築できるだろ
409デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/14(火) 13:05:22.12ID:eL1p+DpS0
まあ、いつものRuby君だからな。
聞き齧った情報を単純化して暗記だけして、関われそうな話題が出るとここぞとばかりに唱え続けるのはいつものこと。
410デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/14(火) 13:09:26.15ID:Cb2SImdL0
CSVで親IDとか使うの?
411デフォルトの名無しさん (ドコグロ MM7f-qx2z)
2020/01/14(火) 13:55:46.20ID:/uoR9pL9M
>>407
むしろ>>405の言う表みたいなやつでCSV以外を選択する理由がないと思うが
412デフォルトの名無しさん (ドコグロ MM7f-qx2z)
2020/01/14(火) 13:58:11.66ID:/uoR9pL9M
>>408
> parentid持ってりゃネストしてたって再構築できるだろ
それデータとして構造持ってるわけじゃないだろ
リスト構造が作れるからメモリーは構造持ってると言うようなもんだし
413デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/14(火) 14:06:50.32ID:/8RfG7cVM
CSVは項目の増減があるとウザいんだよな
もちろんちゃんとヘッダ付けてスキーマが変わった時点でファイルを区切ればいいんだけど、
CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
選べるならJSON Linesの方が好き
414デフォルトの名無しさん (ワッチョイ 5fda-KD25)
2020/01/14(火) 14:38:15.52ID:1W0s33Ee0
sqlldrが対応したら考える
415デフォルトの名無しさん (ワッチョイ ff42-lB9F)
2020/01/14(火) 15:11:21.78ID:EWDA2lfk0
CSVは方言があるから、きちっと規則が決まっているフォーマットのほうがあらゆる場所で使いやすい
データをそのまんま見る必要はまったくないからな
416デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 15:19:51.61ID:RxBpnTJ90
>>413
> CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ
それCSVの問題じゃないだろ…
そもそも文化的にとかイミフだし
417デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/14(火) 17:27:20.18ID:/8RfG7cVM
>>416
仕事してるなら感覚的に伝わると思ったけど、具体的に言おうか?
CSVはヘッダが必須ではないから、CSVを扱うソフトウェアやシステムはヘッダに依存せずに設定として列の項目名を持つようになっているケースがよくある。
だから列の増減や差し替えがあったりするとたとえ直接関係のない列の変更であっても各所に散財する設定を変更して回らなければならなくなることが多い。
418デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 18:03:11.50ID:RxBpnTJ90
だからそれってアプリの設計の問題だろ
ヘッダーが必須じゃないのがCSVの欠陥という主張なのか?
419デフォルトの名無しさん (ワッチョイ df2f-JQ6m)
2020/01/14(火) 18:09:29.11ID:pFXvs9YC0
まあCSVがデータ交換の第一候補とされる時代で、動的なスキーマ扱うのは大変だったからな
たんに昔は大変だったってだけの話だが、それを文化的にっていうならそうなんじゃね
420デフォルトの名無しさん (オッペケ Srb3-lZna)
2020/01/14(火) 18:11:38.55ID:X7PL8nyZr
カンマが入ってる場合はcsvじゃなくtsv(タブ区切り)がベストだと思う
421デフォルトの名無しさん (ワッチョイ df2d-guBg)
2020/01/14(火) 20:12:40.85ID:hCHR2L1S0
ASP.Net CoreでWebページを作れるようになりたくて勉強中なんだけどさ
これって、内臓のWebサーバを使う限り、Let’s Encryptでもらった証明書は使えないもんなの?
422デフォルトの名無しさん (ドコグロ MM7f-JyDu)
2020/01/14(火) 20:17:19.61ID:/8RfG7cVM
今時のWebサイトのSSL証明書はAWSのロードバランサでポチるもんだ
サーバーはただHTTPを垂れ流せばよい
423デフォルトの名無しさん (ワッチョイ df2d-guBg)
2020/01/14(火) 20:34:04.12ID:hCHR2L1S0
おお、運用する時はこれが良いな
正直、サーバの設定もわかんないので任せっきりの方が安心そうだ
ただ勉強中は、100円で買ったドメイン + 安物VPS + 無料証明書でうまく動いてくれたらすごく助かるんだけど・・・・無理なのかな?
424◆QZaw55cn4c (ワッチョイ 7f47-soYg)
2020/01/14(火) 21:14:07.19ID:m9Mcjsqu0
>>420
むしろ csv より tsv の方がいろいろな点で優秀なのに、どうして tsv がはやらなかったのか?
425デフォルトの名無しさん (オッペケ Srb3-lZna)
2020/01/14(火) 21:41:46.70ID:X7PL8nyZr
エディタ次第で見た目が変わるからと
人が加工しづらいからだろうね

タブが入ってますと言っても判らんかもしれない
文字列が長いとそろわないのでタブの位置がおかしくなるかもしれない
426デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/14(火) 22:06:19.07ID:iQtyfXTR0
csvよりtsvが優秀な点って何?
結局データ内にtabがある可能性があるならおなじじゃね?
だからカンマとかタブとかひっくるめてcharcter separated valuesの意味とされることも多いんでしょうが
427デフォルトの名無しさん (ワッチョイ df4f-lB9F)
2020/01/14(火) 22:20:24.32ID:Vj8ecsI80
TABをデータの一部として含む必要のない用途って圧倒的に多いと思う。
428デフォルトの名無しさん (ワッチョイ 5fb2-rUPC)
2020/01/14(火) 22:35:55.95ID:Q89341GR0
いみわかめ
429デフォルトの名無しさん (アウアウイー Sab3-VpI/)
2020/01/14(火) 23:48:13.12ID:ohbZmYwxa
えっcsvってcomma-separated-valuesの略だと思ってた
character-separated-valuesが正しいのね

カンマは含むけどTABを含むことはないデータを扱うのであればTSVのほうがちょっとだけ楽
あとTSVならExcelへのデータコピペ貼り付けが楽ちん
なnだけどExcelは拡張子tsvを認識してくれるわけじゃないし
デフォルト状態のテキストエディタだとTSVを開くとTABが見えなくて一般エンドユーザには扱いづらい
このあたりが普及しなかった理由かなあとも思う
430デフォルトの名無しさん (アウアウウー Saa3-7oRq)
2020/01/14(火) 23:53:37.69ID:1JLYJ3w5a
そういえばTSV使えばクリップボード経由でスプレッドシートに矩形のデータの貼り付けが出来たねw
431デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)
2020/01/14(火) 23:53:53.34ID:3sd16sWN0
>>413
ヘッダー行無しで、列名を使わずに、
数字インデックスで、各列にアクセスするのは、ナンセンスw

各列の順序に、依存してはならない!
列名でアクセスすべき!
432デフォルトの名無しさん (ワッチョイ c563-slCE)
2020/01/15(水) 00:02:56.00ID:DW97+S7b0
>>429
別にどっちが正しいとか無いよ
個人的にはカンマの意味で使うことのほうが多いしRFCでもカンマだし

csvよりtsvのほうがいろいろ優秀とかいうほんまか?みたいな説があったから気になった
改行以外の制御文字は非エンジニアには理解しづらいし表示は環境依存になること多いし別にどっちが優秀とか全く思わん
433デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/15(水) 00:30:13.30ID:7BgXM3KH0
chimpo-separated-values
で行くわ
434デフォルトの名無しさん (アウアウウー Sa05-mgaX)
2020/01/15(水) 00:51:08.61ID:4wm3SGsoa
>>431
SQLコマンドによるCSVのバルクロードすらやったことがない素人ルビカスは巣に帰れ
435デフォルトの名無しさん (ワッチョイ 1db2-V+qk)
2020/01/15(水) 02:19:39.36ID:qS+FX29K0
>>434
431が正しいだろ
436デフォルトの名無しさん (ワッチョイ 8de6-A78j)
2020/01/15(水) 02:27:50.62ID:EZqAV4Af0
JSON Linesってヘッダー名が無駄だよね。
俺なら縦横逆にしてJSON Columnsだな
437デフォルトの名無しさん (ワッチョイ 02ad-NcMA)
2020/01/15(水) 03:11:55.49ID:5FatvImR0
>>426
大抵の場合カンマもダブルクォートも気にしなくてよくなる分有利だと思う
データ内にtabが必要なデータって出会ったことある?

完全に自分で決めていい場合なんかはまずデータで発生しない垂直タブとかにすることもある

あとbcpはいい加減囲み文字に対応してくれ・・・
438デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/15(水) 05:03:47.76ID:ga1RRQJH0
>>435
正しいかどうかはケースバイケース
まともでないヘッダーついてるデータを読み込めとかあったりするし
439デフォルトの名無しさん (ワッチョイ 412d-GCXE)
2020/01/15(水) 06:40:51.71ID:p7xf33n60
ASP.Net coreを学習してて思ったんだけど、cshtmlファイルって簡単にプレビューすることってできないの?
もしかしてデザインを確認するたびにWebアプリをビルドして動かさなきゃならないのかな・・・・・?
440デフォルトの名無しさん (アウアウウー Sa05-mgaX)
2020/01/15(水) 08:55:22.37ID:4wm3SGsoa
>>439
プレビューは無理だが、実行中に変更して保存すれば自動的に反映される
今時のWeb開発はReactのようなブラウザ側でテンプレートをレンダリングするフレームワークを使うのが主流だから、
いわゆるライブプレビュー問題はそもそも関心の対象から外れつつある
441デフォルトの名無しさん (ワッチョイ 412d-GCXE)
2020/01/15(水) 10:19:44.72ID:p7xf33n60
>>440
ありがとう、簡単に反映されて見やすくなったよ!!!
しかも学習が進む前に主流がここにないこともわかって助かったぜ!!!
わからない点もあるけど、RazorやMVCを勉強するより、WebAPI+Reactのセットを勉強すれば良いのかな
442デフォルトの名無しさん (ワッチョイ bd02-otum)
2020/01/15(水) 19:15:28.96ID:JJ7ufGPT0
System.Drawing.Imageで、ビットマップを読み込んでそこで色々加工した後
ヘッダーまで含めたDIBビットマップ情報を取得したいです(変換したいです)。
要するにバイナリでファイルから読んだのと同じ情報にSystem.Drawing.Imageから変換したいのですができますか?
今はやり方が分からないので、Imageからファイルを読み込んで一通り加工した後、一旦Saveでファイルに書き込み
それを自分でSystem.IO.FileStreamでバイナリとして読んでます。効率が悪いので直接Imageから変換したいです。
443デフォルトの名無しさん (ワイーワ2 FF4a-otum)
2020/01/15(水) 19:20:32.57ID:eUr1BYr3F

https://stackoverflow.com/questions/5931407/how-to-create-a-new-hbitmapdib-from-an-existing-hbitmapcreatecompatiblebitmap
https://social.msdn.microsoft.com/Forums/ja-JP/66a19da1-91cb-4a80-9d4b-07edfb3587f2/dib244182433512395-bitmapfileheader?forum=vbgeneralja
https://www.mm2d.net/main/legacy/c/c-11.html
444デフォルトの名無しさん (ワッチョイ bd02-otum)
2020/01/15(水) 19:28:24.52ID:JJ7ufGPT0
>>443
ありがとうござます!あとで試してみます!
445デフォルトの名無しさん (ブーイモ MMe5-V+qk)
2020/01/15(水) 20:27:13.92ID:TKYU4w08M
Pands移植してくれ
446デフォルトの名無しさん (ワッチョイ 412d-GCXE)
2020/01/16(木) 00:54:44.90ID:kpHwVwjt0
一度作ったプロジェクトに、後からテンプレートのオプション相当の機能を追加するのってどうやるの?
https://docs.microsoft.com/ja-jp/aspnet/core/security/authentication/identity?view=aspnetcore-3.1&;tabs=netcore-cli
上の方のチュートリアルからやってきた流れで作ったものに認証を追加しようとしたら、どう言う作業になるのか全然わかんないぜ
プロジェクトを作る時は予めオプション全部盛りにしといた方が無難なのかな?
447デフォルトの名無しさん (ワッチョイ dd2c-gGzZ)
2020/01/16(木) 01:22:36.75ID:f63ovSMJ0
>>429
拡張子 .tsv は認識しないけど、Unicode や UTF-8 とかのタブ区切りテキストの拡張子が .csv の場合はちゃんとExcelで開けるよ。ボムで判定してるぽいから使いどころがアレだけど
448デフォルトの名無しさん (ワイーワ2 FF4a-8L6A)
2020/01/16(木) 11:54:51.58ID:sHruIOmXF
kingなんとかっていう中華パチモンのexcelモドキがあるが
あれのマクロとかはMSexcelと互換なのか?
449デフォルトの名無しさん (ワッチョイ ae8f-A78j)
2020/01/17(金) 01:09:43.10ID:atTN5w3j0
>>424
テキストエディタで見た時に壊滅的だからじゃね?
450デフォルトの名無しさん (ワッチョイ b957-otum)
2020/01/17(金) 02:24:02.75ID:gAZZjojh0
優秀か?
451デフォルトの名無しさん (アウアウエー Sa0a-pN7o)
2020/01/17(金) 02:41:14.31ID:7cpcgOXta
>>449
それは逆だと思うよw
メモ帳かワードパッドでタブ区切りで何か書いてみたら分かると思うけど
452デフォルトの名無しさん (ドコグロ MM09-mQF2)
2020/01/17(金) 07:17:00.54ID:C1DTJTUYM
>>451
ケースバイケースと言うかデータによると思う
個人的にはタブは2個続いてる時に見落としがちなのが痛い
453デフォルトの名無しさん (JP 0H16-YUdL)
2020/01/17(金) 08:04:34.92ID:qddbUXn7H
五百
454デフォルトの名無しさん (ワッチョイ e14f-A78j)
2020/01/17(金) 08:17:29.34ID:p4bBUsLt0
カンマでもスペースで桁合わせしないとよくわからん。
タブはエディタ次第で表示もできるからそう大差ないと思うがな。
455デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/17(金) 11:07:56.81ID:fMuYUnvEF
仮に8タブで揃えてもどうせデータに8文字以上あったらずれるしな
456デフォルトの名無しさん (スップ Sd82-slCE)
2020/01/17(金) 11:52:44.67ID:2y8Fp1JGd
30年前のエディタで考えろよw
今なら表示なんて好みで済んでも当時はそうとは限らん
457デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/17(金) 12:29:22.08ID:jY/iqPsQ0
30年前だと、WordMasterから
MIFES,FINAL,REDへの変換期かのう
VZの前身のEZは出ていたかも
458デフォルトの名無しさん (ワッチョイ e247-7ABd)
2020/01/17(金) 12:38:18.40ID:Uy7wk5em0
秀丸はなかったな
459デフォルトの名無しさん (アウアウエー Sa0a-pN7o)
2020/01/17(金) 12:38:34.71ID:cvTIAb58a
なんか話が通じてない気が

1, 2, 3, 4, 5
100, 200, 300, 400, 500
10000, 20000, 30000, 40000, 50000

例えばこれをメモ帳にコピペして", "をタブに置換してみれば
TSVのビジュアル面での優位性が分かる
くどいけどメモ帳ね。今時のエディタでやれとは言ってない
460デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/17(金) 13:13:41.21ID:fMuYUnvEF
メモ帳最強だな
1 2 3
100 200 300
10000 20000 30000
10000000 20000000 30000000
461デフォルトの名無しさん (ワッチョイ 3188-slCE)
2020/01/17(金) 13:52:40.81ID:y5/702GX0
メモ帳とか関係ない
つうかなんでwin限定?
なぜtsvではなくcsvが多く残ったか
どっちが見やすいか?の話ですら無い
462デフォルトの名無しさん (アウアウエー Sa0a-pN7o)
2020/01/17(金) 14:09:00.25ID:cvTIAb58a
>>461
文脈読めないとアスペルガーって言われるよw

CSVの方が普及したのに深い理由があるとは思えないけど、
あえて言えばデータをエクスポートするコードを書くプログラマの立場になれば、
CSVの方が吐き出されたデータが意図した通りになってるか目視でチェックしやすいのはあるかもね。

スプレッドシートで見た時マトリックス状になってないデータだと
,,,1, 2, 3,,,,
行のデータがこんな風になるけど、こういうのTSVだと検証しづらいよね。
463デフォルトの名無しさん (ワッチョイ d133-bqKp)
2020/01/17(金) 14:55:50.20ID:n7WyUXpB0
1-2-3とか桐から吐き出せたのがcsvだからとかその程度の理由じゃないの?知らんけど
464デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/17(金) 16:36:37.04ID:jY/iqPsQ0
日本ではそやな
465デフォルトの名無しさん (ドコグロ MM41-mQF2)
2020/01/17(金) 18:14:53.58ID:SG0oi/VqM
そもそも大昔にtsvなんてあったか?
csvのだいぶ後に聞いたような気がするが
466デフォルトの名無しさん (ワッチョイ a124-A78j)
2020/01/17(金) 18:32:59.21ID:Cb72BYsQ0
昨日のWindowsUpdateから.Net製アプリだけ起動が遅くなった(普段はすぐ起動していたものが1秒弱かかる)気がするんですが自分だけでしょうか?
467デフォルトの名無しさん (ワッチョイ dd2c-gGzZ)
2020/01/17(金) 21:40:50.90ID:kNpvcUT/0
大昔がいつかわからないけど、Excelは2000の時にはtsv対応してた
468デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:14:44.38ID:qzTGRUF3a
いつも思ってるんだけど
営業ってゴミ以下じゃないですか?
こいつらってSEもPGも出来ないのに
何故か技術職より高級取りですよね?
そのくせ飲み会なんかでは
お互い苦労を労ってみたいな、苦労人ぶりますよね?
営業ってほんと何もしてないんじゃないですか?
皆さんは休日もc#の勉強でしょう?大変だと思います。
理不尽だと思いません?
469デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:15:41.03ID:qzTGRUF3a
皆さん営業に対して切れそうになったことってありますか?
470デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/17(金) 22:18:20.06ID:oRcV/dFn0
>>468
じゃお前は営業できるの?
やったとして、お前が今書いたようなことをPGやSEから言われない自信はあるの?
471デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:19:09.18ID:qzTGRUF3a
どう考えてもプログラマって人生削って仕事してますよね?
そのくせ営業はキャバクラにいくと苦労自慢ですよね
こいつらの苦労って何なんでしょうか?w
人生楽してるくせに、苦労人ぶって注目を浴びる
サイコパスなんですかね?
472デフォルトの名無しさん (ラクッペ MM41-iig7)
2020/01/17(金) 22:19:56.28ID:W1hXbFsmM
静かにしてろガイジ
473デフォルトの名無しさん (スフッ Sd22-gGzZ)
2020/01/17(金) 22:21:44.39ID:UrzW97rGd
仕事の半分ぐらいCPU戦でいい人が、四六時中対人戦やってる人に文句言っちゃいけんよ
474デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/17(金) 22:22:11.74ID:oRcV/dFn0
>>468
自分が知ってる一部の人間だけを取り上げて、同じ属性の人間がすべて同様であるかのような主張はやめな。
俺は営業でなくSEだが、見てて気持ち悪い。
475デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:23:01.68ID:qzTGRUF3a
>>470
そもそも営業といっても技術営業というのもあり、そちらは尊敬してます
僕が言うのは一般的な営業です
また飲食店とかそういう華やかな社会での営業なら、美人やイケメンが適当に
営業しても良いと思いますが、技術職ですからね
冴えないおっさんや、仏頂面の爺が営業してるじゃないですか?
能力もないくせに、 PGもできないくせに、何であんなに偉そうなんですか?

ここにいる人は、凄い技術をもった集団だと思います。
だけど営業だけは本当にゴミ以下なんじゃないかって思うんですよ。
努力することもなくSE,PGが開発した商品で飯をくってる奴らだと思いません?
476デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:29:22.69ID:qzTGRUF3a
>>473
最近は技術職の人がそのまま営業したほうがいいんじゃないかって言われてませんか?
皆さんが営業したほうが遥かに良いと思います。僕ですらしたことあるんですから。
そもそも技術職の人同士が直接対話したほうが、手間が省けますよね?
例えば、滅茶苦茶美人や、華があるイケメンが、技術を超えたところで会社の関係を良好に
する潤滑油のような存在であるなら別です、これに関しては僕は例外として認めます。
だけどですね、冴えないクソムカツク顔した偉そうなおっさんが、何のスキルもないくせに
ただその会社に行って名刺を渡して、外で飲んだりする。こういうのってよくあると思いますけど
むかつかないですか?こいつら会社にいるの?って思いません?
だってどう考えても、現場の人が死にそうになりながら恋人も出来ず、休日も納期に追われてなんて
僕はもう見ていて辛すぎるんですよ。仲間で鬱になった人が何人もいます。全員技術職です。
営業はいません。いたとしても技術営業の人です。
477デフォルトの名無しさん (ワッチョイ f901-U231)
2020/01/17(金) 22:30:03.14ID:qsbCac+G0
>>475
担当役員とあうために、派閥構成調べたり、その裏取りしたり
なんならアポイント調整してもらうために、部下の接待したりするんだけど
君できる?
で、当然会っただけじゃ話進まないから、会うまでにプレゼンの構成考えて、それに合致する統計情報集めて
何なら役員の他のプロジェクトの様子調べて、そのプレゼンに盛り込んだりするんだけど?
478デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/17(金) 22:34:53.07ID:oRcV/dFn0
>>476
お前に恋人ができないのは、仕事のせいでもその営業のせいでもないぞ。
479デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:35:45.25ID:qzTGRUF3a
>>478
システム開発に営業なんて必要ない
技術者同士の対話でいい、何故納得しないんですか?
480デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:38:25.08ID:qzTGRUF3a
>>477
そもそもシステム開発部署には派閥なんてない
営業の派閥とか気持ち悪すぎ、どんだけいるんだよ不必要なのにw
481デフォルトの名無しさん (スププ Sd22-7ABd)
2020/01/17(金) 22:38:46.32ID:mwRVtL6Od
金の話は営業に任せとくわ
482デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:40:39.99ID:qzTGRUF3a
営業に逆らったらクビになるから
こういう真実味のある話は嫌いなんですね、わかります
それに皆さんが不満はないのは、ある程度給料を貰ってるからでは?
皆の幸福を全体で考えるなら、どう考えても営業は邪魔でいらない
こんな奴らが苦労人ぶるのは俺は不愉快極まりない
483デフォルトの名無しさん (ワッチョイ 412d-GCXE)
2020/01/17(金) 22:41:01.13ID:MkV0nw930
頑張って相手にしてる人もいるけど、アフィブログに転載するための種まきじゃねえの?
484デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/17(金) 22:41:34.48ID:oRcV/dFn0
>>479
自分の身近な不満を感情のままにぶちまけてるだけで、他人を納得させるような論理的、合理的な説明を一切していないのに、なんで納得させられると思ってるの?
485デフォルトの名無しさん (ワッチョイ f901-U231)
2020/01/17(金) 22:41:58.76ID:qsbCac+G0
>>480
あるものを無いとか言っちゃう?理解できないものは、見ないタイプ?
そんなやつに売れるシステムなんてねーよ。
486デフォルトの名無しさん (ワッチョイ c563-slCE)
2020/01/17(金) 22:45:10.80ID:7c6Znq+s0
そんな単純な話じゃ金が動かない
金が動かなきゃ何もできない
金を動かせる人間と話ができなきゃ開発がスタートしない

そうやって他職種を罵倒するようなやつは君が嫌がる営業と同じだということに気付いてない
487デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/17(金) 22:47:54.20ID:jY/iqPsQ0
マ板でやれよ
488デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/17(金) 22:48:29.59ID:oRcV/dFn0
>>475
ここにいる人達がすごい技術を持った集団だなんて本気で思ってるのか?
もしそうだとしたら世間を知らなすぎというか技術者に過剰な夢をみているか、自分を含めた技術者というものを特別視し過ぎだ。
もしくは、自分の主張を受けいれてもらおうと、不必要に相手を持ち上げているのではないか? それが意図したものかそうでないか知らないが、もし無意識に癖でやってるなら改めた方がいいぞ。
489デフォルトの名無しさん (ワッチョイ dd2c-gGzZ)
2020/01/17(金) 22:48:36.57ID:kNpvcUT/0
そんなことよりC#の話しようぜ
490デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/17(金) 22:50:00.79ID:oRcV/dFn0
>>487
そうだった、すまんかった
491デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:56:37.76ID:qzTGRUF3a
>>488
常に技術力を磨いてる技術者と、休日もコネや接待のことしか考えてない
営業はどっちが頭良いと思うんですか?
営業は、確かにちょっとしたテクニックで相手に好かれたりするこつとか
そういうのは得意かもしれません。小手先のテクニックを磨いて、そこに
論理なんて全くないんですよ。流されやすい人間の心理なんかを心得てるにすぎないんですよ。
論理的に考えている水準が全然違う。例えば簡単なC言語のプログラムだって、大学1年
の時は全く手に負えないわけじゃないですか?そんなこともできないの?ってのが
生涯続いて取り返しがなくなってるのが営業の人達だと思うんですね。
492デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 22:59:49.23ID:qzTGRUF3a
>>486
だから悪しき営業文化があるだけじゃないですか?
規模の大きい企業だと営業を通すしかないですからね。
あの部署のあの技術者さんと直接対話したい!あの人となら
良い付き合いができそうだ
ってそういう試みをしてる人がいてもコンプライアンスで禁止されるから
できないだけじゃないですか
493デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 23:11:33.03ID:qzTGRUF3a
誰も賛同してくれなくて違和感を感じる
俺以上にもっと深い視点で切り込んでさらに否定的になってくれたりしないのか
494デフォルトの名無しさん (アウアウエー Sa0a-otum)
2020/01/17(金) 23:13:28.58ID:qzTGRUF3a
>>483
都合が悪いといつもアフィ扱い
495デフォルトの名無しさん (ワッチョイ 8263-/w76)
2020/01/17(金) 23:21:25.90ID:cvIKbp4L0
>>493
単純にスレチだから
496デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/17(金) 23:52:09.27ID:cfpw3pVl0
相手すんなよ…
497デフォルトの名無しさん (ワッチョイ 8259-6zBS)
2020/01/18(土) 00:30:53.67ID:T0jlPL4l0
副作用の削除や参照透過性を何処まで突き詰めるのかにいつも悩む
498デフォルトの名無しさん (ワッチョイ cd38-P8B4)
2020/01/18(土) 01:01:21.51ID:0vKnIo7J0
伸びてると思ったらマ板向けの話かよ
499デフォルトの名無しさん (ワッチョイ 6e63-iig7)
2020/01/18(土) 09:09:16.54ID:Y/6fKVhZ0
無職・だめとかメンヘラ板の間違いだろ
500デフォルトの名無しさん (ワッチョイ 8679-6zBS)
2020/01/18(土) 09:19:42.14ID:wrxXpMgf0
>>497
最低限副作用があるかないか分かるような書き方をしたい
501デフォルトの名無しさん (ワッチョイ 8259-6zBS)
2020/01/18(土) 13:20:05.43ID:T0jlPL4l0
>>500
これはフィールドに依存、これは静的関数みたいな別けは何基準でしてる?
少なくとも自分の中での基準は明確にしておきたいんだけど全然わからん
使い方次第だろうけどあとからコロコロ変わるのよね……
502デフォルトの名無しさん (ワッチョイ 8679-6zBS)
2020/01/18(土) 13:36:35.87ID:wrxXpMgf0
プロパティにフィールドのラッパー以上の仕事をさせない
処理を必要とするものはメソッドにする
ジェネリックコレクションもそうなっている

オブジェクト指向信者だから単純な静的関数はあまり使わない
503デフォルトの名無しさん (アウアウエー Sa0a-pN7o)
2020/01/18(土) 14:33:05.38ID:AzzMP3A9a
バッキングフィールドに値を代入するのだって処理ですよw
504デフォルトの名無しさん (ワッチョイ 8259-6zBS)
2020/01/18(土) 16:29:01.29ID:T0jlPL4l0
System.Text.Jsonでdictionaryやsortedlistのkeyがint時のエラーって直ったんじゃないの? また復活したの?
> https://github.com/dotnet/corefx/issues/40120
505デフォルトの名無しさん (ワッチョイ 8679-6zBS)
2020/01/18(土) 18:56:57.97ID:wrxXpMgf0
>>503
アスペかな
506デフォルトの名無しさん (アウアウエー Sa0a-pN7o)
2020/01/18(土) 19:08:15.28ID:AzzMP3A9a
違うよw
端的に
>処理を必要とするものはメソッドにする
こんな方針間違ってます。
羹に懲りてなんちゃらそのものだね。
507デフォルトの名無しさん (ワッチョイ dd1a-nNT5)
2020/01/18(土) 20:01:07.67ID:p3+FYMMX0
先輩方、Blittableな構造体の実装だけを動的に付け替える方法って何か無いもんですか?
巷で持て囃されるストラテジパターンは参照を使う都合で非Blittableになってしまうので、今はメソッドをenumで指定して愚直にswitchで振り分けていますが、発火の度に分岐を走らせるのはとても優雅とは思えんのです
508デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/18(土) 20:08:54.79ID:34RcyaUW0
アスペの考える「処理」の定義がおかしいだけ
509デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/18(土) 20:09:57.73ID:dtJtZllYr
Blittableというワードを始めてみた
510デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/18(土) 20:14:33.94ID:dtJtZllYr
内容により
配列やリストや辞書などいろいろ使えるとだけw
511デフォルトの名無しさん (ワッチョイ 8679-6zBS)
2020/01/18(土) 20:19:12.71ID:wrxXpMgf0
https://docs.microsoft.com/ja-jp/dotnet/framework/interop/blittable-and-non-blittable-types
Bittableって俺も初めて聞いたわ
要はCの構造体みたくサイズがきちんと定まる型ってことか
512デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/18(土) 20:38:16.33ID:34RcyaUW0
Blit = 転送する
アンマネージド⇔マネージドに(素直に)転送可能 ってことかな
513デフォルトの名無しさん (ワッチョイ 412d-A78j)
2020/01/18(土) 21:30:37.18ID:UIpHV3iS0
>>507
Blittableに自身を引数に取るdelegeteをIntPtrで持てばええんじゃね
514デフォルトの名無しさん (ワッチョイ dd1a-nNT5)
2020/01/18(土) 21:49:52.66ID:p3+FYMMX0
>>513
あざっす大先輩
Cと同じように関数ポインタを使えというのは素晴らしいアイデアなのですが、C#での具体的なやり方が分からんのです
なのでそこのところ詳しくご教示頂けるとありがたいです
515デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/18(土) 21:52:47.38ID:IiMusaQC0
using System.Memory
516デフォルトの名無しさん (アウアウエー Sa0a-pN7o)
2020/01/18(土) 22:30:29.21ID:AzzMP3A9a
その構造体をrefで渡す必要がないなら構造体をクラスでラップすればいいだけでは?
refで渡す必要があるならこんな方法しかない気が
struct MyStruct:IDisposable
{
  public int X;
  public void RegisterAction(Action<MyStruct> action)
  {
    ActionTable.Add(this, action);
  }

  public void Action()
  {
    ActionTable[this](this);
  }

  public void Dispose()
  {
    ActionTable.Remove(this);
  }

  private static Dictionary<MyStruct, Action<MyStruct>> ActionTable
    = new Dictionary<MyStruct, Action<MyStruct>>();    
}
517デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/19(日) 00:19:29.45ID:MaygjnBtr
>>510
あくまでもこれを押す俺
518デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 01:04:08.98ID:CTmJNu4H0
実際に処理が分岐してんのに分岐してないようにみせるのって何がいいんだ?

同じルート通ってるのに違う処理呼ばれてんだろ?
ドキュメントにそれの記述がない状態でそれということを理解するためには
ブレークで止めてステップ実行でもするしかないじゃないか?
お前がスマートだと思ってるコードは他人には読み難いだけのクソコードである可能性を心配したほうがいいな
心が壊れてしまう前に
何十年もそんなくだらないことに時間を割いたあとでは大変だ
519デフォルトの名無しさん (ワッチョイ 6e63-iig7)
2020/01/19(日) 01:46:20.77ID:Ev0CJ8lF0
大変なおつむからどうにかしとけ生ゴミ
520デフォルトの名無しさん (ワッチョイ f901-YUdL)
2020/01/19(日) 02:12:12.57ID:bwAT5wiO0
>>518
まあ、誰しも最初からわかってるわけではないので、言ってることがわからんでもない
LINQわかりにくいからループ回せやみたいなもんかな?

〉実際に処理が分岐してんのに分岐してないようにみせるのって何がいいんだ?
まずその捉え方が間違い
actionのメリットをググれば残りの疑問も解消する
521デフォルトの名無しさん (ワッチョイ bd5f-s5Rz)
2020/01/19(日) 02:20:46.05ID:ZdN+pllC0
>>518
C言語の関数ポインタも認めない派?
522デフォルトの名無しさん (ワッチョイ cd0c-A78j)
2020/01/19(日) 08:12:00.36ID:n+8OO44x0
>>514
正直なぜBlittableなのか、参照型ではだめなのか、という話から詰めた方がいいと思うけど

struct Foo {
 public int data;
 public IntPtr fn;
}

static class FooDo {
 public static Do1(ref Foo x) {}
 public static Do2(ref Foo x) {}
}

こんなのをMarshal.GetFunctionPointerForDelegate/GetDelegateForFunctionPointerで相互変換する
厳密にBlittableじゃなくて値型で良いならdelegeteそのままで持てば良いけど
523デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 08:13:14.51ID:CTmJNu4H0
>>520
ねーよ
だって俺が他人のソースを読むときに一番嫌なのは見えにくい動作だもの
ここが隠れてわかりにくい時点でその組み方に何の魅力も感じない
たくさん処理が分岐してるのであればそれを明示的に記述したい
思いっきりswitch caseで書きたい
ソースにhtmlのようなフォント設定機能があったら太字にしてサイズは72ぐらいで表示したい
524デフォルトの名無しさん (ワッチョイ e252-iiEx)
2020/01/19(日) 08:57:48.92ID:Wel1D6/w0
>>523
小学校からの通知や町内の回覧板に漢字が使われていたら、「俺は漢字は読めねーんだ!覚える気もしねぇ。俺が読めるようにひらがなだけ使え!」って言ってるようなもんだな。
難読漢字を多用してるならともかく、常用漢字も読めないならお前が勉強しろよ。
525デフォルトの名無しさん (ワッチョイ f901-YUdL)
2020/01/19(日) 09:07:37.25ID:bwAT5wiO0
>>523
〉だって俺が他人のソースを読むときに一番嫌なのは見えにくい動作だもの
誰だってそれは同じ

〉ここが隠れてわかりにくい時点でその組み方に何の魅力も感じない
それは、共通処理が隠れてわからないから全部インライン展開しろやと言ってるのと同じで、バカの理論。
引数にactionがある時点で、呼び出し元で処理を指定するのが判断できる
そういう共通処理なんだなとわかる
使い方もわかる
わかりにくいところはない
この程度のことをわかりにくいと思うなら、相当センス無いよ

〉思いっきりswitch caseで書きたい
actionを知らなくて(使い方に慣れてない。メリットを理解できてない)そういう人も多いからどちらでもどうぞ
action書けるとこは全部書けとも思ってない。メリット大なとこだけ書く(書き直させる)だけでも可と思ってるので
526デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 09:16:15.41ID:CTmJNu4H0
>>525
判断できる、じゃねーよアホか
明示的に書くと何でダメなんだ?
明らかに判断しなくちゃいけない手間が入ってるじゃん
そしてそこにメリットがない
527デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 09:19:15.16ID:CTmJNu4H0
俺の価値観はさっきレスした通り
わかりやすい、明示的に、を何より優先する
お前のactionの処理は全部でいくつあるのかソース中を検索かけて隅々まで見ないとわからないじゃないか
欠陥コード乙
528デフォルトの名無しさん (ワッチョイ 6e7b-sHAu)
2020/01/19(日) 09:25:38.63ID:ZzFAG3/g0
君の価値観なんて興味ないよ
529デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 09:27:56.48ID:CTmJNu4H0
>>528
涙を拭けよ
530デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/19(日) 09:32:32.58ID:MaygjnBtr
言わんとすることはわかるけど
まあ複数の場所に100個caseのあるswitchが出てくるとくじけることがある
531デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/19(日) 09:33:49.54ID:I9Aex3kB0
似たようなクラスが100個あっても挫けるw
532デフォルトの名無しさん (ワッチョイ f901-YUdL)
2020/01/19(日) 09:36:41.75ID:bwAT5wiO0
何だ、センス以前に真正バカだったか。
こういうのを老害(ゆとりバカ)と言うんだなw
真正バカと議論しても無駄なので無視(NG)っと
533デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 09:37:18.43ID:CTmJNu4H0
しかもクラス100個が国産牛の脂肪ように間に入ってる
それらのactionの数だけそこを通るんだ
どう考えてもswitch caseのがいい
534デフォルトの名無しさん (アウアウイー Sa91-Ip36)
2020/01/19(日) 09:38:38.35ID:3HoQIb8Ca
老害staticおじさんの思考回路だな
こういうのは非つっようない限り関わり合いにならないようにするに限る
535デフォルトの名無しさん (ワッチョイ dd1a-nNT5)
2020/01/19(日) 09:42:42.21ID:8lfsQblV0
>>522
マジであざっす!
536デフォルトの名無しさん (ブーイモ MM22-l/UV)
2020/01/19(日) 09:45:42.06ID:DBQFxOO/M
明示的に書いてあるほうがいいってのは数が少ない場合に限る
明示的に書いてあっても数が増えると同時に考えなければならない事項が増えて脳に多大な負担がかかるようになる
だから細かいことは気にしなくてもうまく行く仕組みを確立して脳の負担を減らすことの重要性が増す

というのがコードリーディングの観点での評価
他にもリビルド不要で拡張可能であるかどうか
開放閉鎖の原則を満たすかどうか
といった観点でも評価ができる
537デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 09:47:57.84ID:CTmJNu4H0
>>536
は?
むしろ多いときほどいいだろ
538デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/19(日) 09:48:44.90ID:UmCLgzkS0
>>525
> 誰だってそれは同じ
同じじゃないだろ
必要ないものは見たくないのが普通だと思うぞ…
539デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/19(日) 10:32:09.72ID:MaygjnBtr
コンパイラやバイトコードのツール類は巨大なsweichがドカーンと鎮座してるけど
内容がはっきりしてるからわかりやすい
検索したら内容は終えるし

そうじゃなくて内容に応じて動的に変わる場合はそれじゃ賄えないのでdelegate使うけど追うのは大変なのはわかる
でもそれはswich caseに落とし込めない
落とし込むとバグの温床になる
540デフォルトの名無しさん (ワッチョイ f901-YUdL)
2020/01/19(日) 10:35:49.15ID:bwAT5wiO0
>>538
必要ないものを書くんじゃねーよ
削除しとけ真正バカ2号
541デフォルトの名無しさん (ブーイモ MM22-l/UV)
2020/01/19(日) 10:36:30.94ID:DBQFxOO/M
>>537
多いときほどswitchは悪い
数多の案件で膨大なswitchが開発者を苦しめた実績がある
542デフォルトの名無しさん (ワッチョイ a9a7-oy3B)
2020/01/19(日) 10:52:59.80ID:CTmJNu4H0
>>541
どこ?
543デフォルトの名無しさん (ワッチョイ 0201-mQF2)
2020/01/19(日) 10:59:47.28ID:UmCLgzkS0
>>540
匿名掲示板で人に指図とかバカすぎるわ
そもそもどうやって削除するんだよw
できるならお前のアホレスから削除しとけ
544デフォルトの名無しさん (ワッチョイ 026a-A78j)
2020/01/19(日) 12:14:24.61ID:dJMtUDCZ0
このまえ相談室で暴れてた人と同じ人かw
545デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/19(日) 12:21:15.99ID:MaygjnBtr
相談室ってまだあったのか
無くなったんだと思ってたw
546デフォルトの名無しさん (オッペケ Srd1-JESV)
2020/01/19(日) 12:34:19.33ID:MaygjnBtr
enumに実装が書けないのでと言う話も書いておこう
547デフォルトの名無しさん (ラクペッ MM99-iig7)
2020/01/19(日) 12:41:58.91ID:/DZ7cGa+M
ガイジの相手をするなガイジ予備軍が
548デフォルトの名無しさん (ワッチョイ 8679-6zBS)
2020/01/19(日) 16:10:31.36ID:0ZXiDmye0
とガイジが申しております
549デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/19(日) 18:32:06.96ID:ehZNNwbSF
>>465
「tsv」という呼称では呼ばれていなかったがタブ区切りデータは普通にあった
個人的にはアセンブラとか機械語だけで書かれてるプログラムが使ってることが多かった印象

他には「:」区切りや「;」区切りも割と良く見かけた
550デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/19(日) 18:36:52.64ID:ehZNNwbSF
>>469
切れたことならあるよ
551デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/19(日) 18:40:17.51ID:ehZNNwbSF
>>484
感情はあくまで感情だから合理的に納得させる必要は無いでしょう
552デフォルトの名無しさん (アウウィフ FF05-otum)
2020/01/19(日) 18:41:50.89ID:ehZNNwbSF
>>482
逆らっても首になるとは限らない
もしその程度で首になるような会社なら辞めた方が良い
営業に対しては言いたいことを言った方が良い
553デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/19(日) 18:49:45.09ID:I9Aex3kB0
>>549
古いMakefileがそだねー
554デフォルトの名無しさん (ワッチョイ e14f-A78j)
2020/01/19(日) 21:12:21.07ID:fzpRtoDi0
昔はレコードデリミタ/フィールドデリミタといってプログラムごとに適当に決めてたな。
555デフォルトの名無しさん (ワッチョイ 8dda-3EbS)
2020/01/19(日) 21:17:27.74ID:I9Aex3kB0
ascii コードの30 = rs/31 = us
がそれだよ
556デフォルトの名無しさん (ワイーワ2 FF4a-otum)
2020/01/20(月) 13:02:26.55ID:0GX6odYxF
1E
1F
って書いて欲しい
557デフォルトの名無しさん (ワッチョイ 872d-N7cG)
2020/01/22(水) 05:35:21.57ID:jiAXPaf20
単一のページ内で、Blazor ServerとBlazor Webassemblyを混ぜて使うことってできないのですか?
主にBlazor Webassemblyを使いたいものの、乗っ取られると危険な処理はBlazor ServerのビルドインSignalRに全部まかせたいんです
558デフォルトの名無しさん (ドコグロ MM7f-9ipO)
2020/01/24(金) 09:56:09.28ID:JmCTVAd4M
>>557
普通にサーバーサイドはREST API書けや
Blazorに固執する意味がわからない
559デフォルトの名無しさん (ワッチョイ 872d-N7cG)
2020/01/24(金) 10:59:53.85ID:dGUW4YWx0
>>558
ちゃんとできる人ならそれもいいかもしれませんが、私のレベルで手を出すのは危険なのです
560デフォルトの名無しさん (ドコグロ MM7f-9ipO)
2020/01/24(金) 11:40:10.55ID:JmCTVAd4M
意味がわからん
Web APIなんて枯れきった技術だろう
Blazorはバグだらけで、問題があったら自分でソース見たりgithubのissue上げたりできない奴は手を出してはいけない代物
561デフォルトの名無しさん (ワッチョイ 872d-N7cG)
2020/01/24(金) 12:12:18.20ID:dGUW4YWx0
あなたは優秀なのかもしれませんが、私はマイクロソフトの技術者の足元にも及ばないので勘弁してください
562デフォルトの名無しさん (ラクッペ MMcb-FqWS)
2020/01/24(金) 12:33:53.87ID:/3SSBVjjM
百姓は畑を耕してろ
一丁前にコードを書くな
563デフォルトの名無しさん (スフッ Sd7f-er59)
2020/01/24(金) 16:03:06.25ID:3F6Soz5Bd
お百姓さんにはかなわないけどね
米作ってる人が一番尊い
564デフォルトの名無しさん (ワッチョイ a7da-OsbW)
2020/01/24(金) 16:32:47.40ID:0fpDf6xz0
上流でウンコしていたぞ(猪が)
565デフォルトの名無しさん (ワッチョイ a738-LPmA)
2020/01/24(金) 17:28:13.96ID:j9CjfTQQ0
Blazorは表面的には簡単に見えても
本質的には難易度高いはずだけどな
(見えないところで無理してる分)

サーバサイド技術は基本的な知識だから学習するに越したことは無いよ
つーけ後で結局手詰まりになる
566デフォルトの名無しさん (ブーイモ MMcf-PIvP)
2020/01/24(金) 18:26:34.95ID:3tyqsjVMM
blazor clientはシンプルなアーキテクチャでいいね
567デフォルトの名無しさん (オッペケ Sr7b-V1vN)
2020/01/24(金) 18:45:27.77ID:QXbxJw7Rr
Blazorって普通は使う局面ないよな
568デフォルトの名無しさん (ワッチョイ a7da-OsbW)
2020/01/24(金) 18:48:38.24ID:0fpDf6xz0
金出してくれる人が居ないと使わないな
569デフォルトの名無しさん (オッペケ Sr7b-V1vN)
2020/01/24(金) 18:50:59.25ID:QXbxJw7Rr
開発側の利点で顧客が金を出してくれることはほぼないから無理
将来のメンテナンスコスト考えると普通にjs使うだろう
570デフォルトの名無しさん (ドコグロ MM7f-9ipO)
2020/01/24(金) 19:02:01.81ID:JmCTVAd4M
まあWPFみたいにすぐに負債になるのがわかりきってるし、
自分のスキル的にも時間の無駄でしかないわな
571デフォルトの名無しさん (オッペケ Sr7b-V1vN)
2020/01/24(金) 19:03:04.46ID:QXbxJw7Rr
MSがこういうものを金をかけて開発してるのが納得いかない
無駄でしかないのに
572デフォルトの名無しさん (ブーイモ MMcf-PIvP)
2020/01/24(金) 21:32:32.32ID:BNcCGxG7M
Blazorは意外と業務系で普及するんじゃねえかと思ってる
業務系はJS不得手な人材沢山いるからC#でサクサク開発できるメリットがデカイ
573デフォルトの名無しさん (スププ Sd7f-fuq3)
2020/01/24(金) 22:20:15.50ID:C3Q0jCA8d
WebAssemblyの実用化楽しみ
MSは開発がんばって欲しい
574デフォルトの名無しさん (ワッチョイ 2717-Jq7D)
2020/01/24(金) 22:53:56.32ID:qwJdCR860
WebAssemblyを基盤にしているからSilverlightみたく捨てられることは無いとは思うけどね
575デフォルトの名無しさん (ワッチョイ 5f59-9rwV)
2020/01/24(金) 22:59:42.67ID:A+ngz/Gy0
js不得手マンだけどjs周りをもっと使いやすくしてくれればそれでいいのよ
TypeScript使えば良さそう?だけど触ったことない
576デフォルトの名無しさん (ワッチョイ bf8c-hW+K)
2020/01/24(金) 23:04:24.05ID:7w/aTgJB0
blazorアイデアはいいんだけどいかんせんバイナリサイズがでかいのがどうにかしてほしい(サーバーサイドの方にはあまり将来性がないように見えるので)
せめてcorert経由するようになれば軽くなるんじゃないかと思うんだが
577デフォルトの名無しさん (アウアウウー Sa4b-9ipO)
2020/01/25(土) 01:41:58.91ID:d2esTLOPa
>>572
HTML/CSSはどのみち必須なんだから、クラシックなMVCアプリならほとんど変わらんよ
Blazorの意義はJSをゴリゴリ書かなくてもSPAを作れることにあるわけだけど、業務系でそんなもん要求されない
578デフォルトの名無しさん (ブーイモ MMcf-PIvP)
2020/01/25(土) 08:09:35.21ID:uZBTkj+yM
業務系は巨大で複雑なUIが多いからSPAのほうがうまくハマる
今は高度なJSスキルが必要だから避けられてるけどC#で書けるって理解されたら業務系でも採用が増えるだろうね
JSを排除できるメリットはかなり大きい
それに加えてMVCよりBlazorのほうが構文とアーキテクチャが直感的で簡単なのもポイント
BlazorはHTTP/HTMLの事情を詳しく知らなくても書けるように出来てる
MVCはHTTP/HTMLフレンドリで必要な前提知識が多いから業務系では採用しにくい
579デフォルトの名無しさん (ワッチョイ a7da-OsbW)
2020/01/25(土) 08:16:01.45ID:9ulxHddS0
それを資料に纏めて、金持っている
人を説得しないと。普及しないと思うよ。
580デフォルトの名無しさん (ワッチョイ 874f-Jq7D)
2020/01/25(土) 09:56:59.74ID:E5VEPFTe0
BlazorはいいんだがRazorはどうにかして欲しいねぇ。WPFとか使えるようになればいいが。
581デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/25(土) 11:56:16.01ID:yEmrfQyPa
swtich分って必要なんですか?
普通に変数1個にして外部ファイルで設定すればいいだけじゃ?
582デフォルトの名無しさん (ワッチョイ 47a7-zUmo)
2020/01/25(土) 12:16:51.33ID:aGrtTikH0
必要な引数も違うのにどうやって分岐無しで呼び出すの?
583デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/25(土) 12:47:14.80ID:yEmrfQyPa
1=りんご
2=バナナ
3=キウイ
4=いちご
5=みかん

こんな感じのテキストファイル作ればいいだけじゃ?
584デフォルトの名無しさん (ワッチョイ 7f7b-cNeF)
2020/01/25(土) 12:49:28.83ID:i8uJy1+m0
>>583
相談室でやれ
585デフォルトの名無しさん (ワッチョイ 47de-zUmo)
2020/01/25(土) 13:42:09.40ID:4b4RV2/q0
>>583
引数がそれぞれ0,4,7,17,5とか変わったらどうやって呼び出すの?
586デフォルトの名無しさん (ワッチョイ 7fe3-9rwV)
2020/01/25(土) 14:13:33.17ID:o6R4c/m/0
>>583
それがクラス定義だった糞プログラムのメンテ担当したことあるけど、正直殺意沸くレベルだった
587デフォルトの名無しさん (ワッチョイ 872d-N7cG)
2020/01/25(土) 14:20:20.86ID:ZOSNmQ0W0
文字列やバイナリを処理する辺りでswitchが出てくるのは仕方ないにしても、それ以外でswitch文が出てきたらほぼ設計ミスだろうな
588デフォルトの名無しさん (ワッチョイ 872d-N7cG)
2020/01/25(土) 14:22:56.55ID:ZOSNmQ0W0
ごめん、入力を受け付けるようなものは使ってもミスでも何でもないな
589デフォルトの名無しさん (ワッチョイ 5f52-zhKY)
2020/01/25(土) 14:29:09.12ID:yYit9skn0
>>583
それでいいと思うなら、もうそれでいいよ。
switchが役立つと思う場面に出会ったことがないなら無理に使わなくていい。
普通にプログラミングの学習をしたり実際に何か作り始めれば、そう遠くないうちに役に立つと思える場面に出会うはず。
590デフォルトの名無しさん (ブーイモ MMcf-PIvP)
2020/01/25(土) 14:30:38.90ID:PElhnxqRM
重複したswitchや長大なswitchが悪いのであってswitch全てが悪いわけではない
拡張するときに不便を感じたら多態に置き換えればいい
591デフォルトの名無しさん (ワッチョイ 7f63-FqWS)
2020/01/25(土) 14:46:40.30ID:r9Vw3y6V0
>>583
使い道がないのはお前の存在も同じだから
中央線にでも飛び込んで死ね
592デフォルトの名無しさん (アウアウウー Sa4b-2gyN)
2020/01/25(土) 14:56:41.64ID:GuCewVbja
プログラミングに限らずどのフィールドでもそうだけど、
イキってる系の連中の主張は話半分に聞いておくのがいいと思うよw
593デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2020/01/25(土) 15:17:19.02ID:m3Nt4oA+0
>>583
条件文をマッピングテーブルで置き換えるという古典的なリファクタリング方法の一つ
どちらかが常に優れてるわけではなく状況に応じて選択するもの

C#のバージョンや分岐の数によっては
コンパイラがswitch文をdictionaryのlookupに変換してる
594デフォルトの名無しさん (アウアウウー Sa4b-9ipO)
2020/01/25(土) 15:30:40.16ID:d2esTLOPa
>>593
それ今は迷信
Roslyn移行後のC#コンパイラはswitchのcase数が多い場合はハッシュに基いた二分探索のようなコードが生成される
595デフォルトの名無しさん (ワッチョイ 5f6a-Jq7D)
2020/01/25(土) 17:27:27.49ID:BsPUEvyF0
>>578
同感
業務系アプリをブラウザで動かしたいっていう潜在要求は多いと思う
596デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2020/01/25(土) 18:16:56.04ID:m3Nt4oA+0
>>594
Roslynから変わったのは文字列で分岐される場合のみの話

文字列比較でhash tableをlookupするんじゃなく
数値比較で事前にハッシュしたsort済みarrayをlookupするようになってる
細かい部分を抜きにすると数値をキーにしたSortedDictionaryのlookupと同じ
でこういうのは今の>>583には不必要な知識
597デフォルトの名無しさん (アウアウウー Sa4b-kxbL)
2020/01/25(土) 22:26:55.47ID:wDceYoyFa
流れよく分かんないんだけど
つまりenumで分岐して処理呼び出す場合はswitchと配列のどっちが何倍くらい速いの?

public static int Execute(this Test type, int value){
 // 無難にベタ書き
 switch(type){
  case Test.One: return Method(value);
 }

 // 配列からメソッドを呼ぶ
 return methods[(int)type](value);
}

こんな風にenumに処理持たせてやりたいんだ俺
598デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/25(土) 22:30:01.75ID:/sK0Ml340
ケースバイケース
どっちが早いのかは実測が基本
どっちも最適化等々で逆より早くなりうる可能性がある
599デフォルトの名無しさん (ワッチョイ 5f79-9rwV)
2020/01/25(土) 23:36:00.99ID:qKRb63Fa0
単純な配列はいつでも最速だと思ってたが違うのか?
読むのが単なる値じゃなくて処理な時点で誤差レベルだと思うが
600デフォルトの名無しさん (ワッチョイ a7da-OsbW)
2020/01/25(土) 23:53:16.79ID:9ulxHddS0
XLAT
601デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/26(日) 00:22:55.28ID:P1M2Ekec0
配列はちゃんと理解してないと境界値チェックが入って意外に遅くなることがあるよ
だいたい気にならんレベルだけど競技プロとかやるようなら結構影響してくる
602デフォルトの名無しさん (アウアウウー Sa4b-2gyN)
2020/01/26(日) 00:30:35.09ID:1Qgc/rXOa
>>597
仮に配列使う方が効率的だとしてもenumの値に依存するような実装は論外でしょうw
やってはいけない、の見本みたいなもの
603デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/26(日) 01:00:25.24ID:P1M2Ekec0
俺もCから入ったから配列にして呼び出す処理は昔はよく書いた
enumを配列の添字にするのもよくやった
処理速度気にする開発することは多少あるけど基本的にどっちもC#ではやらんな

enumに処理持たせたいって要件ならそれぞれの値ごとにclass作って継承させるかな?
詳細仕様次第ではあるけど
そんなんめんどくせってなるようなレベルならぶっちゃけどっちだって変わらん話なんだから好きにすれば?って思う
604デフォルトの名無しさん (ワッチョイ 5f01-oRbG)
2020/01/26(日) 02:03:17.34ID:ux8Vy6ZU0
>>597
delegateの配列で試してみたが
switchのほうが2~5倍くらい速かった
最適化できる度合いの違いかな
605デフォルトの名無しさん (アウアウウー Sa4b-2gyN)
2020/01/26(日) 02:46:23.95ID:1Qgc/rXOa
過去に散々既出だと思うけどdelegate自体がもともと重いんだろうね。
単なる関数ポインタとは違うから
606デフォルトの名無しさん (アウアウウー Sa4b-kxbL)
2020/01/26(日) 07:42:07.62ID:oZpGD5h+a
>>605
デリゲートでなくインターフェースを使っても>>604と同じ結果なのが謎だった
607デフォルトの名無しさん (オッペケ Sr7b-V1vN)
2020/01/26(日) 10:32:12.87ID:aeprKMLHr
enumの実装が書けたら違うことになってるかもな
でも今はいらない
608デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/28(火) 19:46:47.61ID:eMbEeMz/a
>>585
内部的なロジックミスにならんようにすればいいだけ
プログラムが長大になる原因はテキストを利用しないからだと思いますよ
1万行のプログラムが果たしてそれだけ必要なのか?って思います
609デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/28(火) 19:48:39.10ID:eMbEeMz/a
>>589
俺も思いますね
というか文法的な事でももっと改善してよって事多いですよね!

0<input<&&input<5→うぜー
0<input<5→これでいいだろうが
610デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/28(火) 20:37:03.72ID:WmWS3LeK0
>>609
範囲チェックの改善なんて散々議論されてるし今も要望で上がってる
気になるなら見てくればいいよ
なぜ未だに入っていないかとかもちゃんと説明されてる
611デフォルトの名無しさん (アウアウウー Sa4b-FkkX)
2020/01/28(火) 20:54:23.00ID:eMbEeMz/a
>>610
何で?ググるの面倒なので
612デフォルトの名無しさん (ワッチョイ 5f52-zhKY)
2020/01/28(火) 20:56:03.48ID:ciqR13vi0
>>609
もうID変わってるだろうけど>>589なのだが、皮肉のつもりで言ったのが通じてないようだ。
switchの用途として>>583みたいなのでいいのではなんて言うのは圧倒的に経験が少ない証拠だろう。ちょっと慣れて自分でコードを書けるようになればそんなバカな発想はしなくなるよ。
そんな段階で>>609みたいな文法にケチつける前に、なんでその文法が必要なのか、何でそういう形式になってるのか理解する努力をしなよ。
C#のような後発の言語が生まれる過程では、君みたいな初心者が考えるようなことはとっくの昔に議論済みでそれらを踏まえた上で今の形がある。疑問を持つのは多いに結構だけど、往々にして言語の仕様が悪いのではなく、単に自分が無知なだけだから。
613デフォルトの名無しさん (ワッチョイ bf8c-vjh7)
2020/01/28(火) 20:58:55.67ID:gjKbUoJM0
そもそもシリアライズするにしても=なんかつかいたかねえ
614デフォルトの名無しさん (ワッチョイ 0763-Lndp)
2020/01/28(火) 21:06:37.92ID:WmWS3LeK0
>>611
俺も面倒
請求書送っていいなら訳つけてまとめてくるよ
615デフォルトの名無しさん (ワッチョイ 47a7-zUmo)
2020/01/28(火) 21:06:53.68ID:q5l9JsKl0
最近の言語の傾向見てると
どっかの言語が導入すると移植のために?かどうかはわからんが
良し悪しに関わらず他の言語も実装される感じ
616デフォルトの名無しさん (ワッチョイ 47a7-zUmo)
2020/01/28(火) 21:23:16.25ID:q5l9JsKl0
JavaScriptとPHPに慣れたら多次元連想配列無い言語がオワコンに見えるようになった
しかし

var obj = getExExBigData();

↑超絶巨大データ(フォーマット・ドキュメント不明)
勘弁してくれよってのも事実
c#の未来はどうなるのか?
617デフォルトの名無しさん (ワッチョイ 7dda-mRwA)
2020/01/29(水) 04:42:05.41ID:9DDwBhYq0
DataGridViewで、Cellに不正な値が入力された場合はフォーカスの移動を禁止するようにしたいのですが、
以下の方法では、移動してしまいます。
移動させないようにするにはどうすればよいでしょうか。

private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (String.IsNullOrEmpty(this.dataGridView[e.ColumnIndex, e.RowIndex].Value as string))
{
e.Cancel = true;
}
}
618デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/01/29(水) 07:14:46.75ID:hzNdq+pG0
>>617
具体的に何入力して移動したん?
619デフォルトの名無しさん (ドコグロ MM12-CWn9)
2020/01/29(水) 07:26:15.27ID:M9CckfF9M
>>609
pythonへGo!
https://docs.python.org/ja/3/reference/expressions.html#comparisons
620デフォルトの名無しさん (アウアウウー Sa21-4r/6)
2020/01/29(水) 07:51:31.42ID:wu2AIlA1a
>>617
CellChangingみたいな選択セル変更前のイベントが無かったっけ?
621デフォルトの名無しさん (ワッチョイ 667b-UZ8j)
2020/01/29(水) 17:28:02.98ID:HGA4G3kr0
>>617
この人だけじゃないけど、まずこういうところに質問投げる前に分岐がきちんと機能しているか確かめた方がいい
それの場合は this.dataGridView[e.ColumnIndex, e.RowIndex].Value as stringの内容確認
直接の回答としてはhttp://dobon.net/vb/dotnet/datagridview/cellvalidating.htmlを参考にして書き直せ
解説を入れると
DataGridViewでセルに直接値を入力した場合はフォーカスが変わるか.EndEdit()などしないと入力された値が反映されない
そのイベント自体そのために用意されているはず
だからそのメソッドの中で「dataGridView[e.ColumnIndex, e.RowIndex].Value」は入力する前のセルの値で
入力された値を参照したかったら「e.FormattedValue」を見ないといけない
622デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 20:53:31.76ID:2z1gsFLxa
>>612
この言語って文字列操作に特化してるからテキストを利用するのって
全然普通だと思いますけどね。

後0<input&&input<10じゃないとだめなのは、何となくですが
数式はポーランド記法によって処理されることに関係しますか?
分かりませんけど。
623デフォルトの名無しさん (ワッチョイ 0a1b-jgyw)
2020/01/29(水) 21:21:21.50ID:7ZbwpcWy0
>>622
a < b < cが出来ない理由は自分で演算子オーバーロードしてみたら簡単に分かるぞ
a < bの時点でbool値を返すからcとは比較できなくなる
624デフォルトの名無しさん (ワッチョイ 9e8c-FwRn)
2020/01/29(水) 21:32:07.46ID:3Ec+y/7b0
いや構文解析での段階の話(要は3項演算的な)だろうかなそれは関係ないと思う
まあ文字列操作に特化は意味不明だけど
625デフォルトの名無しさん (ワッチョイ ad90-xN1s)
2020/01/29(水) 21:36:40.28ID:xfBLmZ140
それ関係ないと思う
626デフォルトの名無しさん (ワッチョイ ad90-xN1s)
2020/01/29(水) 21:39:08.32ID:xfBLmZ140
かぶった。関係ないっていったのは演算子オーバーロードのことね。
627デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/29(水) 21:45:33.03ID:Bye/BSTsa
>>623
それは出来ない理由にはなってないんじゃないの?
あんまり自信はないが、

評価結果が数値 < 評価結果が数値
評価結果が数値 < 評価結果が数値 < 評価結果が数値

両者を別の演算として区別することはやってできないことはないはず。
628デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
2020/01/29(水) 21:59:18.87ID:iDUguYS70
>>627
既存のルールに新たに3値を並べて比較する構文を追加するとしたら、既存のルールを維持したまま、新たなルールに伴う考えうる様々な組み合わせについて明確で一貫性や完全性のあるルールを作らなければならないが、かなり複雑なものになるだろう。
やってやれないことはないにしても、デメリット(手間と複雑さや混乱)に見合うメリットがないから、ほとんどの人に望まれていないし、言語仕様として追加されることもないだろう。
629デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/01/29(水) 22:17:11.48ID:hzNdq+pG0
こんなの簡単だろ
でもやっても凄いって言われないから
実装されないだろうな
630デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 22:18:04.76ID:2z1gsFLxa
<・・・小文字だからC#の言語に従う
<・・・大文字なので特別に数学的記法とみなす

これでどうだろう
631デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/01/29(水) 22:31:04.06ID:Fd2iU5f0M
if(a < x < b)
実はこれは言語機能をいじらなくても自作型で再現できる
632デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/29(水) 22:34:17.30ID:PCXIkBj+0
>>628
python で実現してるのに何を言ってるんだよw
633デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 22:34:24.68ID:2z1gsFLxa
>>631
#defineか?
634デフォルトの名無しさん (ワッチョイ 0a1b-jgyw)
2020/01/29(水) 22:39:08.64ID:7ZbwpcWy0
>>627
そりゃ実装すれば何だって可能だが、論理的な矛盾になるから無理なんだよ
演算子の優先順位と結合則で二項演算するのが原則なのに、そこを横紙破りしてしまったら誰も付いて行けない
635デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
2020/01/29(水) 22:41:27.05ID:iDUguYS70
>>630
そんな見にくい&醜いのはやめてくれ
636デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/01/29(水) 22:46:36.64ID:hzNdq+pG0
>>634
どうでもいいだろそんなん
637デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/01/29(水) 22:56:00.32ID:PvehEt0vM
>>633
基本的な演算子定義だけで出来る
638デフォルトの名無しさん (ワッチョイ 9e8c-FwRn)
2020/01/29(水) 22:56:01.11ID:3Ec+y/7b0
どうしてもやりたいなら$"3<{x}<5".Predicate()みたいなライブラリ作ればいいんじゃね
639デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/29(水) 23:06:16.31ID:Bye/BSTsa
>>634
文脈依存キーワードと何も違わないと思うよ
640デフォルトの名無しさん (ワッチョイ 7d4f-unxX)
2020/01/29(水) 23:16:52.10ID:tkk/tPU50
a < x の値を独自クラスのインスタンスにできるならあとの < b はどうにでもなるだろうけど
そもそも前者って可能なんだっけ?
641デフォルトの名無しさん (アウアウウー Sa21-0Ybi)
2020/01/29(水) 23:24:37.56ID:2z1gsFLxa
>>637の答えがほぼ>>638ってことで良いですか?
また便利な情報を得てしまったわ
642デフォルトの名無しさん (ワッチョイ 0a1b-jgyw)
2020/01/29(水) 23:27:24.25ID:7ZbwpcWy0
>>640
比較演算子をオーバーロードするだけじゃない?
false相当の値か右辺の値を戻すようにして、併せてimplicitでboolを当てておけばifでも使えるはず
643デフォルトの名無しさん (ワッチョイ 7d4f-unxX)
2020/01/29(水) 23:36:35.98ID:tkk/tPU50
a b x の型が int だったりしたとき、それオーバーロードできるんだっけ?
644デフォルトの名無しさん (ワッチョイ 6abd-0Ybi)
2020/01/29(水) 23:57:35.84ID:fVMIrPAj0
C#のターゲットフレームワークってどういう仕様なんでしょうか?
わかりやすいサイト教えてもらえると助かります。

exe 4.5 dll 3.5 
→ ビルドできるからok?
exe 3.5 dll 4.5 
→ コンパイルエラー
  ただし動的に読み込んだ場合は動いてるっぽい?
645デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/30(木) 01:31:07.75ID:N/97jNZ60
wrapする型を定義して a < x < b できるようにしてみた
https://dotnetfiddle.net/FdQsX1

が、まあ使わない
646デフォルトの名無しさん (ワッチョイ 6dda-mRwA)
2020/01/30(木) 05:02:06.68ID:CgdKR7K00
んんんんんんh
647デフォルトの名無しさん (ワッチョイ 5942-unxX)
2020/01/30(木) 14:25:04.44ID:XrVMMkZO0
visual studio2019 30日たったら使えなくなったんだけど
無料じゃないの?
PC替えるまで以前のバージョンはずっと使えてたんだけど
2019は違うの?
無料版使い方おしえてください
648デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/30(木) 14:27:27.39ID:UIStC4VF0
ログインすれば無料のまま使えるよ
649デフォルトの名無しさん (ワッチョイ 5942-unxX)
2020/01/30(木) 14:30:14.48ID:XrVMMkZO0
更新したら使えました
ありがとう
650デフォルトの名無しさん (アウアウエー Sa52-/fp1)
2020/01/31(金) 03:22:54.75ID:A50vozAla
ボタンを押すと計算開始して結果をテキストボックスに表示する処理(数十秒かかります)
まずボタンを押してその処理がまだ終わってないうちに、またボタンを押すと次の処理がどんどん溜まっていくのですが、
これを防止する方法はないでしょうか
(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)

ボタン押したら結果が表示されるまで全部のボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できませんでした
651デフォルトの名無しさん (オイコラミネオ MMb5-FwRn)
2020/01/31(金) 03:40:35.08ID:PzD8ZwF3M
lock使う
652デフォルトの名無しさん (ワッチョイ 6a61-2iSl)
2020/01/31(金) 04:08:48.51ID:sTuegRNa0
メインスレッドには実際にボタンを無効化する作業をしてもらわないといけないので
計算はasync/await等を使って別スレッドで行う
653650 (アウアウエー Sa52-/fp1)
2020/01/31(金) 06:01:04.44ID:A50vozAla
>>651-652
正直まだ難しそうですががんばってみます。ありがとうございました。
654デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 07:46:03.52ID:EEAl6aZb0
>>650
http://aquablue7.blogspot.com/2013/05/blog-post.html
655デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 13:16:14.42ID:59NEldNla
>>653
何も難しくないよw
>ボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できません
これは「重い処理」の後にそれをやってるからそうなる

ボタンのイベントハンドラで真っ先にEnabled = falseにすればそんなことは起こらない。
656デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 14:04:57.33ID:EEAl6aZb0
>>655
やったことないアホは黙ってた方がいいぞ
あと反論するならググってから反論した方がいい
657デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 14:58:26.86ID:59NEldNla
>>656
はいはい頭悪そうワロタw
658デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 15:16:23.75ID:59NEldNla
なぜかコードが貼れないので割愛するけど、実際にやって>>655が正しいことを確認した
当たり前の話だがw
659デフォルトの名無しさん (ドコグロ MMb1-CWn9)
2020/01/31(金) 15:20:18.74ID:La68B+L1M
>>657
ググることもできずに頭悪いとしか書けないとか可哀想なやつだな
>>655みたいな誰でも思いつく方法でなんとかなってたら苦労はせんよ
660デフォルトの名無しさん (ドコグロ MMb1-CWn9)
2020/01/31(金) 15:22:19.46ID:La68B+L1M
>>658
当たり前の話だが負荷かけてテストしてるよな?
661デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 15:25:15.63ID:59NEldNla
つくづく馬鹿な奴w
偉そうに他人様に命令する前に自分は実際にコード書いて確認したのかとw

まあ普通こんなレベルの話は確認するまでもないけどね
662デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 15:41:48.86ID:59NEldNla
どうでもいいけど

(1) Thread.Sleep
(2) Task.Delay
(3) ビジーループ

いずれのダミーを使ってもイベントハンドラの頭でEnabled = falseとすることで
ボタン連打によるイベントハンドラへの意図しない「再入」を抑止できることを確認した
663デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 15:43:04.01ID:xcV7YFLC0
イベントを呼び出すのが毎回同じスレッドなんだから、>>655の方法で完璧に止まると思うけどな
664デフォルトの名無しさん (ワッチョイ 5d2f-KoMo)
2020/01/31(金) 16:25:21.45ID:6LQhDtiB0
>>662
>(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)
再入が問題じゃないって気づけよ
タイミングによってクリックイベントが2回キューイングされることがあるのが問題なんだよ
665デフォルトの名無しさん (ワッチョイ 6663-3Mgd)
2020/01/31(金) 16:55:17.80ID:rVrHfFzc0
ガイジに何を気付けって?
お前も方面が違うだけで同じガイジだな
666デフォルトの名無しさん (ワッチョイ 667b-UZ8j)
2020/01/31(金) 17:43:12.90ID:Wmzh3pBZ0
>>650
イベント処理に入る前にイベントハンドラを外しておくといい。button1.Click-=button_Clickみたいな感じで
ただValueChangedとかならともかくボタンで普通はやらないと思う。「enabledをfalse」になっているボタンでイベントが実行されるのはおかしい
計算処理を非同期に渡して計算が終わらないうちにEnabledを復帰させるとか変なことやっていないか?
EnabledでなくVisibleをfalse->trueに変えてみて確認したら?
動作に関しては他の人がいろいろ言っているようだけど一度ミニマムコード作って自分で動作確認するのが一番確実
667デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/31(金) 18:37:18.25ID:y3M2GGQ20
private void button1_Click(object sender, EventArgs e) {
button1.Enabled = false;
//重い処理
button1.Enabled = true;
}

上のコードでもユーザーが最初のクリックをしてから
イベントハンドラが呼ばれてEnabled = falseが設定されて
さらにそれからクリックできなくなるまでの間に
複数回のクリックが発生する可能性がある
(Windowメッセージのキューに溜まる)

だからEnabled = trueに戻す前に
溜まったクリックイベントを流してやる必要がある
668デフォルトの名無しさん (ラクッペ MM6d-3Mgd)
2020/01/31(金) 19:04:25.31ID:AyZqOEveM
難しすぎて分かんねえよ兄貴
669デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 19:05:05.53ID:EEAl6aZb0
>>663
イベントは非同期でキューイングされるから>>655では不完全
アマチュアレベルとか自分しか使わないならそれで良いけど不特定多数が使うようなソフトだとダメダメ
ID:59NEldNlaはコード書いて確認する姿勢は良いけど確認がザル過ぎる
てか、アプリ作ってたらこの手の経験はしてるはずなんだが…
670デフォルトの名無しさん (ワントンキン MM7a-FwRn)
2020/01/31(金) 19:14:36.51ID:oeaCTmz/M
イベント流すってどうするんですか?
671デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 19:29:46.30ID:59NEldNla
>>667
そんな必要ないってば...
君がOSのコード書く立場になってよく考えてよ。
君はメッセージをエンキューする時にウィンドウが無効化されているかどうか
ノールックでやっちゃうような間抜けなコード書くの?w

そんなのありえへん
672デフォルトの名無しさん (ワッチョイ 667b-oe7i)
2020/01/31(金) 19:30:59.97ID:BjcNa1EE0
ここ初心者スレだろ
673デフォルトの名無しさん (ワッチョイ 5d2f-KoMo)
2020/01/31(金) 19:34:11.53ID:6LQhDtiB0
いやだから、無効化されるまでに2回以上キューにたまる可能性があるって話なんだが...
674デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 19:34:38.34ID:J9WtEN9Ir
よくわからんけど痛い人が大声で独演会をやっています
675デフォルトの名無しさん (ワッチョイ 6d7b-0ef2)
2020/01/31(金) 19:47:15.52ID:EQPJwN2a0
再現できるコードも示さずにこんな現象があるんだって書き続けるのは他でやれよ
それにかまう連中も荒らしと同じ
>>1を読んで理解してから書き込め
676デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 20:12:38.30ID:J9WtEN9Ir
今日も仕事で新型コロナウイルスなんて騒ぎすぎだという老人の独演会を30分聞かされた
対策も必要ない死ぬ人は死ぬでいいじゃないかと言う話

老害しなないかな
677デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 20:19:21.81ID:xcV7YFLC0
キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう
でも現実には再現しないから困ってんだろうな
678デフォルトの名無しさん (ワッチョイ 3d2d-XhTL)
2020/01/31(金) 20:19:22.13ID:xcV7YFLC0
キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう
でも現実には再現しないから困ってんだろうな
679デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 20:31:30.36ID:59NEldNla
ちなみに念のためこんなのもやってみたが

//button1をクリックした後button2を連打せよ
private void button1_Click(object sender, EventArgs e)
{
  Thread.Sleep(5000);
}

private void button2_Click(object sender, EventArgs e)
{
  MessageBox.Show("Button Clicked !");
}

Win32に詳しくないので理由を与えることが出来ないけど、
この場合もメッセージボックスは1度しか表示されない
680デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 20:46:38.12ID:59NEldNla
>>676
完全スレ違いだけどそれはその老害の言ってることの方がただしいw

専門家はたいしたリスクないから騒ぎすぎだと言ってるのに
どっかの怪しいネットde真実クンの被害妄想を真に受ける奴がどうかしてるよ

こういうの認知バイアスって言うんだけどさ
681デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/01/31(金) 21:00:47.10ID:J9WtEN9Ir
一流の専門家wとWHOと各国の対応見る限り
誰かの方が認知バイアスかかってると思う

世の中でこういわれてるけど逆の方に○○と言うのを言って俺スゲーしたいのが老害
682デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 21:06:43.84ID:59NEldNla
>>679
いや待て、ひょっとしてMessageBoxがフォーカスを奪うのが関係しているのかと思って
Console.WriteLine("Button Clicked !");

に変えてみたらなんと複数回表示されるなww
何てこったw

この現象は以下のコードで回避できた
private void button2_Click(object sender, EventArgs e)
{
  if (button2.Enabled)
  {
    button2.Enabled = false;
    Console.WriteLine("Button Clicked !");
  }
  Application.DoEvents();      
  button2.Enabled = true;
}
683デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/01/31(金) 21:08:40.75ID:EEAl6aZb0
>>675, >>677
だからテストするなら負荷かけろって話な
>>667の話を理解できてたらわかると思うんだが、>>671みたいな絶望的なアホもいるからなぁw
684デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/01/31(金) 21:09:59.26ID:59NEldNla
>>681
WHOは声明で過剰反応するなと言ってる。
多くの伝染疾患の専門家の意見も同じ

各国政府の対応はよく言えば安全牌、悪く言えば役人や政治家の保身だね
テールリスクとしてはヤバいことになる可能性は確かにゼロではない。
その場合に誰も批判されたくないしね。
費用負担するのは納税者であって役人でも政治家でもないし
685デフォルトの名無しさん (ワッチョイ ea02-L01+)
2020/01/31(金) 21:15:06.28ID:0h4Mv/T00
でも新型ウイルスで色々と未知だから警戒するに越したことはないと思う
686蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b501-KoMo)
2020/01/31(金) 21:23:40.30ID:r/XM8LG10
メッセージボックスはボタンかキーボードが押されるまで待つ。
ダイアログの一種。
687デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/01/31(金) 21:59:54.58ID:XKSM3aqP0
>>670
Postする
688デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/01/31(金) 22:34:59.12ID:y3M2GGQ20
>>670
1. Application.DoEvents()
2. PeekMessage()
3. await Task.Delay()

Task.Delay()使ってthrottle/debounceする高階関数を作っておくと毎回書かずにすむ
689デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/01/31(金) 23:16:44.01ID:1nDsQqma0
引数でリスト渡すけど要素を変更して欲しくない時って結局どうすりゃいいの?
Immutableは使えない環境の場合

ReadOnlyCollectionは引数の型としては想定してないみたいだけど、キャスト防ごうと思ったらこれしかないよね?
690デフォルトの名無しさん (ワッチョイ 3de7-ol1H)
2020/01/31(金) 23:27:33.43ID:mtUYlnXN0
>>682
今時Application.DoEvents()を手動で呼ぶとか…
それはともかく、Application.DoEvents()を呼ぶタイミング遅くない?
691デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/01/31(金) 23:43:34.80ID:BFU5CNzNM
>>689
Deep Copy
692デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/02/01(土) 00:38:43.88ID:1j1iFXRs0
拡張メソッドにしろクラスをシリアライズするの面倒じゃん
693デフォルトの名無しさん (ワッチョイ 6ab9-ol1H)
2020/02/01(土) 01:36:17.36ID:XuRc8/EP0
質問お願いいたします。

カスタム日時書式指定文字列を使って、
例えば DateTime.Now.ToString("M月") と書けば、
今なら "2月" という文字列が受け取れます。

しかし、DateTime.Now.ToString("M") と書いても
"2" という文字列ではなく "2月1日" という文字列が返ってきてしまいます。

これは "M" という文字列が(カスタムでなく)標準の日時書式指定文字列と
解釈されてしまっているからのようなのですが、
DateTime.Now.ToString(...) のような書き方で
"2" という文字列を受け取ることは可能でしょうか。

もちろん DateTime.Now.Month.ToString() と書けば
"2" を得ることはできますが、IFormattable インターフェース経由で
文字列を取得したいという事情があり、
Month プロパティを使う方法は避けたいと考えております。

もし何かおわかりのことがあればご教授いただけると幸いです。
どうぞよろしくお願いいたします。
694デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 01:40:32.15ID:BvtANEfa0
あとから月消すのは無し?
695デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/01(土) 01:54:56.01ID:EnxAFhi/0
>>693
%M

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#UsingSingleSpecifiers
696デフォルトの名無しさん (ワッチョイ e5ad-8P7z)
2020/02/01(土) 01:55:14.57ID:HxAAP4sW0
control.Enabled=true/falseって即時処理されるのか?
WM_ENABLEメッセージをキューにPostするだけなのでは。
697デフォルトの名無しさん (ワッチョイ 6ab9-ol1H)
2020/02/01(土) 02:05:13.79ID:XuRc8/EP0
>>695
おお!まさに探していたものです。
'escape' 等をキーワードにして検索を試していたのですが
少し的が外れていたようです。
本当に感謝です。どうもありがとうございます。

>>694
ご提案どうもありがとうございます。
ただ今回は IFormattable.ToString の引数だけを使って
文字列を取得したかったので、
% を使う方法を使わせていただこうと思います。
698デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 02:14:03.96ID:BvtANEfa0
>>697
正規の方法がすぐ解って良かったね
699デフォルトの名無しさん (ワッチョイ b501-5BC/)
2020/02/01(土) 05:24:11.96ID:156Woc/f0
>>696
否定はできんけど、そんなことになってたらおそロシア
700デフォルトの名無しさん (ワッチョイ a5b0-x1ET)
2020/02/01(土) 08:01:32.31ID:22BQCiJ60
しょーもない質問なんですが
起動時、必要なファイル(iniとか)を探して、無ければ起動しないというプロセスは
Form1_Load()にifでApplication.Exit()書いて強制終了にしてしまえば良いのでしょうか?
Form1_Load()の途中で強制終了はwindows的に無問題でしょうか?
701デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/01(土) 08:02:52.31ID:iBA7Xa3w0
>>696
そうだよ

>>699
即時処理される方がおそロシヤだよw
ボタンを薄くする処理とかも走るんだが誰がそれをやると思ってるんだよ
702デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 08:15:21.41ID:a0E2Gls+0
>>700
program.cs オススメ
703デフォルトの名無しさん (ワッチョイ 7502-unxX)
2020/02/01(土) 08:17:35.37ID:dIJ1vCV90
>>696
Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ
てかWM_ENABLEはただの状態変化後の通知だし
704デフォルトの名無しさん (ワッチョイ a5b0-x1ET)
2020/02/01(土) 10:09:48.17ID:22BQCiJ60
>>702
すんません。よく分かってないのですが、
Main()の中の3行をifでスルーさせれば良いってことですか?
それともRunの手前でExit()ってことですか?
705デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 10:22:15.63ID:a0E2Gls+0
>>704
正常ならform作ってrun、異常ならformを作らない。

テンプレのApplication3行は、最初の2行がGUIの設定、最後がformの作成&実行。

判定条件がファイルの有無なら、GUIの設定待つ理由無いでしょ
706デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/01(土) 11:05:21.70ID:iBA7Xa3w0
>>703
> Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ
そりゃそうだろ、だから何?

> てかWM_ENABLEはただの状態変化後の通知だし
違うぞ、ちゃんと読め
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/wm-enable
そもそも変化後の通知ならWM_ENABLEDになってるよ
707デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/01(土) 11:31:14.25ID:EnxAFhi/0
>control.Enabled=true/falseって即時処理されるのか?

何をもって「即時処理される」と言うのかに違いがあるから話が噛み合わない
708デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/01(土) 11:42:50.99ID:ik9eUhGlM
>>704
Mainでファイルなかったらreturnしてオシマイでいいよ
Exitは普通は使わない
709デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/02/01(土) 11:44:34.08ID:yH+BLTFV0
Exit! y=ー( ゚д゚)・∵. ターン
710デフォルトの名無しさん (ワッチョイ 667b-4Et2)
2020/02/01(土) 11:47:30.77ID:3zclQUgm0
sendmessageでもすりゃすぐわかる話じゃないのこれ
711デフォルトの名無しさん (ラクッペ MM6d-3Mgd)
2020/02/01(土) 12:04:42.89ID:2IjxM/PsM
C#しか書けない奴はこれだから使えない
712デフォルトの名無しさん (ワッチョイ 66b0-x1ET)
2020/02/01(土) 13:11:09.93ID:neZT0y0y0
まあここは初心者スレなんだし勘弁してくれや
使えない部下との仕事のウサばらしは他でやってくれ
こっちは趣味で自分の使うアプリしか作ったことないから
「もしファイルが無かったら」なんて仮想の対策なんてしたこと無かったしww
それにC#というより「コンピュータのプログラムが動く仕組みは」に近い分野だったね

>>705
>>708
色々実験して、なんとなくできた。
Runが実行されなかったらExitは必要無いんだな。
ありがと。
713デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/02/01(土) 13:37:26.34ID:F+jbRz18M
>>712
RunしたあともExitは使わない
Closeを使って行儀よく終わらせる
714デフォルトの名無しさん (ワッチョイ 6a59-/fp1)
2020/02/01(土) 13:40:52.92ID:1j1iFXRs0
フォームアプリケーションなどしんでしまえ
715デフォルトの名無しさん (ワッチョイ 6aad-unxX)
2020/02/01(土) 13:49:16.30ID:OqODUHFj0
>>706
「EnableWindowが戻る前だがWS_DISABLEDが立った後」だから状態変化後の通知でしょ
MSの動詞の使い方なんぞに一貫性は期待しちゃ駄目よ

もともとが定義の雑な質問なんだから現段階でこっちにイチャモン付けても実りはないと思うで
716デフォルトの名無しさん (ワッチョイ 6a61-2iSl)
2020/02/01(土) 14:03:46.68ID:U7UUZgrK0
EnableWindowもメッセージ飛ばすだけだから何らかの方法でメッセージ処理させないとUI更新されない
717デフォルトの名無しさん (ワッチョイ 6aad-unxX)
2020/02/01(土) 15:00:01.57ID:OqODUHFj0
Winformsのコントロール実装だと大体Enabledの中で状態変数を変化させて
ついでにEnableWindowを呼んでネイティブ層での入力を無効化し
ついでにInvalidateを呼んでペイントハンドラをポストして
のちに出キューされたペイントハンドラがコントロールの状態を見ながら描画って流れやね
718デフォルトの名無しさん (ワッチョイ 39da-KENp)
2020/02/01(土) 15:32:06.42ID:a0E2Gls+0
>>712
時間のかかる大規模な初期化をするなら、
フォーム作ってスプラッシュを立ち上げて
その中でってのはあるけど、
小規模ならフォーム作る前にしちゃうと簡単

good luck!
719デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/02/01(土) 15:35:16.92ID:yH+BLTFV0
やっぱりDoEvents最強だな
720デフォルトの名無しさん (ワッチョイ b501-5BC/)
2020/02/01(土) 17:53:45.50ID:156Woc/f0
>>717
ありがとう、エロい人 m(_ _)m
721デフォルトの名無しさん (ワッチョイ 491a-jgyw)
2020/02/01(土) 20:05:49.65ID:75XTVAQS0
先輩方、設計に関して質問があります
GameManagerというシングルトンにリソースやシステムの参照を固めて、
各々のクラスから静的経由でアクセスする神スタイルって何かデメリットありますか?

最初はResourceManagerみたいに細分化していたんですが、規模が大きくなるにつれてあれはどのクラスが持ってたっけ?と頭がとっ散らかって来たので、
ならいっそpartialでファイル分けた神クラスを用意した方が分かりやすさはあると思ったんです
俺、何か間違えてますかね?
722デフォルトの名無しさん (ワッチョイ 6917-unxX)
2020/02/01(土) 20:12:40.38ID:hqbU2d/k0
神クラスでググればいっぱい出てくるだろ
つか神クラスって単語知ってるならもう何度も見てると思うけど
自分に都合の悪いところは見ないタイプかな?
723デフォルトの名無しさん (ワッチョイ 7938-egZw)
2020/02/01(土) 20:21:47.40ID:BvtANEfa0
参照を直接持つ神クラスは巨大なクラスになって破綻しそう
partialはファイルで分けるだけの問題だし

画像リソースやサウンドクラスの参照を返す、サービスロケータパターンなら有り得る

XNAだとgameクラスがこれに相当
unityのGetComponentでは、コンポーネントパターンとの組み合わせで使われてたりはする

サービスロケータにも宗教的な賛否はあるが実用的ではある
724デフォルトの名無しさん (ワッチョイ 491a-jgyw)
2020/02/01(土) 20:33:59.73ID:75XTVAQS0
>>722
いや、単体で完結するクラスはしっかり最小構成で切り分けてるっすよ
ただ互いが互いを参照し合うクモの巣みたいなクラス群は、
参照先を一本にまとめる方が理に適っているのではないかと思って、
デザパタでいうFacadeやMadiatorを突き詰めて行ったら、
全てがGameManagerに集約されて神クラスっぽくなったのでこれはどうなんだと思った次第で
725デフォルトの名無しさん (ワッチョイ 4a52-G6DY)
2020/02/01(土) 20:41:23.47ID:JWECbGc70
>>721
どのクラスが持ってるか分からなくなるのはクラス分けが下手だったからだろう。
すべて神クラスに押し込んだら、こんどは逆にあるメンバが元々何のために用意したものか分からなくなったり、別のメンバと取り違えたりして、破綻するだけだと思うぞ。
726デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/02/01(土) 20:42:04.40ID:XYPXtNPRM
互いに参照し合うってのがそもそもあまり良くないけどそれは別の問題としておいておくとする
参照しあうとしても必要な相互参照だけ持ってればいい
相互参照してるから神クラスにするって発想は全く繋がらない
無関係な参照を持ってたらコード読んだ人が混乱するだろ
727デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/01(土) 21:01:38.43ID:agRHfxgWa
>>724
プログラムと同じ寿命で複数個所からアクセスする必要があるインスタンスを
グローバル変数として提供する静的クラスは是か非か、という意味なら
個人的には支持しますね。
728デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/01(土) 21:03:13.43ID:agRHfxgWa
いや、グローバル変数という言い方は変かw
「グローバル変数」と書くべきだった
729デフォルトの名無しさん (アウアウウー Sa21-jaaY)
2020/02/01(土) 21:34:07.42ID:Ar+g0K07a
>>724
実際にコードを書く人間を無視して、設計ありきで開発を統制しようとすると必ず破綻するものだ
モジュール化は基本的に開発の作業単位と一致しているのが理想
その作業単位こそがメソッドになったりクラスになったり、
開発チームや部門などもっと大きな粒度ならドメインやマイクロサービスになるわけだ
君が一人で開発していて、一緒に全部触ることが多いんだったらそれらは一箇所にあるのが自然
730デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/02(日) 00:24:57.00ID:iIujTevhr
処理を神クラスに全部入れるのは感心しない
クラスAとBで○○をするクラスをたくさん作ってそれを神クラスが使うならまだわかる
731デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/02(日) 00:27:26.42ID:iIujTevhr
自分ではある処理にAとBしか使わないつもりだったのにいつの間にかCを参照してて
状態によって動いたり動かなかったりするのを避けられる
732デフォルトの名無しさん (ワッチョイ a5a7-UGOI)
2020/02/02(日) 02:17:31.38ID:a0o6eu/N0
>>730
宙ぶらりんだとxmlに出せねぇから!
733デフォルトの名無しさん (ブーイモ MM0a-YgEg)
2020/02/02(日) 07:46:40.77ID:x40xU8c9M
>>729
めちゃくちゃなこと言って初心者を惑わすの良くないp
734デフォルトの名無しさん (ワッチョイ 5961-KBmY)
2020/02/02(日) 08:08:49.36ID:ukQ22csD0
staticなクラスにロジックを集中させるのが今風
735デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 17:13:46.82ID:IAcIXRCS0
https://ideone.com/L4OaZ0

ユーザーが自分でカスタム書式指定文字列を入力して、
出力名を決められるコードを書きました。
switch文のところが冗長な気がしますが、
もっとよい実装方法はありますでしょうか。
736デフォルトの名無しさん (ワッチョイ a5b0-/fp1)
2020/02/02(日) 17:49:10.92ID:PECaEDf90
オブジェクト指向が全然わかりません。助けてください。

オブジェクト指向では、クラスしか使わないのでしょうか。
そもそも関数とクラスの使い分けがわかりません。
関数、クラスどちらでも良いように思えてしまいます。

クラス内で別のクラスや関数を使うことはあるのでしょうか。
その場合、呼ぶクラスの配置は、外にすればよいのか混乱しています。
737デフォルトの名無しさん (ワッチョイ 6917-unxX)
2020/02/02(日) 17:49:25.52ID:pxkKXZqI0
https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Globalization/DateTimeFormat.cs#L447

DoeNetCoreの実装も似たようなものだから好きにすればいいんじゃないの?
738デフォルトの名無しさん (ワッチョイ 6d7b-0ef2)
2020/02/02(日) 17:57:12.48ID:2oi7q6200
>>736
オブジェクト指向が理解できなくてもC#は書けるからそれだけならスレ違い
>クラス内で別のクラスや関数を使うことはあるのでしょうか
コントロールもクラスだしむしろクラス内で別のクラス使わずに書くことの方が少ない
関数はC#には無い定義だからどんな意味で書いているかわからない
初心者ならそんなこと気にせずにコード書いておけばそのうち身につく
739デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/02(日) 19:05:51.36ID:iIujTevhr
>>736
c#の関数は全てクラスの中でしか宣言できません
終わり
740デフォルトの名無しさん (ワッチョイ a5b0-/fp1)
2020/02/02(日) 19:34:54.43ID:PECaEDf90
>>737-739
関数は、クラスの中でしか宣言出来ないのですね。
ご指摘の通り、初心者なので気にしないようにします。
ありがとうございました。
741デフォルトの名無しさん (ワッチョイ ea01-CWn9)
2020/02/02(日) 20:19:18.10ID:o79zkFFu0
>>735
if(isEscape){
 switch(f){
 case 'c':
  result += Code;
  break;
 case 'n':
  result += Name;
  break;
 case 'y':
  result += DateTime.Now.ToString("yyyy");
  break;
 case 'm':
  result += DateTime.Now.ToString("MM");
  break;
 case 'd':
  result += DateTime.Now.ToString("dd");
  break;
 default:
  result += f;
  break;
 }
 isEscape = false;
} else if(f == '%'){
 isEscape = true;
} else {
 result += f;
}
742デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 20:24:30.59ID:p5iYeTFJa
>>735
別の意見の人もいるかもしれんけど、
とりあえず置換箇所を抜き出す部分と置換する部分は
分けた方が後でメンテしやすいコードになると思うよ
743デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/02(日) 21:33:42.70ID:Ng7YaIlp0
>>737
case '%': の時は次の文字読んで再帰呼び出しか
参考になるわ

>>735だと’%’を文字列に入れられないのかな?
744デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 21:50:42.59ID:p5iYeTFJa
>>735
書いてみた
俺も暇だな
ただし大人の事情でProductはイミュータブルなクラスに変えさせてもらったw
https://ideone.com/Ck6bNl
745デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/02(日) 22:59:32.43ID:1z8f9n64M
こういうのは結局if羅列が正解なんだよな
switchだと値の単純比較しかできないからifで柔軟に分岐させるほうがいい
あらかじめ書式を増やせるような工夫は大抵の場合YAGNIでコードを複雑に遅くするだけで終わる
746デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 23:04:32.56ID:p5iYeTFJa
>>745
なんか2行目と3行目が矛盾してると思うんだけどw
747デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 23:04:47.87ID:IAcIXRCS0
>>737
.NetCoreでもswitchべた書きなんですね
参考になります

>>743
ご指摘の通り%が出力できない仕様でした
>>741さんのがよりスマートで%も出力できますね

>>742
>>744さんのコードのような感じでしょうか
高度すぎて自分には発想にも至らなかったです。すごく勉強になります

みなさんありがとうございます
748デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 23:06:51.13ID:IAcIXRCS0
あ、>>742 = >>744さんでしたね
749デフォルトの名無しさん (アウアウウー Sa21-G+gO)
2020/02/02(日) 23:07:46.54ID:p5iYeTFJa
それはともかく、くどいようだけど、
どんな方法で実装するにしろ置換箇所の検出と置換は
分けた方がいいと思うよ

>>741とか>>735みたいな両者が混然一体となったカオスなコードはあかんw
750デフォルトの名無しさん (ワッチョイ aa89-unxX)
2020/02/02(日) 23:21:57.19ID:IAcIXRCS0
>>749
趣味プログラマーということもあり、
あまり人から教えてもらえる機会がないのでとてもありがたいです

ただの直感ですが、リファクタリング大好きなあのMDさんだったりして、
と感じましたw
751デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/02(日) 23:31:26.88ID:1z8f9n64M
>>746
全く矛盾してないけど?
752デフォルトの名無しさん (スプッッ Sdea-8Mri)
2020/02/02(日) 23:39:18.65ID:wS50t4rMd
>>745
パターンマッチングやwhenって知ってるかい?
753デフォルトの名無しさん (ワッチョイ 4a47-6m4/)
2020/02/02(日) 23:39:49.23ID:Lpo4bRzP0
>>746
確かに矛盾してるw
754デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/02(日) 23:52:30.43ID:1z8f9n64M
>>752
知ってるけどif分のほうが遥かに柔軟よ

>>753
してないよ
ここで言ってる柔軟姓って拡張性って意味じゃないからね
755デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/02(日) 23:57:18.28ID:Ng7YaIlp0
>>744
うーん、参考にはなるがpremature abstractionに感じる

置換箇所の検出と置換を分けるかどうかより
Productが直接SymbolTranslatorを参照したり
formatルールがコンストラクタに入り込んできてたり
EvaluatorみたいなProductと関係ないメソッドが生えてるほうがずっと気になる

クラスを分けるならまずProductFormatterに委譲する形にしておいて
他のFormatterを書く時にもう一段階抽象化するかどうかを考えたほうがいい気がする
756デフォルトの名無しさん (ワッチョイ 6aad-8Mri)
2020/02/03(月) 01:04:19.06ID:ergCU4VA0
>>754
具体的には?
757デフォルトの名無しさん (ブーイモ MM8e-YgEg)
2020/02/03(月) 01:40:48.87ID:uUg+nbORM
>>756
while Nが文字列長より小さい
if N文字目以後に%を含まない then 終了
if N文字目が% then ネストしてプレースホルダ解析してNを更新
else 次の%直前までまとめて読み取ってNを更新

例えばこういうの
758デフォルトの名無しさん (スッップ Sd0a-OAYN)
2020/02/03(月) 02:26:49.09ID:qfSpWMgCd
C#のソースは改行コードはCR + LFで書くんですか?
759デフォルトの名無しさん (ワッチョイ ea79-/fp1)
2020/02/03(月) 07:35:26.68ID:0n0692Cx0
Environment.NewLine
760デフォルトの名無しさん (オッペケ Srbd-TLHW)
2020/02/03(月) 08:12:45.52ID:rL8lKTlkr
ビルドはLF・CRLFどっちでも出来るので
後は好みとeditorconfigの設定次第<ソースの改行

自分の場合最近はLFで統一するようにしてる
761デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/04(火) 19:06:59.64ID:26FK/H9g0
Genericのtype constraintでTを+=演算子が使える型だって宣言することできる?
762デフォルトの名無しさん (オッペケ Srbd-Y6bJ)
2020/02/04(火) 19:16:33.46ID:XAK/YcTOr
演算子そのものが無理
763デフォルトの名無しさん (ドコグロ MM15-jaaY)
2020/02/04(火) 20:43:01.50ID:gbPgeOt9M
>>761
中二病は早く卒業しよう
その計算、本当に他の型で使う?
自分に聞いてみれば答えは明らかだろう
764デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2020/02/04(火) 23:41:46.07ID:26FK/H9g0
>>762
了解、ありがとう

>>763
処理別 × 型別の比較をするマイクロベンチのコードで+=演算子を使ってて
処理か型を追加するたびに処理数 × 型数のコードを追加するのが
面倒くさいからGenericにしたかったんだよ

C#の場合オーバーヘッドがあるから正確な測定には適さないけど
Genericでも傾向は分かるから
765デフォルトの名無しさん (アウアウウー Sa9b-YLe+)
2020/02/05(水) 01:32:24.11ID:6fUVVF1Va
理由になってないじゃん
結局現実的なユースケースは無いってことだな
766デフォルトの名無しさん (ワッチョイ d71f-fAzD)
2020/02/05(水) 22:48:02.31ID:YDjicEKX0
ちょっと教えて下さい。

CADで書いた2次元の平面図を読み取りエクセル等のシートにに貼り付ける事は可能ですか?
可能であれは加えて、アルファベットと数字を取得も出来ますか?
767デフォルトの名無しさん (ワッチョイ d71f-fAzD)
2020/02/05(水) 22:51:43.41ID:YDjicEKX0
もしくは、PDFをコピペして、アルファベットと数字を読み取れますか?
768デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/05(水) 22:52:57.09ID:hUfo/ofY0
書き込むスレ間違えてない?
769デフォルトの名無しさん (ワッチョイ d701-C+H6)
2020/02/05(水) 23:17:28.76ID:AmvkifrY0
>>766
スレ的にはlibreDWGとかかのう
CADがwmfとかBMP吐いているなら
スレ違い

DXF読むのは結構大変
770デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 11:15:51.94ID:p3rMUukc0
質問よろしくお願いします
親フォームに作ったlistBoxのItemsプロパティを子フォームから取得したいので
公開用のpublicのプロパティを作って、(Form1)this.Ownerで取得する方法でやろうとしてるのですが
Itemsプロパティの型が分からずできません。objectではできませんでした。
同じことをtextBox.Textでやるとstring型で簡単にできました。
771デフォルトの名無しさん (ワッチョイ 7f7c-nfXJ)
2020/02/06(木) 11:26:06.63ID:gSRAmVRD0
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.listbox.items?view=netframework-4.8#System_Windows_Forms_ListBox_Items
調べればいいじゃん?
772デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 11:32:10.09ID:p3rMUukc0
>>771
そこは見たのですが
どこに型が書かれてるのかわかりません
773デフォルトの名無しさん (ワンミングク MM7f-gP8z)
2020/02/06(木) 11:39:03.53ID:Jb1VrEaQM
型うんぬん以前の話だと思うの
親フォームのうえでなら、Items扱えてるの?
774デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 11:42:39.07ID:p3rMUukc0
>>773
はい。親フォーム上なら取得できます。
775デフォルトの名無しさん (ワッチョイ 7f7c-nfXJ)
2020/02/06(木) 11:59:57.37ID:gSRAmVRD0
>>772
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.textbox.text?view=netframework-4.8
TextBox.Textがstring型だって分かってるなら、そっちの記述と比較すればいいじゃん?
776デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 12:25:01.67ID:3avRIqPoa
>>770
一般的にはそもそもForm上のコントロールを外から参照するのは不適切。

それ、「PCのモニターに写っている同じ映像を別のモニターにも表示したいので
PCのモニターからHDMI出力を出せないか?」って言ってるのと同じでは?
発想が間違ってるよ。
なぜ映像のソース側にその機能を求めないでただの表示機に求める?
777デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 12:43:34.73ID:p3rMUukc0
>>775
なるほど!
あの長い文字列からusing除いた部分が型だったのか
できました!
>>776
やり方間違ってます?
Itemsに直接行かないで、
Itemsを配列に落としてからそっちを取る情が良いのかな?
なんか二度手間
778デフォルトの名無しさん (アウアウウー Sa9b-QEaq)
2020/02/06(木) 12:50:38.55ID:wOe8UCqWa
>>776
デイジーチェーンという既にあるものを例に出して発想が間違ってるとか無能感が凄えな
使う側が加工する発想が無いとか普段どんな神クラスを生み出してるのか興味ある
779デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 13:02:40.83ID:3avRIqPoa
>>778
世の中こういう人が多いから糞コードで溢れてるんだなw
780デフォルトの名無しさん (アウアウウー Sa9b-QEaq)
2020/02/06(木) 13:07:54.43ID:wOe8UCqWa
「機能はソース元が持つべき(キリッ」

数十年前のオブジェクト指向かな
この時代にまったく追い付いていない感よ
781デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 13:09:27.22ID:3avRIqPoa
>>777
何でそうなるの
ListBoxのItems自体何かを参照して作ってるんでしょ?
その同じソースを子フォームも参照するのが筋ですよ。
782デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 13:10:20.78ID:3avRIqPoa
香ばしい人が来たねw
本気で自分が正しいと思ってそうで怖いけどw
783デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 13:16:45.15ID:3avRIqPoa
質問者の人みたいな、役割分担を意識しない有機的な(笑)コードでも
学生さんの宿題程度の小さなプログラムなら問題は顕在化しないよもちろん。

ちょっと規模がでかくなるとすぐ死ぬけどねw
こういう発想でやってると

>>780の人は一人で大きなプログラムを設計して書いたことないんだろうね
784デフォルトの名無しさん (ワッチョイ 9f84-tipF)
2020/02/06(木) 13:16:56.29ID:p3rMUukc0
>>781
うーん。listBoxをただのソース表示用にするならそうなんでしょうけど。
それだとItems.Addとか必要無くなりますね・・・
785デフォルトの名無しさん (ワッチョイ 5733-5cV/)
2020/02/06(木) 13:17:51.17ID:OK3H5xtI0
な、アウアウウーだろ?
786デフォルトの名無しさん (アウアウウー Sa9b-QEaq)
2020/02/06(木) 13:31:00.38ID:wOe8UCqWa
>>781-783
この怒涛の三連投である

ごめんね、初心者スレで難しい話しちゃって
素人は今まで通りデータと機能をセットにしたオブジェクト指向で良いと思うよ
787デフォルトの名無しさん (ラクッペ MMcb-OK07)
2020/02/06(木) 14:34:33.24ID:wPTmJZ51M
ガイジはこんなところに来なくていいんだよ
ママと喋っててくれな
788デフォルトの名無しさん (ワンミングク MM7f-gP8z)
2020/02/06(木) 15:31:49.41ID:Jb1VrEaQM
あー子フォームにはプロパティ経由でItemsのインスタンスだけ見せたかったてことか
789デフォルトの名無しさん (ワッチョイ 9f63-ssi3)
2020/02/06(木) 17:25:31.37ID:rr8+dQJ50
>>778
デイジーチェーンは普通バスがあって見る側でフィルターしてるだけでしょ
本来はI/O(型変換)が要らないところにI/O入れちゃうのはどう考えても悪手でしょ。今回の話でいえば子要素から参照したくなったときに、
リストボックスに直でaddしてるのをやめて、元リストを作ってリストボックスのdatasourceにするか手動同期するかして、トータルのI/Oが少なくなるようにリファクタリングするよね。
790デフォルトの名無しさん (ワッチョイ b71a-QEaq)
2020/02/06(木) 17:46:36.56ID:2CNFUZCo0
バイクのエンジンの掛け方を訊ねているのに
「バイクは転ぶから車にしろ」とか言ってくる不思議な人が世の中にはいる
791デフォルトの名無しさん (ブーイモ MMbf-gAEv)
2020/02/06(木) 18:00:29.92ID:BIpKXfQOM
MVVMの基盤がしっかりしてるならそれでいいけど
Formsのバインドはクソだからなあ
792デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
2020/02/06(木) 18:09:16.22ID:v+RXRHu+F
バイクは転ぶし
転んだ時のダメージも大きいし
車とぶつかっても死ぬのはバイク
百害あって一利なし
793デフォルトの名無しさん (ワッチョイ ffb0-tipF)
2020/02/06(木) 18:09:26.47ID:yYpacz/p0
いやーここは良いスレですよ
色々情報や知識が得られて
私のいるニッチな業界のスレじゃ
下手にかかわると顔バレしそうなんで
なるべく情報出さないようにスルーが基本ですからww
794デフォルトの名無しさん (ワッチョイ 3742-56gX)
2020/02/06(木) 18:13:45.05ID:DNa4Mn1G0
UIプログラミングの原則として、コントロールを複数のクラスからアクセスるってのは
動作の競合起こしたときにどうにもならんから普通は避けるものですね
この場合、サブフォームからメインフォームのメソッドを呼び出して処理自体をメインフォームのクラスでやらせるのが普通かな?
呼び出すにはサブフォームにFunc<T>の変数を用意して、メインでサブフォームを起動するときにコールバックをセットする
795デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/06(木) 18:47:00.08ID:ePr9F6TEr
クラスとスレッドの概念は別物だからそれはおかしい
796デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 19:37:43.07ID:3avRIqPoa
>>790
そういう比喩ならこっちの方が適切だね

バイクのエンジンのシリンダーにソレノイドを仕込んで「始動機能内蔵エンジン」
を発明(笑)した気になってるバカがいるので、そんな後でメンテに困るような
設計はやめて普通に外側にセルモーター付けろやと言ってるわけね。
797デフォルトの名無しさん (ドコグロ MMdf-ep3J)
2020/02/06(木) 19:39:03.30ID:bk3hpXlEM
>>782
ブーメランすぎるw
798デフォルトの名無しさん (ワッチョイ b71a-QEaq)
2020/02/06(木) 20:09:27.53ID:2CNFUZCo0
〜正午〜
>>776「コントロールを外から参照するのは不適切。何故ソース側にその機能を求めない?」

〜午後〜
>>796「内蔵なんて後でメンテに困るから普通に外側に機能を付けろ」

僅か半日の出来事である
一体何が彼を変えてしまったのか・・・
799デフォルトの名無しさん (ワッチョイ 17a7-gMkZ)
2020/02/06(木) 20:51:56.60ID:bargJKer0
すべて筋肉で説明がつく
800デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 21:02:33.81ID:3avRIqPoa
>>798
くだらなすぎワロタw
それを言うなら>>790はどうなるのかねw
これが比喩として成立していると思う人は一人もいないと思うよw

しかし、幼稚だね
801デフォルトの名無しさん (ワッチョイ 9f1b-QEaq)
2020/02/06(木) 21:13:05.64ID:4TJ952d10
バイクの乗り方の話してるのに、唐突にバイクの機構の話で割り込んできた空気読めない人
802デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/06(木) 21:33:06.95ID:3avRIqPoa
まだ懲りずに言ってるしw

>>801>>798みたいなのにとっては「始動機能内蔵エンジン」実現のために
シリンダーにソレノドを仕込む機構の実現方法を聞いてる人には対しては
質問に対して真正面にベタに解答するのが正しいことなんだろうw

間違ってると思うよ。
そんな馬鹿なことなぜやるんだ、とアドバイスするのが正しいでしょ
803デフォルトの名無しさん (ワッチョイ b717-56gX)
2020/02/06(木) 21:34:18.40ID:QKvxUR9D0
スレタイ読めないの?
804デフォルトの名無しさん (ワッチョイ bfd6-QQjh)
2020/02/06(木) 22:23:36.57ID:CL10fagq0
>>777
usingってどこのことだろ。普通に一番上の方に
> public System.Windows.Forms.ListBox.ObjectCollection Items { get; }
とか
> プロパティ値 ListBox.ObjectCollection
って書いてあるのに。
805デフォルトの名無しさん (ワッチョイ 7f02-sfHF)
2020/02/06(木) 22:29:08.50ID:QYwN1zQ10
>>804
エスパー読みすると
System.Windows.Forms.ListBox の参照が足りなくてキャスト部分でエラーが出てたんじゃない?
806デフォルトの名無しさん (ワッチョイ d72f-ndoi)
2020/02/06(木) 22:51:51.07ID:O+zcmlkO0
やりたいことができるようになってから、それが最適かどうか考えればいいことで
相手のレベル考えないでアドバイスしたって意味ないんだが

それなら聞かれたことだけに素直に答えてるほうがよっぽど役に立つ
807デフォルトの名無しさん (ワッチョイ 9f63-ssi3)
2020/02/06(木) 23:31:46.82ID:rr8+dQJ50
ビューからデータを取り出してあれこれするのはそれ以外方法がない場合は基本的に避けなきゃいけないレベルのことだと思うけどなあ

jQueryでアプリ作るのが衰退してReactとかになったのも同じ理由だし。
(あくまでアプリの話でjQuery自体は今でもWebの表現に役立つライブラリで衰退してないと思う)
808デフォルトの名無しさん (ブーイモ MMbf-gAEv)
2020/02/06(木) 23:41:34.74ID:eMC8OYbwM
フレームワークの出来次第なんだよ
WPFやWEB系の流行りの流儀をFormsに持ち込む必要はない
Formsではイベント〜Formへの問い合わせ〜サービス〜Formの更新が基本的な流れなんだからその流儀に従えばいい
逆にモデルバインディングで作りたいならFormsを捨てる
809デフォルトの名無しさん (ワッチョイ d701-C+H6)
2020/02/06(木) 23:43:20.57ID:e739Nkpr0
MS公式セミナーにて
「技術より人脈ですよ」

ぺっ
810デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/07(金) 00:50:21.95ID:JyRMIzlO0
モデルを分離して管理するコストに見合わないような
小規模で保守性をあまり考慮する必要がないアプリなら
Form間で密結合させるのも選択肢の一つ

仕事で作るようなそこそこの規模のアプリで
保守性が重要なケースではまずやらない
811デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/07(金) 00:53:15.15ID:yv1noF0X0
ワンライナーのノリで書いて捨てるなら適当にやればいい
812デフォルトの名無しさん (アウアウウー Sa9b-IXAi)
2020/02/07(金) 07:52:46.57ID:Osl0dJ3Qa
>>792
歩行者も同じだろw
813デフォルトの名無しさん (ブーイモ MMcf-gAEv)
2020/02/07(金) 08:06:28.65ID:PtYUZReyM
Formsではモデルを分離しても間違いなくモデルバインディングを実装するコストは意外と高い
モデルを分離しただけのつもりが状態の二重管理になっていたなんてこともしばしば起こりうる
なのでFormsでは入力が必要ならその都度ヴューに問合せたほうがいい
そうすれば状態が重複しないので管理が楽になる
モデルバインディングを使いたいならWPFにフレームワークを変更すること
814デフォルトの名無しさん (ワントンキン MM7f-Gneu)
2020/02/07(金) 09:35:52.76ID:WtTaalc4M
>>809
お○んぽ騎士団の話はやめて差し上げろ
815デフォルトの名無しさん (ワントンキン MM4f-hvej)
2020/02/07(金) 19:18:34.16ID:sr6ubIFXM
DataTableのカスタムソートの方法を教えてください。
あるカラムを独自のルールでソートせたいのです。Selectで単純なソートはできるのは分かったのですが、delegate 的なので、ルールを設定できないでしょうか。
816デフォルトの名無しさん (ワッチョイ d72f-ndoi)
2020/02/07(金) 19:36:55.19ID:N36mMxo20
Linq To DataSetでいけんじゃね
817デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/07(金) 21:48:37.46ID:m5SOWGhma
1秒ごとに、FormのTextBoxに1を加算していく・・Func1
2秒ごとに、FormのTextBoxに2を加算していく・・Func2
つまり
112112112.........このようにTextBox.Textの文字が増えていくプログラムを
非同期で作りたいと思います。
グローバル変数を一切使わずに実装することは可能でしょうか?
1週間考えてるんですが、Timerを使う方法しか思いつきません。
Timer Func1Timer
Timer Func2TImer
というグローバル変数を使ってしまうので、これはNGです。

いい方法はありますか?
818デフォルトの名無しさん (ワッチョイ 3738-YFJL)
2020/02/07(金) 21:55:30.06ID:ZGpQM5Go0
Rx便利よ
Observable.Timer
819デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/07(金) 22:02:19.48ID:m5SOWGhma
>>818
検討します
ちなみにTask使えばグローバル変数は一切必要ないですか?
820デフォルトの名無しさん (ワッチョイ 17a7-gMkZ)
2020/02/07(金) 22:24:38.95ID:726N/Ezo0
何がしたいん?
書き手にしかわからない前提条件が色々見えて
「ああ、こいつバカなんだな」
って思った
821デフォルトの名無しさん (ワッチョイ 571d-uqPE)
2020/02/07(金) 22:51:59.66ID:GxNDg+Fe0
実務経験1年で月収80万稼げるエンジニアになった理由


意識が低いエンジニアこそフリーランスになれ


フリーランスエンジニアの週3労働ってどんな感じ?


ぼくがスキルのない社畜ならこうやって脱する


初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話


プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説


貧乏人こそ社会不適合者


元ド貧乏が教える】貧乏を抜け出すための2つの考え方


より良いオファー貰ってるのに転職しないとか何考えてるの?

822デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/07(金) 23:40:24.00ID:m5SOWGhma
>>820
非同期プログラミングでフォーム上の値を変えたいってだけです。
TextBoxの値を変えるっていう超単純なプログラムでまずは試すってことです。
823デフォルトの名無しさん (ワッチョイ 9f63-9GAq)
2020/02/07(金) 23:44:13.73ID:+/S7xbb70
そもそもC#にグローバル変数は存在しないでしょ
824デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/08(土) 00:01:02.29ID:0wE1WgKD0
>>817
グローバル変数を使ってしまうの意味がわからないよ

加算というか文字列を追加する処理をトリガーするメソッドで
タイマー2つ作ってイベントハンドラを設定してやればいいでしょ
複数スレッドから同じ変数を更新するなら同期かConcurrentは必要
825デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/08(土) 00:15:07.81ID:UjdtFeS9a
>>824
すいません、クラス変数です。
public class Sample
{
public Timer Func1Timer;← こういう宣言するのが嫌
public Timer Func2Timer;← 嫌

 public Method()
{

}
}
826デフォルトの名無しさん (ワッチョイ b72c-uawS)
2020/02/08(土) 00:25:41.32ID:TB4Hh82w0
FormのLoadイベントでTickにdelegateかラムダで書けばいいんやないん
827デフォルトの名無しさん (ワッチョイ 17de-gMkZ)
2020/02/08(土) 00:38:23.93ID:jmnDdHvz0
>>825
じゃ、TextBoxはどういう位置付けなの?
お前のルールに抵触してんじゃん
828デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/08(土) 00:53:34.25ID:UjdtFeS9a
>>826
そこらへんちょっと理解できてなくて…
サンプルコード頂けますか?
829デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/08(土) 00:56:47.80ID:0wE1WgKD0
>>825
public void FooMethod(){
var aTimer = new Timer(1000);
var bTimer = new Timer(2000);

}

メソッド内に閉じ込めればセーフってルールなんやろ?
830デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/08(土) 00:58:12.77ID:P57LPGn+0
理解できない以前にまず何も勉強してないだろ
頭が悪い上に不勉強で変な拘り持ってるとか救える要素ゼロだぞ
831デフォルトの名無しさん (ワッチョイ b71a-QEaq)
2020/02/08(土) 01:04:54.86ID:1aMUbMa90
このスレの人達はFizzBuzzを見せても解こうとせずに問題がおかしいと文句付けるだけなのかなってこの流れ見てちょっと思った
832デフォルトの名無しさん (ワッチョイ b72c-uawS)
2020/02/08(土) 01:38:53.85ID:TB4Hh82w0
>>828
825のソースのタイマー宣言の直後に
aTimer.Tick += async (s,e) =>
await Task.StartNew(() => Textbox.Text += 1);
bTimer.Tick += async (s,e) =>
await Task.StartNew(() => Textbox.Text += 2);
833デフォルトの名無しさん (ワッチョイ b72c-uawS)
2020/02/08(土) 01:45:01.07ID:TB4Hh82w0
あ、DispatcherTimerじゃないならテキスト操作はInvke つかやないけんかも
834デフォルトの名無しさん (ワッチョイ 9f52-m0mG)
2020/02/08(土) 02:00:56.55ID:uvgcwZ2m0
>>821
グロ
835デフォルトの名無しさん (ワッチョイ bfd6-QQjh)
2020/02/08(土) 02:05:01.32ID:aFNvUF1K0
>>822
大体1秒、2秒で良いなら

private async void Form1_Load( object sender, EventArgs e )
{
var odd = false;
while ( true )
{
await Task.Delay( TimeSpan.FromSeconds( 1.0 ) );
this.textBox1.Text += "1";
if ( odd )
{
this.textBox2.Text += "2";
}
odd = !odd;
}
}
836デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/08(土) 03:29:13.50ID:i8sbDftDa
>>817
TextBoxのTextを操作するだけのコードが非同期っていうのがまず意味が分からないよ。

非同期っていうのは普通はUIスレッドならUIスレッドの処理をブロックせず、
同時並行で別の何かの処理をするって意味じゃないの?

何でか知らんけどとにかくフィールドを作らずにTextBoxのTextを一定間隔で操作したいなら

(1) TextBox自身を継承してそういう機能を追加する
(2) リストに登録されたActionを指定間隔で実行するstaticクラスを作る

こんなとこじゃないのかな
837デフォルトの名無しさん (ブーイモ MM3b-H3QT)
2020/02/08(土) 04:42:01.38ID:xFeDUF3NM
whileでtaskを回したら駄目なの?
838デフォルトの名無しさん (ワッチョイ 7f02-sfHF)
2020/02/08(土) 04:53:34.35ID:i54vVeN30
>>837
それって835のこと?
いいんじゃない?
1秒→表示→1秒→って感じでTimerと少し動作が違うから大丈夫かは分からないけど
839デフォルトの名無しさん (ワッチョイ 5763-Fhqg)
2020/02/08(土) 10:59:47.25ID:S7+vC9vw0
なぜフィールドを作らずに実現したいのか?
質問者はフィールドとCにおけるグローバル変数の区別がついていないだけな気がする
学習用にタイマー使ってみる、はわかるけどフィールド使わずに、って意味わかんない
840デフォルトの名無しさん (アウアウウー Sa9b-QEaq)
2020/02/08(土) 11:14:55.30ID:iN9jv2T/a
学習用の課題に意味求めて進行止めるってまんま発達障害だな
小学校でいうと「たかしくんって誰?」とかそんな思考で問題自体に疑問持って解答諦める変なやつ
841デフォルトの名無しさん (ラクッペ MMcb-OK07)
2020/02/08(土) 11:17:20.82ID:W0we+YORM
>>831
FizzBuzzは人口に膾炙した課題だろ
初心者の謎のこだわりでひり出されたクソと一緒だと思うのか?
842デフォルトの名無しさん (ラクッペ MMcb-OK07)
2020/02/08(土) 11:18:52.11ID:W0we+YORM
>>840
妙なこだわりも発達障害にみられる兆候だけどな
お前の方がやばそうだな
843デフォルトの名無しさん (ラクッペ MMcb-OK07)
2020/02/08(土) 11:20:45.26ID:W0we+YORM
貼っておきますので参考にしてくださいね
https://snabi.jp/article/77
844デフォルトの名無しさん (アウアウウー Sa9b-QEaq)
2020/02/08(土) 11:25:16.61ID:iN9jv2T/a
なんでこのキチガイって毎回三連投するんだろうな
845デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/08(土) 11:34:14.25ID:mzDbuDLWa
>>835
ありがとうございます。
Delay???
短いけど意味が分からないですw
分からないので調べます。
846デフォルトの名無しさん (アウアウウー Sa9b-VM48)
2020/02/08(土) 11:35:29.41ID:mzDbuDLWa
>>835
クラス変数が必要無いのはかなり良いですね!
Textの変化とは関係なく、ボタンやリストを操作できる非同期ってことでいいですか?
847デフォルトの名無しさん (アウアウウー Sa9b-m0mG)
2020/02/08(土) 12:12:03.27ID:7UG0Y89ua
>>825
クラス変数とインスタンス変数を混同していないか? もしくはそれらを知らない?
848デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/08(土) 12:22:44.83ID:P57LPGn+0
クラス変数とインスタンス変数という用語はC#ではあまり使わない
C#はフィールドが静的かそうでないかという文化だからそう捉えておいた方が意思疎通しやすいぞ
849デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/08(土) 12:27:09.20ID:P57LPGn+0
故にグローバル変数とかクラス変数とか言ってる時点で
こいつC#の基本的なところを全く勉強してないなと判断できる
850デフォルトの名無しさん (アウアウウー Sa9b-QEaq)
2020/02/08(土) 13:04:01.22ID:iN9jv2T/a
今まさに学んでる最中の人を勉強不足と罵るすげえ奴がいるな
幼稚園児相手に「え、キミ掛け算もできないの(笑)」とかイキるタイプか
851デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
2020/02/08(土) 13:56:53.42ID:v1IBJgnWF
System.Drawing の Point は int か PointF の float なのに
System.Windows の Point は double で
結局3種類ある訳で
なんでこんな面倒くさいことになってんの?
852デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/08(土) 14:09:15.37ID:P57LPGn+0
いや学んでないでしょ
本で勉強すれば最序盤で解説されることだし
ググって拾っても確実にその知識には最序盤で出会う
853デフォルトの名無しさん (ワッチョイ bfde-gMkZ)
2020/02/08(土) 14:10:16.42ID:G9H9woiW0
Media.Color「そんなこと言ってもなぁ?」
Drawing.Color「ああ、今更だよなぁ」
854デフォルトの名無しさん (ワッチョイ 7f02-sfHF)
2020/02/08(土) 14:27:00.86ID:i54vVeN30
>>846
まず同期処理で書くことできる?
async、awaitは非同期をあまり意識させることなく実装できるのが強み
なんで、まずは普通に書けないと話にならない
自分は非同期じゃなかったらこうするってコードをあげてみたらどう?
855デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
2020/02/08(土) 14:32:32.65ID:v1IBJgnWF
async await って Unity でも使えたっけ
856デフォルトの名無しさん (ワッチョイ d701-C+H6)
2020/02/08(土) 14:33:02.90ID:gfxMjDVS0
>>851
System.Drawingはuwpで使えるかな?
857デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
2020/02/08(土) 14:41:06.06ID:v1IBJgnWF
UWP 使う積もりは無いので大丈夫
858デフォルトの名無しさん (ワッチョイ bfde-gMkZ)
2020/02/08(土) 14:43:17.18ID:Zbhib5650
asyncawait使っちゃうと普通のメソッドとして呼びたいときハングアップするよ
ババ付きにしちゃうよりはDoEvents呼んだ方がいいからね
859デフォルトの名無しさん (スフッ Sdbf-uawS)
2020/02/08(土) 14:46:57.18ID:jh1EVlBnd
>>858
??
しないよ
860デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/08(土) 14:49:11.72ID:P57LPGn+0
WPFはそこそこ普及したがUWPは完全に死産だったな
861デフォルトの名無しさん (ワッチョイ d77b-sQGl)
2020/02/08(土) 14:54:00.62ID:PM68oxyf0
意味不明な縛りプレイとか雑談とか回線コロコロしている人他へ行ってくれないかな
862デフォルトの名無しさん (ワッチョイ 17b0-tipF)
2020/02/08(土) 15:45:57.77ID:ybbIdUq60
プログラムとして良い悪いは別にして
グローバル変数使わずにローカルだけでやるというのは
明確にオブジェクト指向を意識する練習でもあるから
頭の体操にはいいじゃん
863デフォルトの名無しさん (スッップ Sdbf-eNXp)
2020/02/08(土) 15:51:43.96ID:L/vIW5KMd
>>858
何言ってんの?
864デフォルトの名無しさん (ワッチョイ bfde-gMkZ)
2020/02/08(土) 17:11:40.43ID:jUN+F5PI0
>>859
するよ
少なくともするときがあることは知ってるだろ?
そしてそれは同期処理にしておけば起きないことも知ってるだろ?
じゃあ、するんだよ
865デフォルトの名無しさん (ワッチョイ b717-56gX)
2020/02/08(土) 17:21:29.49ID:91b60hth0
>>864
しないよ
866デフォルトの名無しさん (ワッチョイ f78c-K3N/)
2020/02/08(土) 17:41:59.50ID:+HA53xM00
await を使ったメソッドの完了を待つTask で
Task.Wait()
するとGUI アプリではデッドロックする
でも、そこさえ注意すればいいだけ
867デフォルトの名無しさん (ワッチョイ 9f6a-56gX)
2020/02/08(土) 17:48:37.98ID:D+bhjLNE0
めんどくせえから全部ConfigureAwait(false)書いときゃいいんだよ!
868デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/08(土) 18:18:34.40ID:Ovre0sLva
>>862
オブジェクト指向関係あるかな?w

というかね、フィールドという明示的な実体を持たないくせに
インスタンスと同じ寿命を持つ「何か」が存在する、というのを
気持ち悪いと思わない人はプログラマの適正が疑わしいと個人的には思うよw
869デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/08(土) 19:07:17.64ID:Ovre0sLva
書いてみたけどくだらんなやっぱりw
protected async override void OnLoad(EventArgs e)
{
  base.OnLoad(e);
  var foo = WrapAction(() => textBox1.Text += "1", 1000);
  var bar = WrapAction(() => textBox2.Text += "2", 2000);
  await RepeatAction(() =>{foo(); bar();}, 10);
}

private async Task RepeatAction(Action a, int interval)
{
  var closed = false;
  FormClosed += (sender, e) => closed = true;
  while(!closed)
  {
    await Task.Delay(interval);
    a();
  }        
}

private Action WrapAction(Action a, int interval)
{
  var timeout = System.Environment.TickCount + interval;
  return () =>
  {
    if(Environment.TickCount >= timeout)
    {
      timeout += interval;
      a();
    }
  };
}
870デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/08(土) 19:53:29.35ID:0YppiA+B0
OS:Rasbian Stretch
ランタイム:Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1)
ソース:ふらっと C#,C♯,C#(初心者用) Part146 	YouTube動画>10本 ->画像>3枚
パッケージ:ふらっと C#,C♯,C#(初心者用) Part146 	YouTube動画>10本 ->画像>3枚
エラー:Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
ビルドターゲット:.NET Framework4.6.1

Windowsでは正常に動作します。
AngleSharpを入れていない場合であればMonoのほうでも動作します。
Anglesharpを入れるとバイナリのフォルダに大量のSystem.***.dllができます。
AngleSharpを入れていないと動くのに入れるとエラーが出る理由はなんですか?
871デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/08(土) 20:00:30.54ID:1TiVu9qyr
さっき書いた通り
872デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/08(土) 20:01:31.70ID:0YppiA+B0
>>871
相談スレの方ですか?
AngleSharpを入れない場合はちゃんと動く理由がわかりません。
873デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/08(土) 20:06:39.89ID:1TiVu9qyr
エラー内容見ろ
エラー:Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.

System.Net.ServicePointManager.CloseConnectionGroupsというメソッドが見つからないと言うことだ

何故見つからないかと言えば前に書いた内容で調べるべき
874デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/08(土) 20:10:36.90ID:1TiVu9qyr
入門者なのかもしれないけどいきなり面倒な方法を使って勉強しても大変だよ
標準的な内容である程度勉強した後に発展でMONOを使うならいいと思うと書いてもまあ理解されないだろうな

標準的な入門を選ぶか
いばらの道の入門を選ぶかは個人の自由だもの
875デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/08(土) 20:11:25.33ID:0YppiA+B0
>>873
AngleSharpを入れなければそのようなエラーは出ません
その理由がわからないという質問です。
876デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/08(土) 20:30:21.35ID:1TiVu9qyr
知らないが憶測

AngleSharpで要求されるバージョンのライブラリを入れると
そのメソッドがないライブラリが入りそちらが優先されてしまうため
877デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/08(土) 20:38:36.42ID:0YppiA+B0
しかしWindowsではエラーになりません
878デフォルトの名無しさん (ワッチョイ 37de-gMkZ)
2020/02/08(土) 20:43:01.75ID:2N+q6I4Z0
anglesharpが要求してるもんが環境によって違ってるんじゃない?
879デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/08(土) 20:44:56.35ID:0YppiA+B0
System.AggregateException: One or more errors occurred. ---> System.MissingMethodException: Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
at System.Net.Http.HttpMessageHandler.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose (System.Boolean disposing) [0x0001e] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpClient.Dispose (System.Boolean disposing) [0x0002c] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at ConsoleApp17.Program+<MainAsync>d__1.MoveNext () [0x00117] in <a0ba2302dc914c45933daaf9af0bf56d>:0
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00052] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.Tasks.Task.Wait () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
at ConsoleApp17.Program.Main (System.String[] args) [0x00005] in <a0ba2302dc914c45933daaf9af0bf56d>:0
---> (Inner Exception #0) System.MissingMethodException: Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found.
at System.Net.Http.HttpMessageHandler.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose (System.Boolean disposing) [0x0001e] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpClient.Dispose (System.Boolean disposing) [0x0002c] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at System.Net.Http.HttpMessageInvoker.Dispose () [0x00000] in <27bbdd4ceaf04a95b172ee502d76a725>:0
at ConsoleApp17.Program+<MainAsync>d__1.MoveNext () [0x00117] in <a0ba2302dc914c45933daaf9af0bf56d>:0 <---
880デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/08(土) 20:48:05.02ID:0wE1WgKD0
>>875
https://github.com/dotnet/runtime/issues/21777#issuecomment-302327100
881デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/08(土) 20:51:56.92ID:1TiVu9qyr
>>877
>>876
882デフォルトの名無しさん (オッペケ Sr0b-RXZG)
2020/02/08(土) 21:00:10.67ID:1TiVu9qyr
.net framework ≠ monoのframework
それぞれ違う実装で別物

それを.net standardで標準化しようとしてる
でも実際にちゃんと実装されてるか不明
仕組みがすべてうまくいってるのか不明
対応したライブラリを作っている人の検証も十分かどうかわからない

動かない場合他人に聞くより自分で調べるしかない
883デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/08(土) 21:04:25.30ID:0YppiA+B0
>>880
ありがとうございます!
しかしそのまま削除してしまうと下記のようなエラーが出てしまいますね…
コンパイルからするとしたら勝手にコピーされるのを禁止する的なオプションが必要そうで難しそうですね…

Unhandled Exception:
System.BadImageFormatException: Could not resolve field token 0x04000002
File name: 'ConsoleApp17'
at ConsoleApp17.Program.Main (System.String[] args) [0x00000] in <a0ba2302dc914c45933daaf9af0bf56d>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.BadImageFormatException: Could not resolve field token 0x04000002
File name: 'ConsoleApp17'
at ConsoleApp17.Program.Main (System.String[] args) [0x00000] in <a0ba2302dc914c45933daaf9af0bf56d>:0
884デフォルトの名無しさん (ラクッペ MMcb-9sS2)
2020/02/08(土) 23:34:06.57ID:I9BdfAP3M
コンインハイブで有罪判決 ♪─O(≧∇≦)O──♪

ユーザーな cpu、gpu を勝手に使い、外部にデータを送信していたのがダメっぽい。

ユーザーの許可なく、デリゲートに処理なげるコードを書いてるc# 犯罪者も全員逮捕すべきだね。

ボタンを押した時の処理をボタンクラス等に書いておけば、インテリセンスで入力補完できて便利なのでみんなでそうすべき。
885デフォルトの名無しさん (ワイーワ2 FFdf-VM48)
2020/02/09(日) 16:03:46.61ID:wTv3WydAF
Hoge[] hage = new Hoge[123];
List<Hoge> hige = new List<Hoge>();
foreach(Hoge h in hage) hige.Add(h);

hage.Length と hige.Count とでプロパティ名が違うのが気になります
886デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/09(日) 16:14:37.33ID:O6Vx4x7H0
>>885
同意
887デフォルトの名無しさん (ワッチョイ d7ad-AAj1)
2020/02/09(日) 16:28:51.97ID:Y+Q0/sNO0
そりゃ列には長さはあるけど、リストに載ってるものは個数じゃないか?
888デフォルトの名無しさん (ワッチョイ 9f61-yBrj)
2020/02/09(日) 16:36:02.88ID:vE41P/0u0
あまり気にしすぎるとhageるぞ
889デフォルトの名無しさん (ワッチョイ 17f1-LgKx)
2020/02/09(日) 17:16:40.25ID:YpWJ7Y8F0
>>888
うるさいこのハゲ!
890デフォルトの名無しさん (ラクッペ MMcb-oJhu)
2020/02/09(日) 18:41:55.44ID:umzLclnyM
リストはコレクションを継承してるからな
コレクションに長さはおかしい
891デフォルトの名無しさん (ベーイモ MM4f-GYBZ)
2020/02/10(月) 07:57:20.87ID:wGm8GdViM
配列だと.Countが呼び出せないのにIList<T>にキャストすると呼び出せるようになるのって、そういえば何故なんだろう?
892デフォルトの名無しさん (ワッチョイ 9701-w9wO)
2020/02/10(月) 10:42:53.81ID:53UatRUA0
物によって lengthの時もあるのが…ってこと?
893デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/10(月) 11:03:50.95ID:nWEhVxBk0
気になったから調べたぞ
Arrayクラスの実装に↓のようなものがあるというのが答えかな
(IListはICollectionを継承してる)

// Number of elements in the Array.
int ICollection.Count
{ get { return Length; } }

こう書くとCountはprivateになるから見えないが
インターフェイスは全部publicだからインターフェイスに直接アクセスすると当然見える
なんか微妙な挙動な気もするが
894デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/10(月) 11:45:05.82ID:IhKcOfNDa
そもそも愚問だと思うよ
逆に実装してるはずのインターフェイスのメンバーにアクセスできなかったらおかしいでしょw
意味がわからないよ

インターフェイス周辺の文法はVBの方がイケてるね。
VBの文法ならこういう変な勘違いは起こらない
895デフォルトの名無しさん (ワッチョイ 37da-56gX)
2020/02/10(月) 11:56:37.17ID:8uBZGbTk0
何の問題もないからVBとかいらない
想像するしかないけど配列の長さとしてはLengthの方がふさわしいから隠したんだろ
ICollectionとして扱えば一貫してCountが使えるんだから何の問題もない
896デフォルトの名無しさん (ワッチョイ 9f79-Zca7)
2020/02/10(月) 12:00:09.17ID:nWEhVxBk0
VBが必要ないのは真理
897デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/10(月) 12:05:13.80ID:IhKcOfNDa
明示的実装にしたのは単に混乱防止のためでしょ。
(ジェネリッククレクションは.NET 1.0の時代には存在しない)

Lengthという名前が採用されている理由はシンプルにCountにすると、
例えばnullを要素としてカウントしないアプリケーションだと違和感があるからじゃないの?
かといってCapacityとも違う。だからLengthなんでしょう。たぶん。
898デフォルトの名無しさん (ラクッペ MMcb-oJhu)
2020/02/10(月) 12:31:42.73ID:sdl18RcGM
ぶんた。
899デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/10(月) 12:34:23.08ID:IhKcOfNDa
もっとシンプルに、たとえ多次元配列であっても配列はメモリー上の連続した領域であることを
意識させたかったのかもしれない。考えすぎかw
900デフォルトの名無しさん (ドコグロ MMdf-ep3J)
2020/02/10(月) 12:57:35.71ID:FwA2E+lvM
プロパティ名なんて仕様決めた奴の単なる好みだろ
901デフォルトの名無しさん (ラクッペ MMcb-oJhu)
2020/02/10(月) 15:04:17.44ID:sdl18RcGM
じゃあKosuuで。
902デフォルトの名無しさん (ワッチョイ 17a7-gMkZ)
2020/02/10(月) 17:08:42.52ID:N80PVT3u0
cnt「フフフッ」
siz「ワレラガ」
len「ミツカルカナ?」

typ,mng,ary,kbn←四天王
903デフォルトの名無しさん (ワッチョイ d77b-3biP)
2020/02/10(月) 18:14:07.48ID:dpw80QrL0
平日の昼間にスレ違いの雑談で埋めるようなところにワッチョイはもういらないよな
次スレは
ふらっと C#,C♯,C#(初心者用) Part141
http://2chb.net/r/tech/1544838367/
使ってここの継続は立てるなよ。前スレからだがテンプレも読めず雑談やスレ違いで埋める数人のためのスレとかいらん
904デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/10(月) 19:30:31.67ID:IhKcOfNDa
>>903
もともとワッチョイなんて有害無益なのは(普通の思考回路してたら)分かるけど
そうじゃないのに限って「声がでかい」のでそんなこと言っても無駄だと思うよw
905デフォルトの名無しさん (ワッチョイ 9701-w9wO)
2020/02/10(月) 23:15:50.41ID:53UatRUA0
ワッチョイの意味がよくわかってないのか、有害の意味がわからん
コードが付くだけやん
906デフォルトの名無しさん (ワッチョイ bfd6-QQjh)
2020/02/10(月) 23:20:41.52ID:+29eLnQa0
>>904
普通の思考回路してたら分かるとかレッテル張って
反対意見潰そうとするのはフェアじゃないな
907デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/10(月) 23:26:50.94ID:Qiy0cFHh0
せっかくレッテルまで貼ったのに誰にも共感してもらえてなくて草
908デフォルトの名無しさん (ワッチョイ 17a7-gMkZ)
2020/02/10(月) 23:28:38.33ID:N80PVT3u0
自演ができなくなると何かまずいのか?

たまに単発IDの頭のイカレタ質問と回答が書き込まれる一連のやり取りがそうなのか?
明らかに初心者の域出てるししかも誰も興味ないし
他の初心者の邪魔だからやめた方がいいぞアレ
人の気持ちを考えられない人間になると設計も自然とヘタクソになっていくから
プログラミングの腕も引きづられて落ちていくぞ
909デフォルトの名無しさん (ワッチョイ 9f63-OK07)
2020/02/10(月) 23:56:49.13ID:hCu3Oxoe0
ようわからんが、単芝生やしてる15/15はこのスレの大古参なので、生意気な口を聞くなよ
910デフォルトの名無しさん (ワッチョイ 9f63-OK07)
2020/02/11(火) 00:00:22.07ID:BVyNsmkt0
15/15ってなんや
(アウアウウー Sa9b-WggA)のことね
大先輩だよ
もう13年くらいいるよね
911デフォルトの名無しさん (アウアウウー Sa9b-WggA)
2020/02/11(火) 00:12:43.21ID:FSEIJRHXa
>>905
例えば>>909-910みたいな変なの。

ちょっと前新型コロナの話題が出てたけどあれと同じだよ。
日本人は目的合理性ではなく気が済むかどうかで意思決定しがち。
日本人はこういうところ韓国人と完全に同じだね。

ワッチョイに推進論者が意図するようなプラスの効果なんか期待できないことは自明だ。
そのくせに意図せざる負の効果だけはしっかり存在する。

これ言うと荒れるかもしれないが、ワッチョイ推進論者は匿名掲示板で
「他人が何者か特定した気にならないと気が済まない」ストーカー気質の変な少数者だが、
本人たちにその自覚はない。
912デフォルトの名無しさん (ワッチョイ d735-oJhu)
2020/02/11(火) 00:24:53.99ID:HEmsPZVy0
ワッチョイみて、なんだまたアイツか。って安心するんだろ
913デフォルトの名無しさん (ワッチョイ 9f6a-56gX)
2020/02/11(火) 01:47:11.53ID:O1nniQPu0
>>911
負の効果なんてないだろ
自演できなくて悔しいですって正直に言えば賛成してやらんでもないぞ
914デフォルトの名無しさん (ワッチョイ 9f47-4cqo)
2020/02/11(火) 02:30:39.04ID:P5jh7Ggu0
>>905
自作自演しにくいでしょうが!
915デフォルトの名無しさん (アウアウウー Sa9b-Hkqy)
2020/02/11(火) 08:10:47.80ID:UM7DBn99a
レス番飛んで変な流れになってると思ったら謎理論を展開してる人が
意図せざる負の効果とかかっこいいこと言ってるけど
ワッチョイでNGされちゃうことで構ってくれる人が減るのが嫌なだけでしょ
916デフォルトの名無しさん (ワッチョイ 9701-w9wO)
2020/02/11(火) 08:43:38.48ID:STnJqlOX0
自作自演できた方がメリット大な理由
デメリットにならないか等kwsk
917デフォルトの名無しさん (ワッチョイ bf66-QQjh)
2020/02/11(火) 09:16:27.39ID:RZk53+g00
jsonの配列の行数が欲しくて以下のようなコードを書いたのですが

var jsonlist = DynamicJson.Parse(@"{""a"":1, ""b"":2}");
int cnt = 0;
foreach(var json in jsonlist)
{
cnt++;
}

jsonlist.Count()的な端的な書き方はあるでしょうか?
918デフォルトの名無しさん (アウウィフ FF9b-VM48)
2020/02/11(火) 13:16:19.82ID:KtXysiBKF
ここの荒れっぷりを観るとワッチョイ有って便利だとつくづく思う
http://2chb.net/r/software/1550845068/
919sage (ワッチョイ ff02-QQjh)
2020/02/11(火) 21:31:13.81ID:Ewfd3Otp0
>>917
ちらっと見た限りDynamicJsonってDynamicObject派生の独自の実装みたいだから
クラス作った人に聞くしかないのでは?

http://neue.cc/2010/04/30_256.html
920デフォルトの名無しさん (ブーイモ MM3b-RXZG)
2020/02/11(火) 21:41:40.77ID:3nYIWZatM
Dynamicに物故んだだけみたいだからcount取れるんだろうか?
921デフォルトの名無しさん (ワッチョイ 9f47-4cqo)
2020/02/11(火) 21:41:40.83ID:P5jh7Ggu0
>>919
ソース見れるよ
https://github.com/neuecc/DynamicJson/
922デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/11(火) 22:24:57.84ID:v/oRLdRM0
DynamicJsonはIEnumerableで返してるから無理っぽいね

JsonDocumentでParseしてGetArrayLength()
https://docs.microsoft.com/en-us/dotnet/api/system.text.json.jsondocument?view=netcore-3.1
https://www.nuget.org/packages/System.Text.Json/
923デフォルトの名無しさん (ワッチョイ bfe9-1Zh8)
2020/02/11(火) 22:44:21.66ID:kqe2ZtVl0
無理ですか
メソッドチェーンで1行で書けたら綺麗だなと思っていましたが地道にカウントします
ありがとうございます
924デフォルトの名無しさん (ブーイモ MM3b-RXZG)
2020/02/11(火) 22:48:58.27ID:3nYIWZatM
いやいやいや
一行で書きたいなら自分で何でも書けばいいだけだろうw
925デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2020/02/11(火) 22:50:04.90ID:v/oRLdRM0
そういう要望ならToList()すればいいのでは?
926デフォルトの名無しさん (アウアウウー Sa9b-YLe+)
2020/02/11(火) 23:06:04.07ID:gyjqP0lja
DynamicJSONは実用品というよりPOCで、今時誰も使ってないよ
デファクトスタンダードはJSON.NETで、LINQもdynamicも使える
927デフォルトの名無しさん (ブーイモ MM3b-RXZG)
2020/02/11(火) 23:08:02.92ID:3nYIWZatM
と言うのが古い認識です
928デフォルトの名無しさん (スププ Sdbf-4cqo)
2020/02/11(火) 23:47:04.21ID:H7ejfPaYd
俺もjson.netだな
929デフォルトの名無しさん (ワッチョイ de8c-gsGW)
2020/02/12(水) 00:19:48.97ID:rDGykg1a0
json.netはデファクトスタンダード感あるな
他だとsystem.jsonとかutf8jsonとかが代替じゃないのかな
930デフォルトの名無しさん (ワッチョイ 1f1b-ZGJ3)
2020/02/12(水) 03:21:12.67ID:EzkrgFvF0
たまにminijson使っちゃう
931デフォルトの名無しさん (ワッチョイ c602-FeTH)
2020/02/12(水) 04:56:26.09ID:1hZ4lR9d0
>>923
リンク先のサンプルで配列に変換してたからそれでやんのがいいかもね
試してないから出来るのか知らん
((dynamic[])jsonlist).Length
932デフォルトの名無しさん (ワッチョイ af97-hMlH)
2020/02/12(水) 10:32:34.34ID:w04clBR40
Json.NETって何だ、自分はNewtonsoft.JSONしか使ったことないけど大丈夫かと思ったら前者がライブラリ名、後者が名前空間名で同じものか、焦ったわ
933デフォルトの名無しさん (ワッチョイ 1f24-OxJ8)
2020/02/12(水) 10:34:51.51ID:mj8QFo9s0
jsonライブラリで一番メジャーなのってNewtonsoft.Jsonじゃないの?
Json.Netがこれのことか?
パフォーマンス的には>>921の人が作ったutf8Jsonが世界最強らしいが
934デフォルトの名無しさん (ワッチョイ 5eda-GUQA)
2020/02/12(水) 12:13:24.49ID:25nTHRNQ0
utf8jsonは早いのかもしれないけど、publicメンバじゃないとダメとか
依存ライブラリが多いとかちょっと使い勝手がな。。

あと全体に言えるけど、
DateTime型をそのままJSONに変換したときに、JSONマッパ毎に結果が異なるのはどうにかならないかな
935デフォルトの名無しさん (オッペケ Src7-oFCC)
2020/02/12(水) 12:37:02.94ID:yEPI658rr
元々のjavascriptに準拠してないんだよな
jsで読み込めないのにJSONと言い張るなよとw
936デフォルトの名無しさん (ブーイモ MM0e-V8UR)
2020/02/12(水) 15:00:35.67ID:wWj3ojieM
>>933
Newtonでおけ
937デフォルトの名無しさん (スププ Sd32-5Awg)
2020/02/12(水) 19:26:15.08ID:J+lwLLR4d
>>933
Newtonsoft.Json==Json.Net
938デフォルトの名無しさん (ワッチョイ 9259-GUQA)
2020/02/12(水) 20:32:47.74ID:seLTTpXD0
listの一部要素を切り出したい時ってインデックスの指定以外で早い方法ある?
要素100で0~8,3~21,10~30,50~61,~~みたいに切り出すとして切り出す長さは事前に与えられるケース

getRangeはコピーつくるみたいなので除外して、skipとtakeはどうなんだろと調べてみたらどうにも結果が安定しない
skipは先頭からn個目まで一気にスキップするわけではなくて、順番に数えてn個までの要素を跳ばしてるのかな
939デフォルトの名無しさん (ワッチョイ df4f-OxJ8)
2020/02/12(水) 20:44:32.50ID:ytylQgpT0
JSONは既にJavaScriptの仕様から乖離してるからな。
53bitを超える整数リテラルはJSONでは合法だがJSでは読めるとは限らない。
940デフォルトの名無しさん (アウアウウー Sac3-+wK4)
2020/02/12(水) 20:58:26.58ID:dQ+MgkrDa
>>938
ないのでは?
あくまでIEnumerable前提の実装だから非効率なのは仕方ないよね。
分かってるだろうけどそれが気に入らないなら自分で書けばいいだけなわけで
941デフォルトの名無しさん (ブーイモ MMdb-oFCC)
2020/02/12(水) 21:23:01.24ID:l05i3q7zM
structで作ってメモリコピーという荒業が…
942デフォルトの名無しさん (ワッチョイ ff35-uDFW)
2020/02/12(水) 21:29:06.10ID:CnJeTJ1J0
IEnumerableって順序ないのにSkipの説明には「シーケンス内の指定された数の要素をバイパスし、残りの要素を返します」って書いてるけどシーケンスって順序決まった列じゃないの?
943デフォルトの名無しさん (ブーイモ MM0e-oFCC)
2020/02/12(水) 21:34:16.23ID:t47o0dPHM
それは単なる使う側の問題では?
その都度乱数を返すIEnumerableとかあったとしてもシーケンスとして扱うことは可能
再現性がないだけで
944デフォルトの名無しさん (ワッチョイ d201-b83C)
2020/02/12(水) 22:21:27.16ID:39kCYFWR0
>>938
MoreLinqのSlice<T>はListならインデックスアクセスするよう最適化されてる
https://github.com/morelinq/MoreLINQ/blob/master/MoreLinq/Slice.cs

真似して自分でSliceList定義すれば?
945デフォルトの名無しさん (ワッチョイ 932c-VKUZ)
2020/02/12(水) 22:49:54.10ID:d7YXngVH0
スライスリストってかっこいいな
946デフォルトの名無しさん (ワッチョイ 9259-GUQA)
2020/02/12(水) 23:47:21.81ID:seLTTpXD0
>>944
こんなのあるんだなあ。ありがとう
むしろこっちの書き方に混乱した
> sequence is IList<T> list

C#7からできるようになったみたいだけど、これのメリットって変数のスコープを限定できるって理解でいい?
947デフォルトの名無しさん (ワッチョイ ff35-uDFW)
2020/02/13(木) 00:08:03.05ID:uK7heoRi0
>>943
IEnumerableを継承してるコレクションもシーケンスだったのか
コレクションというくらいだからおもちゃ箱のおもちゃみたいなグチャグチャな塊のイメージだった
948デフォルトの名無しさん (ワッチョイ ef63-3blX)
2020/02/13(木) 00:34:22.49ID:naQLfQn80
>>938
arrayに変換できるならspanでアクセスするのが早いんじゃないかな?
spanができて飛び飛びのインデックスへのアクセスが多いケースでは問題なければarrayでことが増えた
949デフォルトの名無しさん (ワッチョイ 126a-OxJ8)
2020/02/13(木) 00:46:57.66ID:+Aqu6VGA0
>>946
型チェックとnullチェックとキャストが同時にできる
キャスト結果がコンパイラによって保証されている
950デフォルトの名無しさん (ワッチョイ c602-FeTH)
2020/02/13(木) 01:14:35.75ID:njwtr9+20
範囲アクセスの新しい構文できたよね
list[0..5]、list[5..10]、list[a..a+5]で5個ずつ抜き出し
使ったことないけど
951デフォルトの名無しさん (ワッチョイ d201-b83C)
2020/02/13(木) 01:49:45.90ID:r7bSHOfr0
>>946
パターンマッチで一発でできるのがメリットでそれ以外は副産物じゃないかな

if (sequence is IList<T> list) {
return list[5..];
}

IList<T> list;
if (sequence is IList<T>) {
list = (IList<T>)sequence;
return list[5..];
}
と同じイメージで変数スコープはちょっと特殊
952デフォルトの名無しさん (アウアウウー Sac3-H6bD)
2020/02/13(木) 01:58:34.59ID:29zvuXGOa
>>946
asと同じく、型チェックが1回で済むからisキャストに比べてちょっとだけ速い
953デフォルトの名無しさん (スップ Sd32-nRwz)
2020/02/14(金) 17:41:03.02ID:IZamEETxd
enumの比較をvbで書いたら違う型なのに真になった
なんじゃこりゃ

c#は問題ない
954デフォルトの名無しさん (オッペケ Src7-LECa)
2020/02/14(金) 18:28:00.59ID:MYdX36hLr
>>953
VBには暗黙の型変換があるから
955デフォルトの名無しさん (スップ Sd52-nRwz)
2020/02/14(金) 18:41:24.16ID:AIitx2itd
おお、ありがとう
暗黙変換禁止すればいいのかな
956デフォルトの名無しさん (ワッチョイ cf88-3blX)
2020/02/14(金) 18:43:32.04ID:35QeCoo80
なぜvbスレじゃないのか
957デフォルトの名無しさん (アウアウウー Sac3-+wK4)
2020/02/14(金) 19:02:11.32ID:7R4aPKWba
Option Strictは関係ないみたいね。
たぶんenumの型(intかshortかbyteか)で比較するんだろう。
別にそれでもいい気がする。
個人的にはC#の参照型の==演算子は既定で参照を比較する方が気持ち悪いと思うw
実装されてなければコンパイルエラーでよかったのに
958デフォルトの名無しさん (ワッチョイ efda-GrpO)
2020/02/17(月) 13:08:35.25ID:x0CaePxl0
WinFormsのTreeViewで、CheckBoxの代わりにRadioButtonを使いたいのですが、
それらしい設定を見つけきれません。

どう設定すればよいのでしょうか?
959デフォルトの名無しさん (ワッチョイ df01-Wqax)
2020/02/17(月) 13:10:56.08ID:AsvyPM/w0
ownerdraw
960デフォルトの名無しさん (ワッチョイ 932c-VKUZ)
2020/02/17(月) 22:08:17.03ID:dzSo2/zk0
element host使ってwpfのlist view使うのが一番楽だと思う
961デフォルトの名無しさん (ワッチョイ 975f-SbTe)
2020/02/18(火) 22:43:14.29ID:DxyDMMqU0
DBに接続するときに以下のようなContextがあるとしてMyEntities1、MyEntities2、MyEntities3のテーブルにデータが追加されているかをtimerを回してデータCountが変わっているか調べて追加されています。

これをデータが追加されたときのみでよいのですが、削除、変更等があったときにイベントを発生されることってできますか?

public partial class MyContext: DbContext
{
public MyContext(DbConnection connection) : base(connection, false)
{
}

public virtual DbSet<MyEntities1> MyEntities1 { get; set; }
public virtual DbSet<MyEntities2> MyEntities2 { get; set; }
public virtual DbSet<MyEntities3> MyEntities3 { get; set; }
}
962デフォルトの名無しさん (ワッチョイ 6338-zMV9)
2020/02/18(火) 23:05:48.43ID:9xbWknqa0
DBによってはEVENTを通知する仕組みがある
仕組み以外でもtriggerとかも使える

まあ対象テーブルへの変更がEF経由のみなら、それを一律で監視するのもアリ
MyContext内部とかそのラッパーとかでeventを発火させれば済む
963デフォルトの名無しさん (ワッチョイ df01-Wqax)
2020/02/18(火) 23:12:15.02ID:0qGjhB4R0
DBMS_PIPEかな?
db2とかOracleなら
964デフォルトの名無しさん (ワッチョイ ff2f-LiuO)
2020/02/18(火) 23:19:02.38ID:NTzSIrcU0
MyEntitiesにイベント実装するだけじゃないのか
独自イベントでもいいし、INotifyPropertyChangedでもいいかもしれん
965デフォルトの名無しさん (ワッチョイ 975f-SbTe)
2020/02/18(火) 23:29:55.78ID:DxyDMMqU0
>>961
情報が足りなかったすみません

対象のDBはSQL Server2000です
これにデータを追加しているアプリと
データが追加されているかを監視したいアプリは別なのですが可能でしょうか?
966デフォルトの名無しさん (ワッチョイ 975f-SbTe)
2020/02/18(火) 23:35:16.65ID:DxyDMMqU0
後、変えられるのは監視したいアプリ側だけで
DBと 追加しているアプリは変えられないです。
967デフォルトの名無しさん (ワッチョイ ff02-IdAT)
2020/02/19(水) 00:10:09.35ID:N9gqFXA+0
軽量でない処理を行ってその処理の内容次第で適切な区分値を返すメソッドがあるとすると
メソッド名はどんな感じにするべきですか?

つまりGetHogeKubunのようにGetをつけるのが簡単ですが、
軽量でない処理を呼び出すときはGetをつけないほうがいいという話がありますよね?
私はプロパティ構文のある.NETの場合は、
Getという文言がついているからといって軽量な処理を想定しないと思って
別に適切な命名が思いつかなければ軽量でない処理でもGetを使ってきたのですが、
その考えもどうなんだろうと思ってきました。

みなさんはどうしてますか?
968デフォルトの名無しさん (オッペケ Sr07-p4c1)
2020/02/19(水) 00:12:52.45ID:2IDaZuEtr
処理の内容を英文で頭につければいいいよ
計算してるのか通信してどこかから取得してるのかで違うでしょ?
969デフォルトの名無しさん (ワッチョイ e363-qdXs)
2020/02/19(水) 00:19:22.70ID:7DzKXr/O0
処理が重いとか軽いとかでメソッド名は変えないな
非同期にするとか仕組みでカバーすることはあるかもしれないけど
970デフォルトの名無しさん (オッペケ Sr07-p4c1)
2020/02/19(水) 00:21:14.61ID:2IDaZuEtr
英語の解釈

getは、基本的に置いてある物などを入手する場合に使われます。
努力をしないで物を得る時に使われる事が多いです。口語として一般的に使われています。
971デフォルトの名無しさん (オッペケ Sr07-p4c1)
2020/02/19(水) 00:24:20.76ID:2IDaZuEtr
Getはすでに計算してある結果などを取る感じ

じゃあ計算はどこでやっててどこに入れてあるのかなあと考える
972デフォルトの名無しさん (ワッチョイ ff02-IdAT)
2020/02/19(水) 00:25:53.50ID:N9gqFXA+0
>>968-971
ありがとうございます
イメージがついてきました
973デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2020/02/19(水) 00:49:18.60ID:GM7mImOk0
>>965
DBへの変更はできない、DBを更新してるアプリの変更はできない、かつSQL Server 2000という条件で
データの追加・更新・削除を検知したいってことでいいのかな?

そういう検知ができるようにテーブル設計されてなければ正攻法では無理
カラム追加するなりストアド使うなりバージョン上げるなりするほうが早いし安上がり
974デフォルトの名無しさん (ワッチョイ 83de-FTwr)
2020/02/19(水) 01:08:57.84ID:nQPwUMQ20
クラサバ型のアプリなんだけど
サーバー側からイベントが欲しいって言ってんじゃね?

クライアント100台全部に通知ほしい?
また、その電文は投げっぱなしのジャーマンじゃなくて応答が欲しい?
凝ったことするときはレンサバでなければサーバー側にサービスとか動かして実現することが多いかな?
俺の経験だと
975デフォルトの名無しさん (アウアウウー Sae7-icJa)
2020/02/19(水) 01:12:39.27ID:9hl10qC/a
>>967
>軽量でない処理を呼び出すときはGetをつけないほうがいいという話
これは聞いたことないね

MSのガイドラインではプロパティのゲッターに重い処理を書いてはいけないとなってたと思うけど、
(つまりGetXXX形式にしろ)それを聞き間違えたんじゃないか。

もちろん例外はあると思うけど、メソッド名が十分適切に「何をするメソッドか」を表現できていれば、
普通はそれが重いかどうかだいたい想像がつくのでは?

まあ、非同期メソッドにしたら軽くないことは嫌でも伝わるね
976デフォルトの名無しさん (オッペケ Sr07-p4c1)
2020/02/19(水) 10:20:36.95ID:2IDaZuEtr
効いたことないなら調べろよと
977デフォルトの名無しさん (ワッチョイ 8f02-Uarg)
2020/02/19(水) 12:35:15.24ID:/KKpt7jl0
967が独自で見聞きしたとくに重要とも思えない、間違っていそうな情報を調べるとか時間の無駄でしかないな
978デフォルトの名無しさん (オッペケ Sr07-p4c1)
2020/02/19(水) 15:02:50.04ID:2IDaZuEtr
いやいやメソッドの命名法則の基本中の基本でしょ?
979デフォルトの名無しさん (ワッチョイ 6388-qdXs)
2020/02/19(水) 15:06:48.11ID:uQe4y4Pa0
基本なのにいつまで経っても議論が絶えないめんどくさい話
IDEのリファクタリング機能が優秀になったおかげで修正が楽だから結構適当につけて後から気に入らなかったら直すスタイルになった
命名で悩む時間が減ったら作業効率あがる
980デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
2020/02/19(水) 15:39:25.68ID:cGULNOoWF
string[] a = new string[]{"a","b","c"};
に対して
System.Array.Reverse(a);
でaそのものが反転してSystem.Array.Reverse(a)は戻り値がありませんが
a.Reversed() で戻り値が反転した Array で元の中身は変えない
みたいになるメソッドってありますか?
981デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2020/02/19(水) 16:00:07.98ID:GM7mImOk0
a.Reverse().ToArray()
982デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
2020/02/19(水) 16:29:59.82ID:cGULNOoWF
引数 0 を指定するメソッド 'Reverse' のオーバーロードはありません。

って出るんだけど何が変なのかな
983デフォルトの名無しさん (ワッチョイ 9361-XOS8)
2020/02/19(水) 16:34:12.36ID:TvNfUAFk0
using System.Linq;
984デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
2020/02/19(水) 16:53:50.20ID:edMDbkMkF
ありがとう
お詫びに脱ぎます
985デフォルトの名無しさん (ワイーワ2 FFdf-IPX/)
2020/02/19(水) 17:01:40.22ID:edMDbkMkF
980踏んだのでついでに御相談なのですが

ふらっと C#,C♯,C#(初心者用) Part146
http://2chb.net/r/tech/1576069931/
ここの次スレ (Part147 ?) は立てた方が良いのでしょうか?
既に
ふらっと C#,C♯,C#(初心者用) Part141
http://2chb.net/r/tech/1544838367/
というスレもあるようですが重複なので放置なのか使い切った方が良いのかどっち?
986デフォルトの名無しさん (ワッチョイ 8f7c-kENX)
2020/02/19(水) 17:08:59.58ID:c1iFkMHs0
そっちはワッチョイなしのスレ こっちはワッチョイありのスレで別物よ
だからスレ立ての時に気を付けてね
987デフォルトの名無しさん (エムゾネ FF1f-HF0o)
2020/02/19(水) 17:27:06.99ID:IsrGexiaF
ふらっと C#,C♯,C#(初心者用) Part147
http://2chb.net/r/tech/1582100741/
988デフォルトの名無しさん (ワッチョイ 8f02-Uarg)
2020/02/19(水) 19:31:48.47ID:/KKpt7jl0
>>978
命名規則なんてチーム開発での決め事でしかないんだから周り合わせりゃいいだけ
一人で作ってんなら好きにすりゃいい
そんなもんだろ

っで時間がかかる時にGetを付けるかどうかとか決め事にするほどでもない内容だわ
データ書き換えしてるとかならわかるけど
989デフォルトの名無しさん (ワッチョイ 035f-Hhsf)
2020/02/19(水) 19:46:09.06ID:fm92UHAO0
>>962>>964
timerを回して下のようにデータ件数を取得して比較する
増えていたら必要な処理をおこなうぐらいしか思いつかないんですが
MyContext内の監視の仕方を教えてくれませんか

using (var context = new MyContext(connection))
{
datacount1 = context.MyEntities1.Count;
datacount2 = context.MyEntities2.Count;
datacount3 = context.MyEntities3.Count;
}
//比較処理
Proc(datacount1 ,datacount2 ,datacount3)


>>973>>974
既製品が既製品のDBにInsartだけしていて情報を表示する既製品のアプリもあるのですが
DBにアクセスはできるので情報を表示する既製品のアプリを別に作りたいなと思っています

>>そういう検知ができるようにテーブル設計されてなければ正攻法では無理
これはどんな感じに設定されているのでしょうか?インデックスの最大値を検知とか?
990デフォルトの名無しさん (ワッチョイ a301-H85D)
2020/02/19(水) 19:55:29.18ID:Jcw8mEdu0
トリガー作って監視用のテーブルに
情報を描きこむ。

DML トリガーでggr
991デフォルトの名無しさん (ワッチョイ 7338-T5WG)
2020/02/19(水) 20:21:28.78ID:BEiBw7Bx0
それが正攻法やなあ
更新時に通知するのが一番良いけど、そこは触れなそうだし、フックポイントを用意してる気の利いた作りでも無さそうだし

何が問題で、精度や頻度やデータ件数すらわからんので、禄なアドバイスできんが
C#要素薄いし
992デフォルトの名無しさん (オッペケ Sr07-K8zV)
2020/02/19(水) 20:50:13.78ID:8xnvzjDzr
sqlserver2000には誰もつっこまないのか
10年近く前にサポート切れてるだろ
993デフォルトの名無しさん (ワッチョイ 7338-T5WG)
2020/02/19(水) 20:53:26.25ID:BEiBw7Bx0
どう見ても案件的にいろいろ終わってそうだからねえ
泥縄過ぎる気配
994デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2020/02/19(水) 21:41:53.11ID:GM7mImOk0
>>989
>Proc(datacount1 ,datacount2 ,datacount3)
え? その3つの比較なの?
もうワケワカメ
995デフォルトの名無しさん (ワッチョイ 035f-Hhsf)
2020/02/19(水) 21:47:53.23ID:fm92UHAO0
基本的にDML トリガー等でDB側に用意しておくものだってことか・・・

>>991
既製品のDBアプリはいじれないので
必要なtableのデータをsqlserver2010からsqlserver2019データを移動させるつもりなのですが
ほとんどのtableは1分に一回ぐらいチェックして別のDB入れるで十分だけど一部のtableはInsertされたらすぐに別のDBに入れたい
そうなると1秒間隔でtimer回して>>989のような処理ってどうなんだ・・・?tableは100ぐらいでレコード件数多いのは100万あるので
timer回さなくてもMyContextが自動でデータ変化をチェックできるようなもっといいやりかたない?って疑問があったので質問してました

>>962
>>まあ対象テーブルへの変更がEF経由のみなら、それを一律で監視するのもアリ
これが気になるんだけど変更を一律で監視ってレコード件数とかなのだろうか


>>994
>>Proc(datacount1 ,datacount2 ,datacount3)
前回のレコード件数と比較して変わってたら2019に移動のつもりで書いていました
996デフォルトの名無しさん (ワッチョイ a3ad-7OSh)
2020/02/19(水) 22:04:05.84ID:nHKkxEMo0
>>995
無茶苦茶じゃねえか。
1秒間隔で100万超のレコードのcount取るとか、既存アプリとやらが使えなくなるレベルでパフォーマンス落ちると思うぞ。
997デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2020/02/19(水) 22:25:12.19ID:GM7mImOk0
>>995
なんでDBContextの話をしてたのかやっと理解できた
DBContextがデータベース側の変更を自動で検知するとかは無理
楽観的同時実行制御みたいな機能はあるけど求めてるものとは違う

DB移行で新旧オンラインのまま
一部テーブルを同期させたいというユースケースなら
トリガーよりも先にレプリを考えるな

詳しくはDB板で聞けば
998デフォルトの名無しさん (ワッチョイ ffad-mvZW)
2020/02/19(水) 22:34:34.71ID:c1z4lMBX0
EntityFrameworkならSaveChangesをoverrideしちゃえばできるんじゃね?
あんま読んでないけど
999デフォルトの名無しさん (ワッチョイ 035f-Hhsf)
2020/02/19(水) 22:39:28.51ID:fm92UHAO0
>>996
やっぱりそうなっちゃうかな

>>997
変更を自動で検知は無理か
レプリケーション調べてみます

ありがとう!
1000デフォルトの名無しさん (ワッチョイ ff6a-Nz9x)
2020/02/20(木) 00:18:43.15ID:C2E41YSR0
1000ならC#死亡
-curl
lud20241211050934ca
このスレへの固定リンク: http://5chb.net/r/tech/1576069931/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「ふらっと C#,C♯,C#(初心者用) Part146 YouTube動画>10本 ->画像>3枚 」を見た人も見ています:
ふらっと C#,C♯,C#(初心者用) Part137
ふらっと C#,C♯,C#(初心者用) Part119
ふらっと C#,C♯,C#(初心者用) Part154
ふらっと C#,C♯,C#(初心者用) Part128
ふらっと Q#,Q♯,Q#(初心者用) Part 1
ふらっと C#,C♯,C#(議論用)
Webサイト制作初心者用質問スレ part248
Webサイト制作初心者用質問スレ part253
くだすれFORTRAN(超初心者用)その6
くだすれFORTRAN(超初心者用)その7
【プロスピ】プロ野球スピリッツA初心者スレ part16
街コン行く人集まれ(初心者向け)Part4
FX初心者スレ Part134
MTB初心者質問スレ part103
MTB初心者質問スレ part105
3ds Max初心者質問スレ Part18
Xiaomi(小米科技)初心者 Part11
Xiaomi(小米科技)初心者 Part17
クロスバイク初心者質問スレ part15
クロスバイク初心者質問スレ part17
クロスバイク初心者質問スレ part13
初心者の質問相談にやさしく答えるスレ Part11
セキュリティ初心者質問スレッド Part140
遊戯王 初心者・復帰組交流支援スレ Part17
Wonderland Wars 入門者・初心者スレ Part15
PS4】ARK: Survival Evolved 初心者 part12
PS4】ARK: Survival Evolved 初心者 part14
【iOS/Android】消滅都市2初心者スレ part18
幻獣契約クリプトラクト 初心者&質問スレ part11
ドラゴンズドグマオンライン初心者専用スレ Part1
【マギレコ】マギアレコード まったり・初心者・質問スレ Part18
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part105
【右巻き】ルアーの右投げ右巻きって初心者臭いよね Part101【発狂】
【口だけ】ルアーの右投げ右巻きって初心者臭いよね Part103【発狂】
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part161
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part122
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part115
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part135
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレ Part160
【ロマサガRS】ロマンシングサガ リ・ユニバース初心者スレ Part1 【課金・無課金】
【DFFAC/DFFNT】初心者スレ DISSIDIA FINAL FANTASY(ARCADE)/NT part15【まったり】
【DFFAC/DFFNT】初心者スレ DISSIDIA FINAL FANTASY(ARCADE)/NT part16【まったり】
【DFFAC/DFFNT】初心者スレ DISSIDIA FINAL FANTASY(ARCADE)/NT part17【まったり】
ロード初心者質問スレ part446
【初心者・質問】イース6 オンライン part1
【LoL】League of Legends 初心者スレ Part146
格ゲーが衰退してる原因は、初心者に媚びすぎたから Part6
【プロスピ】プロ野球スピリッツA初心者スレ part186
【新馬】ウマ娘プリティーダービー初心者スレ Part106
【タガタメ】誰ガ為のアルケミスト 初心者・質問スレ Part.46
【ランモバ】ラングリッサー 初心者&まったり&質問スレ Part.16
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part146
ウクレレ初心者集まれ! Part17
pixiv初心者&質問スレpart1
バジリスク絆初心者質問スレpart19
ウクレレ初心者集まれ!! Part19 (ID有)
【初心者】ダイエットの質問・相談スレPart191
【若葉】運転初心者のためのスレPart133【黄|緑】
【初心者】ダイエットの質問・相談スレPart188
【初心者】洗車〜ワックスがけ情報【大歓迎】Part114
【Part11】 まったりと将棋するスレ 【初心者歓迎】
【Part13】 まったりと将棋するスレ 【初心者歓迎】
【MHW】モンスターハンターワールド 初心者スレpart19
07:02:19 up 3 days, 17:26, 0 users, load average: 9.08, 12.09, 11.88

in 4.4605059623718 sec @4.4605059623718@0b7 on 121521