◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:ふらっと C#,C♯,C#(初心者用) Part146 	YouTube動画>10本 ->画像>3枚  
動画、画像抽出    || 
この掲示板へ   
類似スレ   
掲示板一覧  人気スレ  動画人気順 
 このスレへの固定リンク: http://5chb.net/r/tech/1576069931/ ヒント: http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
 !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 
 ひらがな文字列をヘボン式ローマ字に変換するプログラム作りたいのですが 
 UNIXのShellのソースでコマンドを切り分ける場所では思いっきりswitch文の嵐だったな 
 要素数が多くなれば多くなる程switch文よりDictionaryの方が速度的にも早くなるのでは? 
 >>7   C#コンパイラは多数の分岐先を持つswitchの場合には二分探索を行うコードを生成したりする 
 基本的に人間が最適化するより速い 
  >>4 です 
 ありがとうございます 
 switchでコツウコツやることにします 
 要素の数え漏れでもっと増えそうだし 
 例外を拾う処理も考えなきゃww 
  vs2017ExpressでC#のフォームを使ってSQLiteのデータをDataGridViewに表示させたいです 
 >>13   自宅でSystem.data.SQLiteをインストールして同じコードを書いたらデータベースに接続出来ました 
 恐らくSQLiteConnection等の参照が足りずにエラーなっていると思いますが、解決策が思い浮かばなかったのでSQL Serverを使って試したいと思います 
 申し訳ありません 
  Microsoft Visual Studio International Feature Pack を使うんだ! 
 >>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])); 
  あとは 50 音を全パターン書いてね。 
 テーブル作る前提なら始めからdictionary作ればよくね? 
 一文字ずつ正規表現でマッチしてたらとんでもなく時間食いそうだな 
 >>18   作っているのはテーブルだけではないし、このように書くとスッキリ書ける。    
>>19   処理の重さの本質はワード比較による分岐であって、switch 分岐もそれに引きずられるから、C# で比較するならどちらも大差ないと思う。   
 正規表現の方が、むしろ、最適化がかかることに期待できる。 
  まったくスッキリしてない 
 >21 
 >>23   何か勘違いしてないか? 
 こっちも Dictionary つくっているが。 
  2文字置換を考慮したらスッキリは書けなかった 
 すまんこ 
 こんなクソみたいなコードでもregexよりは数倍早い  
https://ideone.com/c7ILX4   頭良い人がもっとスッキリしたコード書いてくれそう   
 長文のほうがreplaceは不利だろうから数千文字にしたけどそれでも余裕 
 速度気にしないならregexで良いと思う 
 最終文字が2文字置換対象じゃないときにsubstringで範囲外例外出るわ 
 小さい「っ」が未対応なことに気付いた 
 多少簡略化したロジックで計測してみた。 
 >>27   おもしろいところに気づいたね。   
 例えば仮文字 $ とかに変換しておいて、最後に直後の子音字に変換。   
 ちゃっと => cha $ to => cha t to 
  どうあがいてもregexは遅くないという結論にしたいみたいだけど 
 あるいはワンショットで置換するなら、下記のようなパターンを使って後方参照し、第1マッチ文字列が空でないなら、第2マッチ文字列の置換先の1文字目に置換するとか。 
 「ンョ゛ハー ゛」みたいなのが来た時の対応とか考え出すと仕様肥大化するだろうなあ 
 LALRを受理するジェネレータ書いたことがあるんだけど、状態表の大きさは字句解析のほうが遥かに大きくなるのが普通みたいですよ。 
 >>30   文字列操作だからもちろん絶対的には遅いよ。   
 C# で書いたユーザー定義関数と比べたときに正規表現が相対的にそんなに不利かといったらそうではないだろうという予想を立てただけで。実際測ったら同等だったわけだけど。 
  日経だったか「むかっっ」という促音が 
 字句解析におけるNFA対DFAというのも最初に気になる部分です。 
 ちなみに、DFAにこだわる理由は、多くの本がDFAのほうが効率的と述べているからです。 
 >>34   その同等だったっていうコード貼ってくれない? 
 25で貼ったコードで1文字2文字の比率変えてもregex側が常に3〜4倍くらい遅いんだよね 
 古い.NETだとsubstringが遅いとかあった気がするんだけどその影響じゃないよね? 
  >>38   コード書いてくれてたんだね。 
 25 があぼーんで読めない。。。 
  >>4 でーす  
>>16 以降、何書いてるのかサッパリ分かりません! 
 なんせまだifとforとswitchと文字列操作のメソッドくらいしか知らないもんでww 
 半年くらい後に読みに来まーす 
  >>38   コードは長すぎて多分アップできないと思う。   
 やっていることは switch 式を2 文字マッチの場合と 1 文字マッチの場合で 2 種類つくり、残文字列が 2 文字以上あるなら前者にかける (破棄パターン _ => で後者を呼び出す)、1文字なら後者にかけ、インデックスを進めるだけ。   
 置換後文字列の連結には StringBuilder 使っているし、メソッド呼び出しは AggressiveInlining している。ユーザー定義関数を意図的に遅くするようなことはしていない。   
 1文字あるいは2文字の切り出しに Substring 使っているけど、それが遅いのかな? 
  ローマ字変換でばっとググってみた 
   お勉強用ならJavaScriptで書かれてるこれを理解しながらC#に移植するのがよさそうかな 
 ソースコードも簡潔だし悪くなさそう  
https://www.pandanoir.info/entry/2016/03/29/190000     とにかく動けばいいというならMicrosoftが配ってるらしい「Japanese Kana Conversion Library」?でもこんなの使ったことないや 
 ンボマはmboma 
 正規表現のほうが単純文字列比較より遅いのは当たり前 
 >>39   これで見えるかね  
https://ideone.com/c7ILX4   このコードはswitchじゃなくDictionaryでやった 
 おそらくswitchのほうがこれより早くなるか最適化で同程度になるはず 
 switch版までは作るのめんどい   
 配列の境界値チェックも遅い要因なのでできるだけチェックが発生しないのが望ましい 
 このコードでは2文字変換したときに境界値チェックが入ってしまうので2文字変換比率が高いと性能が悪くなる 
 2文字変換ばかりにしてもregexよりは早い 
  >>45   ありがとう。週末に評価してみる。   
 switch より Dictionary の方が処理性能がぶれない気がする。ハッシュで検索がワンショットに決まるから。switch は if カスケードを通ることで前スレで議論したパイプライン処理の影響を受けるため、処理速度がデータに強く依存する。   
 そんなわけでこの件の性能はコードの書き方 (チューニング含む)、データ、環境にかなり依存すると思う。   
 これは価値観の問題なのでみなが同じように考えるとは思わないが、正規表現で 3 - 4 倍程度の性能悪化なら、ユーザー定義関数よりチューニングより正規表現を私は採用する。 
 10 倍の悪化なら用途によっては考える。(パターンが複雑・多岐の場合) 正規表現は開発効率と保守性が 10 倍よいと思うので。 
  >>46   switchとdicの関連は44が説明してくれてる 
 最適化次第でいい感じにしてくれるはずだからどっちもたいさない感じになると思う   
 個人的には性能差が10倍だろうが1000倍だろうが許容できるケースなら可読性を取る 
 今どき文字→数値変換でc-'0'なんて書かずに大体int.Parse使うのと同じ   
 UIに入力された氏名のローマ字変換みたいな1ユーザー1回で済むような処理に速度なんて無意味 
 GB単位のログデータをいじるなら数倍の差でも考慮すべき 
 なんなら入力データの傾向に応じてチューニングしやすい単純処理のほうが更に高性能にしやすい 
  俺なら、ひらがな小文字の変換は、変換元「ちゃ」とか「ぱっ」のパターンを文字数降順で優先的に置き換えるかな。 
 >>44 , 45, 47 
 みんな有益な考察をしてくれるのでありがたい。感謝。   
 今まで正規表現が際立って遅いと体感することなかったけど、利用目的を想定した評価をきちんとしたことなかったので一連の議論はとても参考になりました。 
  オリジナルの文字列を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"); 
 >>49   正規表現が遅いのは、コンパイルだろ   
 実行時ではなく、初期化時にコンパイルするようにと、Go の本には書いてある 
  >>4   Ruby では、条件分岐しなくても、変換用の辞書で書ける    
>>16   も、これに似ている   
 hash = { 'ab' => 'あ', 'xy' => 'ん' }   
 p re = Regexp.union( hash.keys ) #=> /ab|xy/   
 p "9xy9ab9xyx".gsub( re, hash ) 
 #=> 9ん9あ9んx 
  >>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 の例は参考になる。 
  このスレにいる人たちで 
 C#を日本語で記述ってのを実際にやってる人、どれくらいいるかな  
https://togetter.com/li/1441951  を読んで試してみてもいいかなと思ったんだけど 
 VisualStudioのコード補完が利く環境ならIME切替の手間もさほどかからない気もするし 
 何か致命的なデメリットとかあるんだろうか 
 >>54   ほとんどいないのでは?w 
 デメリットはインテリセンスとの相性の悪さに尽きるね。   
 どうでもいいけど「C#を日本語で記述」の是非というより識別子に日本語を使うことの是非だよね 
 論より証拠、やってみたらいかに非合理な試みか分かると思うよ 
  Ruby では、RSpec(BDD)のユニットテストで、 
  enumの要素で使うと便利 
 >>54   補完のために半角英数+日本語が便利 
 これなら最初だけだしIME切り替えは 
  補完はomnisharp + migemoで解決できる 
 俺が英語ができなかったり、デザインパターンの理解が足りなかったりするせいだとは思うけどさ 
 ファイル名=publicクラス名.csは一般的 
 日本語を使った感想 
 プロパティーやフィールドはいいけど、メソッドやイベントの名前は馬鹿っぽくはなるねw 
 プロパティはいいとしてメソッドは動詞(+名詞)の形にするの 
 >>58   中点使ってるせいでC#6.0対応時にエラー吐いたプロジェクトあったわ 
  >>54   DBテーブル名/カラム名が日本語名のWindows業務システムで、 
 Entityクラスや画面コントロールの命名をDBそのまんまの日本語にしたら 
 ソースが滅茶苦茶読みやすくとても良い感じになった 
 以後、積極的に日本語で命名するようにしてる   
 自分の書き方だと、 
 日本語を使うのは画面項目や業務用語の名詞のみ、動詞は英語 
 英語とチャンポンして Update利用情報()、Is有効期限内 みたいなメソッド/ブロパティをよく作る 
 ローカル変数はiとかsとかtとか適当なプレフィクスをつけて無理やりcamelにする 
 フィールドは_始まり 
 とかかな 
 日本語で書くコメントが大幅に減らせてメリット大だと思う   
 デメリットは…C#関係ないけど 
 postgresだとテーブル名が日本語だとテーブルエクスポートが出来なくて不便、 
 多分ASP.NETみたいなWebシステムだと日本語名を使うのはリスク高い、 
 とか 
  Listについて質問なのですが 
 new BindingList<Hoge>(fuga.ToList()) 
 >>71   おお!何かわからんけど、できた 
 初期化したらキャストできるの? 
 でもdataGridViewのDataSorceプロパティに入れてたのも外れるから 
 もう一度入れ直さないといけないけど・・・ 
  razor page のコーディングについてなんですが、 
 >>73   1メソッド300行以内っていう社内ローカルルール 
  >>73   Partial ViewとかView Component使って分割する 
 再利用しなくても分割する 
 個人的には200行超えると黄色信号    
>>74   1メソッド300行ってすごいな 
  やっと会社の環境がvisualstudio2010から2019になったわ、これで非同期無双できるw 
 そんな環境で2019なんか入れて大丈夫か? 
 2010だとNuGetすら使えないんじゃ 
   54だけどレスありがとう>ALL 
 実践してる人もそこそこいるのね 
 テーブルやカラムを日本語で命名できるのってAccessに限らないのか・・・・ 
 不具合の事例も知りたいけど、具体的に出てきたのは
>>67 くらい? 
 C#に閉じた範囲で使うぶんには大丈夫そうかな・・・・今度試してみるよ 
 >>80   全角ピリオドとか&とかヤバそうに思えるのは使わないのが無難 
 date前月末とか昔から使ってます   
 昔々のACCESSで一部の通常全角文字が使えないとかありましたが、今はもう大丈夫と思ってます 
 将来的にトラブル可能性はゼロではないとしても、可読性のメリットのほうが遥かに大きい 
 例えば「要介護認定等基準時間」みたいなのを英字変数にするとかアホにもほどがある 
  質問でふ(^^ 
 最適化すると数行のswitch文はifに自動変換されるんじゃなかったっけ 
 そうだったんでふか(^^ 
 class Hoge{ 
 >>86   この構成じゃ出来ないことが分かったので質問を取り下げます 
  webview使ってブラウザ操作してるんですけど、相手がASP使ったサイトだとボタン押したりテキストボックスに文字入れたりって操作は無理ですかね? 
 jsonファイルを読んで、木構造を編集して、jsonファイルに出力する 
 ちゃんと型を付けてデシリアライズ→加工→シリアライズする 
 質問なのですが 
 var datalist1 =  
 >>92  >>91    >>93   92 は for ブロック内部の代入式の左辺が変わってないよ、というツッコミ。   
 やりたいことは、抽出対象プロパティをテキストで指定してシステマティックにデータ抽出したいってことでしょ?   
 Dictionary やインデクサで、テキスト => 対象プロパティ or 抽出メソッド、のマップを作って、Reflection か何かで呼び出せばできそうな気がするけど、LINQ to Entities でワークするかどうかは試してみないとわからないな。 
  >>93   有益な回答を得るためにもう少し説明が必要かも。   
 なぜ抽出対象プロパティをテキストで指定する必要があるの? 
 1 カラムごとに 100 回抽出しようとしているけど、まとめて 100 カラムをワンショットで抽出してから加工するのではなぜダメなの?   
 また環境が EF6 なのか EF Core なのかも言及した方がいいかもね。 
  ごめん、勘違いしていた。 
 そうですそうです。 
 抽出テーブルを動的に指定したいなら、DbSet<T> を返すプロパティが DbContext の派生クラスに定義されていると思います。 
 >>97   そういう目的ならテーブル名をテキストで指定する必要もなくて、   
 foreach (var prop in context.GetProperties()) 
 { 
   var table = (prop as IQueryable<CommonBaseClass>).ToList();   
   // table に対するテスト処理 
 }   
 でよいかもしれない。   
 ただし下準備として、DbContext の全プロパティのデータコンテナを共通で受ける基底クラス  CommonBaseClass を定義する必要がある。   
 似たようなことはやったことあるのだけど、このコードが手直しなく動くかどうかはわからない。   
 テスト処理もラムダ式のリストで用意しておいて、各テーブルと Zip() して適用するなど、LINQ を活用するとよいと思うよ。 
  >>90   説明が稚拙で申し訳ないです   
 プログラムはフォームで、木構造の編集とはノードのコピーや削除、値の編集などをGUIで行います   
 GUIの理由はJSONファイルはあるスマートウォッチのカスタムフェイス用で配置などを確認するためです   
 自分が知りたい事はc#でよく使われる木構造を扱うライブラリです 
  >>99 >>100 
 ありがとうございます。 
 まだうまく動いていなくて返事遅れました。 
 100参考にして試してみます。 
  >>99 >>100 
 さっぱり動かせそうにない 
 CommonBaseClassOfMyEntityDataModels 
 CommonBaseClass 
 の説明をもう少しお願いできませんか? 
  プロパティ DbSet<EntityModel1> MyEntity1 や DbSet<EntityModel2> MyEntity2 の型引数 EntityModel1, EntityModel2 があるとすると、その共通基底クラス BaseEntityModel を定義する必要があります。 
 訂正。 
 >>104   明日また試してみます。 
 丁寧に説明ありがとうございます。 
  >>101   よく分からん理屈だなあ 
 そのスマートウォッチの設定に限らず、世の中のアプリが扱うデータなんて大半は木構造なわけだが、 
 そいつらがみんな木構造を明示的に扱うようなGUIを持ってるか? 
 断言するが、明示的に木構造を扱うようなUIが必要なのはフォルダツリーのように再帰的な構造を扱う必要がある場合だけだ 
 それ以外は必ずもっと適したUIがある 
  while文がネストしていた時、階層の奥から一番外側のwhileループまでブレイクするにはどうするのが正しいのでしょうか? 
 ここでいいのか分からないんですが質問させて下さい。 
 >>107   漏れてて申し訳ないです   
 そのスマートウォッチではノードの記述順によって表示順が決まるので木構造の順番を入れ替えたい   
 入れ替える枝の深さもまちまちですので木構造を直接編集できた方が良いと思った訳です   
 また、全てを木構造で扱うのではなく、末端部は類型化されてますのでクラスにして編集の予定です 
  >>106    >>110   ゲーム開発がしたいならUnityを使う 
 Unityの本を買え 
 Mac版のVisual Studioは一応あるけど誰も使ってないから本は存在しない 
  >>110   まずMACを捨てましょう 
 プログラミングはwindowsでないと、今は良くても後々面倒だと思います 
 私がゲーム開発してた頃はDirectX使ってました 
 3Dプログラミングはサインコサインタンジェント使いまくりなので数学の知識がいります 
 2Dは足し算引き算ぐらいなので初心者でもできると思います 
 画面にドット絵表示までが鬼門ですがそこ乗り越えられたら楽しい世界が待ってるのでがんばってください! 
  >>114   MacでもWindowsが動かせるから捨てる必要なし 
  >>112   こんな書き方もできるのか勉強になりました。   
 色々調べて試してみて
>>100   をベースにして思ってたように動かせました。 
 コードすっきりになりました!ありがとうございます。 
  そもそもweb周りなんかだとはMacかなり多いのにプログラミングはWinで!なんて発想はどこから来るんでしょうか 
 webは簿給でMacのお布施を払っていると 
 >>120   まじか 
 同じ世界に住んでるようで違う世界なんだな 
 金融医療なんかと比べりゃ薄給かもしれんが世間の平均以上はあるでしょ 
 そら平均ないとこもいっぱいあるし中間搾取が多い部類だとは思うが… 
 日本は世界的に見てweb系、というかプログラマ自体が安いってのはあるけどそれでも他業種に比べりゃ全然マシだと思うよ 
  web系と一括りにしているが
>>118 が経験した狭い範囲でのことだろう 
 webは金になるよ 
 110の者です。反応してくださった方々ありがとうございます。 
 ゲームは知らんけど、組み込みはほんとピンキリだよw 
 >>125   Unityならmacで十分だよ   
 Windowsでないと後々面倒というのは、会社で使うのはWindowsがほとんどだから 
 もし仕事にするなら、今から使い慣れてた方がいいということ   
 開発行為自体だと、unix系のアプリケーションならmacの方が色々揃ってるからやりやすいし 
 Windowsのアプリケーションなら、当然Windowsがやりやすいよ 
  >>123   オプションとなるスキルが違うだけでプログラミングスキルはどの分野でもピンキリ 
  >>123   2Dなら足し算引き算だけなんていってる人が"プログラムの真髄"なんて言っても、自分がやったことある範囲の知識がすべてなんだなって感じで説得力ゼロだぞw 
  プログラムかじった事ない人にいきなり三角関数必要とか言って作れると思う? 
 三角関数をなんだと思ってるんだよ 
 >>132   >プログラムかじった事ない人にいきなり三角関数必要とか言って作れると思う?   
 この文章だけで頭の悪さがよく分かる 
 自然言語でまともな文章書けないやつに 
 まともなプログラム書けるやつはいない 
  三角関数なしに2Dゲームを作ることはできる 
 >>135   ほうー 
 3D空間を数学の計算以外でどうやって動かすのかな? 
 キャラクター動かないゲームかな? 
  下らない話はそのぐらいにしておいたら? 
 Unityなんかに任せるとか? 
 テンプレ読んでください 
 C#でコルモゴロフスミノフ検定した上で、単回帰分析とかするライブラリってありますか? 
 byte[]として受け取ったmp3をファイル化せずにそのままmp3tagの読み書きを行えるライブラリはないでしょうか? 
 Streamクラスとして抽象化されてるんじゃないの? 
 ビットマップを編集するライブラリがFileStrem前提になってたら馬鹿設計だけど 
 まじで言ってる? 
 タグ部分と同じ構造体作って該当部分のバイト配列を構造体に変換すりゃ済むんじゃないの 
 TaglibSharpの.net Standard版をUWPから使っているが 
 >>149   それ、別にFileStreamを受け取ってStreamを吐く仕様で何も困らないのでは? 
  >>146 >>151 
 ありがとうございます。 
 IFileAbstractionを実装したクラスでCreateしていましたが、CloseStreamで内部のMemoryStreamをDisposeしてしまっていたため、挙動がおかしくなっていただけでした 
 TagLib.File.Save()を行うことで初めて内部のstreamにTag情報が書き込まれ、同時にCloseStreamも呼ばれるためそこでは内部のstreamを閉じずに自前の後処理を行ってから閉じることで希望の動作になりました 
  ヽ(・ω・)/ズコー 
 ライブラリを作ろうかと思うのですが 
 >>152   じゃあさあ。ネットワークから受け取った画像をファイルに保存せずに、そのまんまEXIF修正して別のサーバーに送り返す場合、どうするの?   
 と、使う方次第で色んな用件があるわけ。   
 実装コスト増えるならまだしも、今回のケースでは読み書きできてシークできるStreamであれば良さそうなのに、それをFileStreamに限定するの意味がわからない。 
  この動画の人がVisual StudioでやっているAuthenticatonをオンにする設定は、dotnetコマンドではどうやるのですか? 
 VIDEO   c#からpythonのmatplotlibを呼んでみたらグラフ描画に10秒くらいかかった・・・ 
 >>156   ありがとうございます。 
 難しく考えすぎてました。 
  >>160   その程度の何が障害なの? 
 ナメてるのか? 
  >>163   食ってかかるなよ    
>>160   ふーん。日記ならママにでも聞かせとけよ 
  自分で使う用のWinデスクトップアプリケーションを作ってみたいのですが 
 coreはサーバー用ではないよ 
 そして System.Drawing の移植性の無さで 
 WebBrowserでカスタムHeaderの送信とResponse Headerの取得ができません 
 >>166   ありがとうございます 
 Core入れてきます 
  >>169   そのレベルだと、VSCodeでxaml手書きはキツいんじゃない?素直にVisual Studio使いな 
  今ならBlazorが簡単で良いよ 
 C#使いたがる人ってWebに苦手意識がある人が多い印象だなあ 
 嫌ぁCAD+画像処理屋なので、webじゃ 
 今のprismはMSとは無関係な単なる野良ライブラリの一つだからダメ 
 skiasharp Microsoftの純正ライブラリー 
 流れ読まずに。  
 >>183   普通にアリ 
 メソッドから戻る直前にDisposeが実行される 
 なお、C#8以降では以下のように書けるため、従来のusingブロックはほとんどの場合必要なくなった 
 using var x = new Hoge("Arial", 10.0f); 
 x.Foo(); 
 // メソッドを抜けるときに自動的に x.Dispose が呼ばれる 
  >>183   returnが無いパスがあったら警告出るよ 
 警告が出ないということは必ずreturnが呼ばれている 
  >>181 ,179 
 ありがとう。DIコンテナにUnityを使ってて、App.xaml の RegisterTypes で RegisterSingleton で登録する共用クラスがあるんだけど、このコンストラクタに引数を渡したいです 
 UnityContainerの中で生成するタイミングがわからなくて渡し方がわかりません 
  >>184 ,185 
 ありがとうございますm(_ _)m 
 usingの中カッコの中で変数宣言してそれを返せて終われたらいいなと思ってたのでこの書き方でやってみます 
  >>187   コンフィグクラスかコンフィグ読み込みクラスを注入すればいいよ 
  >>189   ああそりゃそうか。DIコンテナがあるんだからインジェクションすればいいだけなんだねありがとう 
  作ったプログラムをUbuntuのバックグラウンドで動かし続けたいんだけどさあ 
 >>193   Docker使うのが簡単だしスキル的にも得るものが大きい 
  >184 
 頻出パターンだと思うんだけど、 
 React等の仮想DOMを使ったモダンなMVVM系Webフレームワークでは、コンポーネントとしてVMを階層化する。 
 >>200   ごめんなさい。モジュールでレジスタービューウィズリジョンじゃなくて、レジスターフォーナビゲーションを使って登録するとこのことです 
 公式サンプルのベーシックリジョンナビゲーションの書き方をみての質問です 
  JavaScriptによって書き換えられた後のhtmlを取得する方法ってWebBrowserでInvokeScriptなどを使用する以外にはないでしょうか? 
 WebBrowserクラスやヘッドレスブラウザを使うところまで行ってしまうとC#で作る利点が薄れてしまってChrome拡張で作るか、となってしまうんですよね・・・ 
 コントロールに適用したいStyleがあるので、Generic.xaml を作成して、 
 すみません。相談室が荒れてるのでこっちで質問させてくださいm(_ _)m 
 まじすか(´・ω・`) 
 >>210   で、質問はなんなんだい?答えてやらないが読むだけなら読んでやるぞい 
  >>213   順番が前後してごめんなさい 
 質問は
>>209 です 
  >>209   >Generic.xaml の中でコンバーターを定義することは出来ないのでしょうか   
 Generic.xamlの中では定義できないんじゃないかと思うなら 
 自分で違う任意のxamlを定義してApp.xamlでMergedDictionariesして 
 使えるかどうかで切り分けたらいいんじゃない? 
  >>215 ,216 
 そうかコンバーターって静的でもインスタンスが必要だからリソースとしては定義できないってことですかね…。同じことしてる人がいるもんですね。ありがとうございます。 
  マジカヨ 
   >>216   リンクの回答者は書き方こう変えればできるよって書いてるじゃん 
 MarkupExtensionを継承するのが一番楽 
 >>218   言葉足らずですみません 
 質問にも書いている通り、Generic.xaml の外側に書けば view でも App.xaml でも定義出来ることは確認してるんです。ただ generic.xaml  の中でしか必要ないのであれば、generic.xaml の中に書けないかというのが質問でした 
  >>218   > リンクの回答者は書き方こう変えればできるよって書いてるじゃん 
 いや、それがGeneric.xamlに書くのを諦めろんってことなんだが… 
  >>220   viewやApp.xamlで定義したんじゃ切り分けにならない 
 「見つからない」のがなぜか考えて切り分けしていかないと    
>>221   回答者が書いてるのはGeneric.xamlの一部 
  >>221 ,222 
 あーなるほど。すみませんいただいた回答の記述を読み違えました。これ参考にしてやってみます 
 MarkupExtension を継承するのはやったことないので、これも調べてやってみます。ありがとう 
  Generic.xamlが問題なのではなく、TemplateBindingだとダメ。 
 デザインパターン使う場合のクラス名とかってそのパターンに則ったクラス名付けた方がいいよね? 
 コードを見る人のレベルに合わせる 
 自学習がてら書いてます 
 >>226   MSは基本的にデザパタ用語を名前に含めない 
 あくまでMSの流儀なのでお前が従う筋合いはないが、少なくとも.NETではあまり好まれない傾向があるようだ 
  >>228   まずは細かいところに引っ掛からず自分の分かりやすい命名で学習を進めればいいよ。 
 慣れてきたら標準的ライブラリや参考書等を真似たりして自然に落ち着くとこに落ち着くと思う。 
  関数名を文字列で指定して実行する方法ってないですか? 
 >>232   うわぁ知らなかった 
 つーかググってくださいだろ 
  >>233   質問してるくせに上から目線の上にお礼も言えないやつはさっさと死んでください 
  >>235   すいません本当は感謝してます 
 それにしてもこのスレ、入門っていう割には 
 ifとかforの質問がなくて何か上級者ぶってる気がします 
 DOMとかMVVMとかそんな文法知らないんですけど 
  >>236   初心者と言ったってそれが指す範囲に幅があるし、初心者なんだから自分の知らないことが出てきて当たり前だろう。 
 いちいちつまらないケチを付けないと気がすまないタイプなのか? 
  Cにおけるerrno.h のようなものは無いですか? 
 ifやforで質問があるならすりゃいいじゃん 
 >>239   自分で定義すればいいのでは? 
 .NETにはたぶんそういった類のものは無いんじゃないかな 
  .NetFWももう4.8か 
 >>239   勘違いしてるみたいだが、プログラムの終了コードとerrno.hは無関係だぞ 
  初心者は馬鹿だから、勉強項目のレベルが分かってない! 
 文字列で指定した関数を実行したいということは数十年前から初心者にはありがちな願望だが 
 >>243   すまん、しばらく使ってないからうろ覚えなんだ 
 cstdlib.h 
 だっけか   
 とりあえず   
 return  0;   
 とか   
 Environment.exit(0);   
 とかせずに済む方法が知りたい。 
  >>245   コード書き換えは自己進化につながるからAIの人類侵攻を防ぐために止むを得なかったのだ。 
  >>247   つまりシステム標準の定数定義は無いということ? 
  >>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    >>250   エラー以外が 0 っていう定義は、C(Unix)でもそうだからわかるけど、その0を定義してる、 
 Cにおける stdlib.h の EXIT_SUCCESS のようなものは無いの? 
 あと、「@No_t-0パラメータ」ってなんでしょう? 
 ググったり、手元にあるオライリーの「プログラミングC#」の索引を調べてみましたが、それらしい情報が出てきません 
  >>251   >Cにおける stdlib.h の EXIT_SUCCESS のようなものは無いの? 
 ありません 
 何かエラーで意味ある情報出したいのなら定義済みの例外投げるのがいいんじゃないかな 
 それでも成功したときは情報出せないけど   
 >あと、「@No_t-0パラメータ」ってなんでしょう? 
 英語版見た感じ機械翻訳のミスっぽい  
https://docs.microsoft.com/en-us/dotnet/api/system.environment.exit?view=netframework-4.8    >>252   >>239   >コンソールアプリで、終了コードにマジックナンバー書きたくないのですが   
 という前提なので例外は問題の解決になりません   
 標準の定義が存在しないことが断定できれば、独自定義を持つ理由にできるのですが 
  なんか日本人的だなあw 
 UIアプリだと人がついてなきゃいけないから自動化できんのです 
 例外と終了コードの対応Dictionaryを作って 
 いや、コンソールアプリの終了コードだから、最初から最上層のはなししかしてないんです。 
 >>257   何を拘ってるのか理解できないな。 
 ソフトウェアの外部仕様として終了コードの値と意味を定義して、それをenumでソースに書けばいいだけでないの? 
  もともとの質問としては終了コードのシステム定義がないのかって話でしょ 
 ローカルコード定義するならenum使っても意味ないような 
 そもそもここでそれを聞いて 
 enumなりconstなりstatic readonlyなりで定義 
 >>264   >>261     >>267   数値の意味と、それがどこで定義されているかは別の問題では?   
 標準で定義されていれば、例え規格が変わっても、対応した処理系でコンパイルしなおせば同じコードがそのまま使えるけれど、ローカルで定義していたらそうはいかない 
  >>268   そもそもerrno.hが終了コードを表しているというのが勘違いだぞ。あれはシステムコールや標準ライブラリ関数の戻り値の定義であって、あくまでもCのコードの中の話だ。 
  >>268   何の規格の話?お前のシステムの規格が変わったのなら、なおさら独自のenum等で定義しておかなきゃバグるやろ 
  そこまで言うからには 
 初心者のつまらん質問で申し訳ありません 
 すでにコードがあるならコピペするだけじゃね? 
 >>269   誤りがあったので訂正。 
 戻り値そのものでなく、戻り値がエラーを示した場合に参照するerrnoの値(エラー番号)だな。 
  >>272   APIをラップしたクラスを作ることをお勧めする   
 自分でFormから作ってもいいけど文字列に合わせてウィンドウサイズを調整したり 
 パラメータに合わせてアイコンとかボタンを作ったりする方が面倒だと思うよ 
  >>272   そんなの気にしてたの最初の頃だけだったな〜 
 自前でフォーム作ってもアイコンとかほぼ互換にするには手間かかる 
 APIでも大して変わらんのでは   
 他でも使い回すなら手間かかるかではなく、使い勝手がいいように組める方優先 
  おそらくエラー定義に拘ってる人は 
 そういう話だったのになぜか途中からどこで定義するのか問題にすり替えた 
 >>272   WH_CBTをグローバルフックして表示位置を変更だな 
  >>272   自分なら自作するというかしてました。 
 標準のMessageBoxは使い辛いところが多いので。   
 (1) モーダルじゃない表示も可能 
 (2) カウントダウンして自動的に消える 
 (3) 背景だけ半透明表示可能   
 ついでにこんな機能付きのを作ったらどうでしょうか。 
  >>284   だから、処理系で定義されてるのとローカルで定義されてるのじゃ根本的に違うよ 
 ローカルで定義してて変更したらソースコードのリビジョンが変わる 
 処理系の変更だけならビルド番号が変わるだけ 
  わかった、話をまとめよう 
 >>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"と書くなら最低ゼロくらいは定義しといてくれというのはわからんでもない 
  >>291   別に定義しなくてもいいからcanなんでしょ 
  コンソールはスレッドセーフなのため? 
 処理系で想像してる粒度が違う気がするけど 
 お前らC#でWebサーバー建てたことありますか? 
 任意に呼び出せる100個程度の文字列定数を作りたい時って地道に宣言するしかないよね? 
 enumは使えないしDictionaryはヌルポこわいし    
>>298   IISとかではなくて? 
 >>301   地道に宣言するにしても、Dictionaryに地道に値を入れていく以外に簡単に生成できる方法がある 
 (テキストから読み込むとか、keyとvalueが同一でよい)のなら、一旦Dictionaryを作って 
 そこからC#のコードを文字列処理で生成してソースコードにコピペとかすると楽だよ。 
 C#コードの生成はもちろんC#以外の言語でもなんでもいいから慣れてる言語でやればいいし。 
  >>301   日本語の意味が取れないからどういうのを想定してるか具体例を書いてくれ 
  constでコンパイル時に解決したいというのでなければリソースファイルを使う 
 どうせ戻り値は、4バイト整数だろ 
 処理系が正確に何指してるか不明ではあるが.NETのバージョンとかコンパイラのバージョンだったとして… 
 htmlファイルをディスク上に作らずに、こちらのプログラム上で仮想生成したhtmlをWindows規定のブラウザで開かせる方法ってないでしょうか? 
 すみません、解決しました 
 おまいら printf の戻り値はちゃんと毎回確認するんだぞ判ったか 
 Excelによる計算をマスターとした場合、 
 >>312   decimalは誤差がないが… 
 とりあえずそれはExcelの計算方法の再現であってC#の話題とは別 
  そもそものそのエクセルの計算が税法上問題なかったり物理学上の誤差などを 
 内部でexcel操作するライブラリを使って実際にexcelに計算させてその結果をもらう 
 >>316   ExcelライブラリやEEPlusが使えれば良かったのですが、今回はライセンスの関係もあってExcelが無いPCで動作させる必要があるので、Excelを裏で動かす様なことは出来ないのです。    
>>317   15桁処理なので、やるとしたら計算毎に桁数をカウントするとかになりそうですかね・・・。 
 C#で普通に計算した方が精度も出るので、すっごく無駄なことをやることになりますね。 
  一体どんなアホが集まればそんなふざけた案件が出来上がるんだ… 
 >>318   EPPlusやClosedXMLなら、Excelがマシンにインストールされている必要はないやろ 
  これはC#じゃなくて、CやC++に言えることかもしれませんが、 
 >>315   8086の時代じゃあるまいし、30年前だって実数計算なんかHW処理だよw 
 つまり、CPUさえ同一なら(変なことをやってないかぎり)VBだろうがExcelだろうがC#だろうが計算結果は同じになるはず。   
 現に
>>315 の計算C#でやっても同じ答えが出るよ 
  今どき400MBぐらい物理メモリにのっけてもそこまでって感じだけど 
 >>321   10000000/1024/1024=95.36 
 95.36*4=381MB 
 まぁ今のPCスペックじゃ余裕じゃね。   
 ある時、テンプレートで消費されるメモリの方が格納データより多くなる 
 どこに限界があるか自分で計ってみなされ 
  >>322   C++でアプリ作ったときは浮動小数点制御ワードの設定次第で、演算の精度や丸め方向が変わって演算結果に差異が出たけど、C#やexcelではどうなんだろう? 同じ条件で決めうちなのかな? 
  google spreadsheet とか ms office online とか 360 でも再現されるのかな 
 非同期メソッド(async/await)の必要性について教えてください。 
 弊社は庶務おばちゃんのPCですら64bitでメモリ8GB 
 >>331   どこから誤爆したのか知らんが10年前の話でもしてたのか? 
  本当はここの話題じゃないのかも知れないけどさあ 
 >>328   async/await で書くと、深いネストのコールバック地獄を避けられるw 
  >>334   むしろasync/await地獄の始まりなんじゃ 
  コールバック地獄のネストがasync/awaitで解消されるわけじゃないんだがな。 
 コールバック引数に関数リテラルを書いてるからネストが深くなるわけで、それが嫌なら 
 まあ逐一処理みたいに並べて書けるから便利だよね。 
 いや、こうか。  
 目次見る限りasync/awaitまで書いてあるようだが内容古いかな? 
   C#による マルチコアのための非同期/並列処理プログラミング  
http://gihyo.jp/book/2013/978-4-7741-5828-0   C#で明示的にメモリを開放する手段はGC.Collect以外にはないんでしょうか? 
 >>344   その場合どれがコールバック?   
 c#ならラムダを使えばjsのコールバック地獄と同じような地獄を味わえるが、async/awaitは関係ないな。 
  async/awaitの件解決しました。 
 >>347    それ、非同期ラムダならawaitで待つけど普通のラムダなら普通に呼ぶだけだろう。 
 こうか  
 いや、これだとasync, await使ってるから本末転倒やな 
 >>346   > GC.Collectを行うと副作用も色々とある 
 あくまで一般的な方針ってだけなので別に自分のアプリで問題(望ましくない時にスパイクを起こすとか)無ければ好きに呼べば良いよ 
 別にイリーガルなAPIというわけでもない 
 まあ一般的な話で言えば「メモリ残っててなんか気持ち悪い」程度の理由で呼ぶ必要はまったくないが 
  >>350 のコールバックが非同期で呼び出されるってことだろうから普通に並べて呼ぶだけじゃ無理じゃね 
  >>354   たしかに基本的には問題になりませんが、 
 数GBを消費することもあり、もしそのときに使用者が他に重いプログラムを起動するなどするとメモリ不足になる場合もあるかなと・・・ 
 こういうプログラムはGC任せにするのではなくC++などで作るべきという結論になるんでしょうか? 
  >>346   IDisposableなオブジェクトがあれば不要になった時点できちんとDispose()するようにするとかかな。 
 画像を扱っているんであればSystem.Drawing.Imageとかいろいろあるんでは。 
  主にはMemoryStreamで巨大データを扱っていてちゃんとDisposeは行っていますが、タスクマネージャーで監視している限りだと中々メモリ使用量が減りません 
 >>356   その消費されているメモリがどのメモリなのかきちんと把握しないと意味がないよ   
 マネージドメモリが消費されればそれだけ手動でCollectせずともGCは働くはず 
 なのに残っているとしたらstatic変数等で無駄に参照し続けている可能性がある   
 アンマネージドなメモリなら既に書かれてる通りDisposeを必要な場面で呼び出していない可能性がある 
 加えてGC性能の観点からはDispose(正確にはファイナライザの方だけど)をGC任せにするのは 
 程度問題ではあるけど基本的にはご法度   
 現状「メモリが大量に消費されているが手動でCollectして大丈夫か」の情報だけでは現状方針は立てようがない 
  >>361   一応上でも書きましたがメモリリークの相談ではありません 
  >>362   タスクマネージャ眺めてるだけじゃ開発者が手続きを間違えいてるのか 
 .NETのGCがクソなのかも判断できないという話だよ   
 CLRProfilerなり使ってもうちょっと詳細詰めてみたら? 
  >>363   言葉足らずでしたが、Dispose処理を行ったであろうタイミングで減らないというだけであって待つなりそこでCG.Collectを行えばちゃんと解放はされます 
 ただ上でも言ったようにGC.Collectは副作用があるようなのでC++のdeleteのようなものは無いのかなと 
  GCって動かしてやらないと限界まで解放しないよ 
 >>364   まあ生存しているマネージドメモリの正体がわかり切っていて処理の途中でも無いなら 
 (例えば単純にユーザー操作からファイルの読み込みが完了して結果が表示された後とか) 
 それはCollect使っても構わない場面だと思うよ   
 結局副作用と言ってもヒューリスティックなGCの調整に影響が出て 
 細かくGCが起きる場面でのスループットが低下する、かもしれない 
 とかその程度だしね 
  サーバーじゃなくてクライアントアプリだろ? 
 >>365   なるべくストップザ・ワールドしないようにGCは改良されてきたけど、 
 .NET Framework 4.8でも10分かかったりする? 
  >>368   俺がやったのは4.5ぐらい 
 でもこの辺の挙動って変わるかな? 
  >>364   大きなメモリブロックを頻繁に扱うならアンマネージドメモリを使いなよ 
 アンマネージドメモリなら開放したいときに無駄なく開放できる 
 今はspanがあるからアンマネージドメモリの扱いも簡単だ 
 GCの手動実行は開放したいメモリ以外にもマークアンドスイープが発生しちゃうから効率が悪い 
 ちなみにMemoryStream.Disposeはインターフェース共通化のために実装してあるだけで呼び出す意味はない 
  GCが分単位でかかる状況ってそもそも作り出せるもの? 
 ストップザワールドてw 
 時間経過だけを条件にフルGCがされることってあるのかな? 
 MSDNより 
 csvファイルを取り込むため下のようなプログラムを作ったのですが 
 nugetでcsvhelper 
 ダブルクオートの数は論理行内で偶数に 
 Ruby なら、CSV モジュールを使うだけ 
 >>384   クォート文字有り無しが混在している時点でCSVじゃねえってことか 
  元々のCSVはSuperCalc の形式(オズボーン1にバンドルされていた) 
 CSVという欠陥品はやめてJSONを使おう 
 丁度いいから聞きたいんだけどjsonのnugetってどれがいいんだ? 
 csvhelperなるものがあるのですね 
 >>388   いいの定義次第ではあるが 
 .NET Core 3.0以降はSystem.Text.Jsonが標準ライブラリに組み込まれた 
 .NET Frameworkだと4.6.1以降で使える 
  >>385   クォート文字の有り無しは、混在できる   
 CSVでは、要素内に、列区切り文字(カンマ)・行区切り文字(改行)・クォート文字(ダブルクォーテーション)がある場合は、  
 その要素をクォート文字(ダブルクォーテーション)で囲まなければならない    
 ただし要素内に、クォート文字がある場合は、クォート文字を2つにしてから、  
 その要素をクォート文字で囲まなければならない    
 でも要素内に、それらの特殊文字が無いなら、クォート文字で囲まなくてもよい 
  それCSVっていうよりBASIC系のエスケープっぽいねw 
 >>393   もともとちゃんとした仕様が決まってないままに様々な方言が普及しちゃった後に、後付けでrfc4180が定義されたらしい。 
  >>394   斜め読みした感じ、それって定義じゃないのでは? 
 むしろ定義なんかないってはっきり言ってない? 
 定義はないけど多くの実装の最大公約数的な仕様はこうだって書いてあるだけじゃないの? 
  けっこう色々な種類のcsvファイル触ってきたけどこの定義から外れたもの見たことないから 
 >>394   そもそもこれstandards trackじゃないし。informationalやん 
  よく見ると冒頭にちゃんと 
 Ruby のCSV も、RFC4180 
 ルビーはどうでもいいけどRFC4180が標準だわな 
 今のご時世で新規開発のデータ出力にcsv採用はセンス無いですか? 
 出力した後の運用によるだろ 
 >>402   例えば時系列の数値データとかだと今でもCSVが最適解のケースが多いと思う 
 構造が必要なデータとかでないとXMLやjsonはちょっと冗長 
 まあC#ならライブラリも充実してるからぶっちゃけどうとでもなるけど 
  表みたいに、行・列だけの、ネストしない単純な構造物は、CSV がベスト! 
 Pandsみたいな優秀なライブラリ誰か作って、オレオレクラス定義すんの面倒になってきた 
 CSVを使う動機は他のプログラムにデータを渡すことでしょ。 
 >>405   否   
 構造がネストしてたってCSVに入れなければならないときがある 
 そもそもネストしたぐらいでリストにできないんじゃデータベースにどうやって入れるんだ? 
 parentid持ってりゃネストしてたって再構築できるだろ 
  まあ、いつものRuby君だからな。 
 >>407   むしろ
>>405 の言う表みたいなやつでCSV以外を選択する理由がないと思うが 
  >>408   > parentid持ってりゃネストしてたって再構築できるだろ 
 それデータとして構造持ってるわけじゃないだろ 
 リスト構造が作れるからメモリーは構造持ってると言うようなもんだし 
  CSVは項目の増減があるとウザいんだよな 
 CSVは方言があるから、きちっと規則が決まっているフォーマットのほうがあらゆる場所で使いやすい 
 >>413   > CSVは文化的に周辺のツールやDBのコマンドなどのエコシステムが全体的にスキーマは不変であるという前提で設計されてて、変更に弱い傾向がある気がするわ 
 それCSVの問題じゃないだろ… 
 そもそも文化的にとかイミフだし 
  >>416   仕事してるなら感覚的に伝わると思ったけど、具体的に言おうか? 
 CSVはヘッダが必須ではないから、CSVを扱うソフトウェアやシステムはヘッダに依存せずに設定として列の項目名を持つようになっているケースがよくある。 
 だから列の増減や差し替えがあったりするとたとえ直接関係のない列の変更であっても各所に散財する設定を変更して回らなければならなくなることが多い。 
  だからそれってアプリの設計の問題だろ 
 まあCSVがデータ交換の第一候補とされる時代で、動的なスキーマ扱うのは大変だったからな 
 カンマが入ってる場合はcsvじゃなくtsv(タブ区切り)がベストだと思う 
 ASP.Net CoreでWebページを作れるようになりたくて勉強中なんだけどさ 
 今時のWebサイトのSSL証明書はAWSのロードバランサでポチるもんだ 
 おお、運用する時はこれが良いな 
 >>420   むしろ csv より tsv の方がいろいろな点で優秀なのに、どうして tsv がはやらなかったのか? 
  エディタ次第で見た目が変わるからと 
 csvよりtsvが優秀な点って何? 
 TABをデータの一部として含む必要のない用途って圧倒的に多いと思う。 
 えっcsvってcomma-separated-valuesの略だと思ってた 
 そういえばTSV使えばクリップボード経由でスプレッドシートに矩形のデータの貼り付けが出来たねw 
 >>413   ヘッダー行無しで、列名を使わずに、 
 数字インデックスで、各列にアクセスするのは、ナンセンスw   
 各列の順序に、依存してはならない! 
 列名でアクセスすべき! 
  >>429   別にどっちが正しいとか無いよ 
 個人的にはカンマの意味で使うことのほうが多いしRFCでもカンマだし   
 csvよりtsvのほうがいろいろ優秀とかいうほんまか?みたいな説があったから気になった 
 改行以外の制御文字は非エンジニアには理解しづらいし表示は環境依存になること多いし別にどっちが優秀とか全く思わん 
  chimpo-separated-values 
 >>431   SQLコマンドによるCSVのバルクロードすらやったことがない素人ルビカスは巣に帰れ 
  JSON Linesってヘッダー名が無駄だよね。 
 >>426   大抵の場合カンマもダブルクォートも気にしなくてよくなる分有利だと思う 
 データ内にtabが必要なデータって出会ったことある?   
 完全に自分で決めていい場合なんかはまずデータで発生しない垂直タブとかにすることもある   
 あとbcpはいい加減囲み文字に対応してくれ・・・ 
  >>435   正しいかどうかはケースバイケース 
 まともでないヘッダーついてるデータを読み込めとかあったりするし 
  ASP.Net coreを学習してて思ったんだけど、cshtmlファイルって簡単にプレビューすることってできないの? 
 >>439   プレビューは無理だが、実行中に変更して保存すれば自動的に反映される 
 今時のWeb開発はReactのようなブラウザ側でテンプレートをレンダリングするフレームワークを使うのが主流だから、 
 いわゆるライブプレビュー問題はそもそも関心の対象から外れつつある 
  >>440   ありがとう、簡単に反映されて見やすくなったよ!!! 
 しかも学習が進む前に主流がここにないこともわかって助かったぜ!!! 
 わからない点もあるけど、RazorやMVCを勉強するより、WebAPI+Reactのセットを勉強すれば良いのかな 
  System.Drawing.Imageで、ビットマップを読み込んでそこで色々加工した後 
 >>443   ありがとうござます!あとで試してみます! 
  一度作ったプロジェクトに、後からテンプレートのオプション相当の機能を追加するのってどうやるの? 
 https://docs.microsoft.com/ja-jp/aspnet/core/security/authentication/identity?view=aspnetcore-3.1& ;tabs=netcore-cli 
 上の方のチュートリアルからやってきた流れで作ったものに認証を追加しようとしたら、どう言う作業になるのか全然わかんないぜ 
 プロジェクトを作る時は予めオプション全部盛りにしといた方が無難なのかな? 
 >>429   拡張子 .tsv は認識しないけど、Unicode や UTF-8 とかのタブ区切りテキストの拡張子が .csv の場合はちゃんとExcelで開けるよ。ボムで判定してるぽいから使いどころがアレだけど 
  kingなんとかっていう中華パチモンのexcelモドキがあるが 
 >>424   テキストエディタで見た時に壊滅的だからじゃね? 
  >>449   それは逆だと思うよw 
 メモ帳かワードパッドでタブ区切りで何か書いてみたら分かると思うけど 
  >>451   ケースバイケースと言うかデータによると思う 
 個人的にはタブは2個続いてる時に見落としがちなのが痛い 
  カンマでもスペースで桁合わせしないとよくわからん。 
 仮に8タブで揃えてもどうせデータに8文字以上あったらずれるしな 
 30年前のエディタで考えろよw 
 30年前だと、WordMasterから 
 なんか話が通じてない気が 
 メモ帳最強だな 
 メモ帳とか関係ない 
 >>461   文脈読めないとアスペルガーって言われるよw   
 CSVの方が普及したのに深い理由があるとは思えないけど、 
 あえて言えばデータをエクスポートするコードを書くプログラマの立場になれば、 
 CSVの方が吐き出されたデータが意図した通りになってるか目視でチェックしやすいのはあるかもね。   
 スプレッドシートで見た時マトリックス状になってないデータだと 
 ,,,1, 2, 3,,,, 
 行のデータがこんな風になるけど、こういうのTSVだと検証しづらいよね。 
  1-2-3とか桐から吐き出せたのがcsvだからとかその程度の理由じゃないの?知らんけど 
 そもそも大昔にtsvなんてあったか? 
 昨日のWindowsUpdateから.Net製アプリだけ起動が遅くなった(普段はすぐ起動していたものが1秒弱かかる)気がするんですが自分だけでしょうか? 
 大昔がいつかわからないけど、Excelは2000の時にはtsv対応してた 
 いつも思ってるんだけど 
 皆さん営業に対して切れそうになったことってありますか? 
 >>468   じゃお前は営業できるの? 
 やったとして、お前が今書いたようなことをPGやSEから言われない自信はあるの? 
  どう考えてもプログラマって人生削って仕事してますよね? 
 仕事の半分ぐらいCPU戦でいい人が、四六時中対人戦やってる人に文句言っちゃいけんよ 
 >>468   自分が知ってる一部の人間だけを取り上げて、同じ属性の人間がすべて同様であるかのような主張はやめな。 
 俺は営業でなくSEだが、見てて気持ち悪い。 
  >>470   そもそも営業といっても技術営業というのもあり、そちらは尊敬してます 
 僕が言うのは一般的な営業です 
 また飲食店とかそういう華やかな社会での営業なら、美人やイケメンが適当に 
 営業しても良いと思いますが、技術職ですからね 
 冴えないおっさんや、仏頂面の爺が営業してるじゃないですか? 
 能力もないくせに、 PGもできないくせに、何であんなに偉そうなんですか?   
 ここにいる人は、凄い技術をもった集団だと思います。 
 だけど営業だけは本当にゴミ以下なんじゃないかって思うんですよ。 
 努力することもなくSE,PGが開発した商品で飯をくってる奴らだと思いません? 
  >>473   最近は技術職の人がそのまま営業したほうがいいんじゃないかって言われてませんか? 
 皆さんが営業したほうが遥かに良いと思います。僕ですらしたことあるんですから。 
 そもそも技術職の人同士が直接対話したほうが、手間が省けますよね? 
 例えば、滅茶苦茶美人や、華があるイケメンが、技術を超えたところで会社の関係を良好に 
 する潤滑油のような存在であるなら別です、これに関しては僕は例外として認めます。 
 だけどですね、冴えないクソムカツク顔した偉そうなおっさんが、何のスキルもないくせに 
 ただその会社に行って名刺を渡して、外で飲んだりする。こういうのってよくあると思いますけど 
 むかつかないですか?こいつら会社にいるの?って思いません? 
 だってどう考えても、現場の人が死にそうになりながら恋人も出来ず、休日も納期に追われてなんて 
 僕はもう見ていて辛すぎるんですよ。仲間で鬱になった人が何人もいます。全員技術職です。 
 営業はいません。いたとしても技術営業の人です。 
  >>475   担当役員とあうために、派閥構成調べたり、その裏取りしたり 
 なんならアポイント調整してもらうために、部下の接待したりするんだけど 
 君できる? 
 で、当然会っただけじゃ話進まないから、会うまでにプレゼンの構成考えて、それに合致する統計情報集めて 
 何なら役員の他のプロジェクトの様子調べて、そのプレゼンに盛り込んだりするんだけど? 
  >>476   お前に恋人ができないのは、仕事のせいでもその営業のせいでもないぞ。 
  >>478   システム開発に営業なんて必要ない 
 技術者同士の対話でいい、何故納得しないんですか? 
  >>477   そもそもシステム開発部署には派閥なんてない 
 営業の派閥とか気持ち悪すぎ、どんだけいるんだよ不必要なのにw 
  営業に逆らったらクビになるから 
 頑張って相手にしてる人もいるけど、アフィブログに転載するための種まきじゃねえの? 
 >>479   自分の身近な不満を感情のままにぶちまけてるだけで、他人を納得させるような論理的、合理的な説明を一切していないのに、なんで納得させられると思ってるの? 
  >>480   あるものを無いとか言っちゃう?理解できないものは、見ないタイプ? 
 そんなやつに売れるシステムなんてねーよ。 
  そんな単純な話じゃ金が動かない 
 >>475   ここにいる人達がすごい技術を持った集団だなんて本気で思ってるのか? 
 もしそうだとしたら世間を知らなすぎというか技術者に過剰な夢をみているか、自分を含めた技術者というものを特別視し過ぎだ。 
 もしくは、自分の主張を受けいれてもらおうと、不必要に相手を持ち上げているのではないか? それが意図したものかそうでないか知らないが、もし無意識に癖でやってるなら改めた方がいいぞ。 
  >>488   常に技術力を磨いてる技術者と、休日もコネや接待のことしか考えてない 
 営業はどっちが頭良いと思うんですか? 
 営業は、確かにちょっとしたテクニックで相手に好かれたりするこつとか 
 そういうのは得意かもしれません。小手先のテクニックを磨いて、そこに 
 論理なんて全くないんですよ。流されやすい人間の心理なんかを心得てるにすぎないんですよ。 
 論理的に考えている水準が全然違う。例えば簡単なC言語のプログラムだって、大学1年 
 の時は全く手に負えないわけじゃないですか?そんなこともできないの?ってのが 
 生涯続いて取り返しがなくなってるのが営業の人達だと思うんですね。 
  >>486   だから悪しき営業文化があるだけじゃないですか? 
 規模の大きい企業だと営業を通すしかないですからね。 
 あの部署のあの技術者さんと直接対話したい!あの人となら 
 良い付き合いができそうだ 
 ってそういう試みをしてる人がいてもコンプライアンスで禁止されるから 
 できないだけじゃないですか 
  誰も賛同してくれなくて違和感を感じる 
 副作用の削除や参照透過性を何処まで突き詰めるのかにいつも悩む 
 >>497   最低限副作用があるかないか分かるような書き方をしたい 
  >>500   これはフィールドに依存、これは静的関数みたいな別けは何基準でしてる? 
 少なくとも自分の中での基準は明確にしておきたいんだけど全然わからん 
 使い方次第だろうけどあとからコロコロ変わるのよね…… 
  プロパティにフィールドのラッパー以上の仕事をさせない 
 バッキングフィールドに値を代入するのだって処理ですよw 
 System.Text.Jsonでdictionaryやsortedlistのkeyがint時のエラーって直ったんじゃないの? また復活したの? 
 > 
https://github.com/dotnet/corefx/issues/40120   違うよw 
 先輩方、Blittableな構造体の実装だけを動的に付け替える方法って何か無いもんですか? 
 内容により 
 Blit = 転送する 
 >>507   Blittableに自身を引数に取るdelegeteをIntPtrで持てばええんじゃね 
  >>513   あざっす大先輩 
 Cと同じように関数ポインタを使えというのは素晴らしいアイデアなのですが、C#での具体的なやり方が分からんのです 
 なのでそこのところ詳しくご教示頂けるとありがたいです 
  その構造体をrefで渡す必要がないなら構造体をクラスでラップすればいいだけでは?  
 実際に処理が分岐してんのに分岐してないようにみせるのって何がいいんだ? 
 >>518   まあ、誰しも最初からわかってるわけではないので、言ってることがわからんでもない 
 LINQわかりにくいからループ回せやみたいなもんかな?   
 〉実際に処理が分岐してんのに分岐してないようにみせるのって何がいいんだ? 
 まずその捉え方が間違い 
 actionのメリットをググれば残りの疑問も解消する 
  >>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そのままで持てば良いけど 
  >>520   ねーよ 
 だって俺が他人のソースを読むときに一番嫌なのは見えにくい動作だもの 
 ここが隠れてわかりにくい時点でその組み方に何の魅力も感じない 
 たくさん処理が分岐してるのであればそれを明示的に記述したい 
 思いっきりswitch caseで書きたい 
 ソースにhtmlのようなフォント設定機能があったら太字にしてサイズは72ぐらいで表示したい 
  >>523   小学校からの通知や町内の回覧板に漢字が使われていたら、「俺は漢字は読めねーんだ!覚える気もしねぇ。俺が読めるようにひらがなだけ使え!」って言ってるようなもんだな。 
 難読漢字を多用してるならともかく、常用漢字も読めないならお前が勉強しろよ。 
  >>523   〉だって俺が他人のソースを読むときに一番嫌なのは見えにくい動作だもの 
 誰だってそれは同じ   
 〉ここが隠れてわかりにくい時点でその組み方に何の魅力も感じない 
 それは、共通処理が隠れてわからないから全部インライン展開しろやと言ってるのと同じで、バカの理論。 
 引数にactionがある時点で、呼び出し元で処理を指定するのが判断できる 
 そういう共通処理なんだなとわかる 
 使い方もわかる 
 わかりにくいところはない 
 この程度のことをわかりにくいと思うなら、相当センス無いよ   
 〉思いっきりswitch caseで書きたい 
 actionを知らなくて(使い方に慣れてない。メリットを理解できてない)そういう人も多いからどちらでもどうぞ 
 action書けるとこは全部書けとも思ってない。メリット大なとこだけ書く(書き直させる)だけでも可と思ってるので 
  >>525   判断できる、じゃねーよアホか 
 明示的に書くと何でダメなんだ? 
 明らかに判断しなくちゃいけない手間が入ってるじゃん 
 そしてそこにメリットがない 
  俺の価値観はさっきレスした通り 
 言わんとすることはわかるけど 
 何だ、センス以前に真正バカだったか。 
 しかもクラス100個が国産牛の脂肪ように間に入ってる 
 老害staticおじさんの思考回路だな 
 明示的に書いてあるほうがいいってのは数が少ない場合に限る 
 >>525   > 誰だってそれは同じ 
 同じじゃないだろ 
 必要ないものは見たくないのが普通だと思うぞ… 
  コンパイラやバイトコードのツール類は巨大なsweichがドカーンと鎮座してるけど 
 >>538   必要ないものを書くんじゃねーよ 
 削除しとけ真正バカ2号 
  >>537   多いときほどswitchは悪い 
 数多の案件で膨大なswitchが開発者を苦しめた実績がある 
  >>540   匿名掲示板で人に指図とかバカすぎるわ 
 そもそもどうやって削除するんだよw 
 できるならお前のアホレスから削除しとけ 
  相談室ってまだあったのか 
 enumに実装が書けないのでと言う話も書いておこう 
 >>465   「tsv」という呼称では呼ばれていなかったがタブ区切りデータは普通にあった 
 個人的にはアセンブラとか機械語だけで書かれてるプログラムが使ってることが多かった印象   
 他には「:」区切りや「;」区切りも割と良く見かけた 
  >>484   感情はあくまで感情だから合理的に納得させる必要は無いでしょう 
  >>482   逆らっても首になるとは限らない 
 もしその程度で首になるような会社なら辞めた方が良い 
 営業に対しては言いたいことを言った方が良い 
  昔はレコードデリミタ/フィールドデリミタといってプログラムごとに適当に決めてたな。 
 ascii コードの30 = rs/31 = us 
 単一のページ内で、Blazor ServerとBlazor Webassemblyを混ぜて使うことってできないのですか? 
 >>557   普通にサーバーサイドはREST API書けや 
 Blazorに固執する意味がわからない 
  >>558   ちゃんとできる人ならそれもいいかもしれませんが、私のレベルで手を出すのは危険なのです 
  意味がわからん 
 あなたは優秀なのかもしれませんが、私はマイクロソフトの技術者の足元にも及ばないので勘弁してください 
 お百姓さんにはかなわないけどね 
 Blazorは表面的には簡単に見えても 
 blazor clientはシンプルなアーキテクチャでいいね 
 開発側の利点で顧客が金を出してくれることはほぼないから無理 
 まあWPFみたいにすぐに負債になるのがわかりきってるし、 
 MSがこういうものを金をかけて開発してるのが納得いかない 
 Blazorは意外と業務系で普及するんじゃねえかと思ってる 
 WebAssemblyの実用化楽しみ 
 WebAssemblyを基盤にしているからSilverlightみたく捨てられることは無いとは思うけどね 
 js不得手マンだけどjs周りをもっと使いやすくしてくれればそれでいいのよ 
 blazorアイデアはいいんだけどいかんせんバイナリサイズがでかいのがどうにかしてほしい(サーバーサイドの方にはあまり将来性がないように見えるので) 
 >>572   HTML/CSSはどのみち必須なんだから、クラシックなMVCアプリならほとんど変わらんよ 
 Blazorの意義はJSをゴリゴリ書かなくてもSPAを作れることにあるわけだけど、業務系でそんなもん要求されない 
  業務系は巨大で複雑なUIが多いからSPAのほうがうまくハマる 
 それを資料に纏めて、金持っている 
 BlazorはいいんだがRazorはどうにかして欲しいねぇ。WPFとか使えるようになればいいが。 
 swtich分って必要なんですか? 
 必要な引数も違うのにどうやって分岐無しで呼び出すの? 
 1=りんご 
 >>583   引数がそれぞれ0,4,7,17,5とか変わったらどうやって呼び出すの? 
  >>583   それがクラス定義だった糞プログラムのメンテ担当したことあるけど、正直殺意沸くレベルだった 
  文字列やバイナリを処理する辺りでswitchが出てくるのは仕方ないにしても、それ以外でswitch文が出てきたらほぼ設計ミスだろうな 
 ごめん、入力を受け付けるようなものは使ってもミスでも何でもないな 
 >>583   それでいいと思うなら、もうそれでいいよ。 
 switchが役立つと思う場面に出会ったことがないなら無理に使わなくていい。 
 普通にプログラミングの学習をしたり実際に何か作り始めれば、そう遠くないうちに役に立つと思える場面に出会うはず。 
  重複したswitchや長大なswitchが悪いのであってswitch全てが悪いわけではない 
 >>583   使い道がないのはお前の存在も同じだから 
 中央線にでも飛び込んで死ね 
  プログラミングに限らずどのフィールドでもそうだけど、 
 >>583   条件文をマッピングテーブルで置き換えるという古典的なリファクタリング方法の一つ 
 どちらかが常に優れてるわけではなく状況に応じて選択するもの   
 C#のバージョンや分岐の数によっては 
 コンパイラがswitch文をdictionaryのlookupに変換してる 
  >>593   それ今は迷信 
 Roslyn移行後のC#コンパイラはswitchのcase数が多い場合はハッシュに基いた二分探索のようなコードが生成される 
  >>578   同感 
 業務系アプリをブラウザで動かしたいっていう潜在要求は多いと思う 
  >>594   Roslynから変わったのは文字列で分岐される場合のみの話   
 文字列比較でhash tableをlookupするんじゃなく 
 数値比較で事前にハッシュしたsort済みarrayをlookupするようになってる 
 細かい部分を抜きにすると数値をキーにしたSortedDictionaryのlookupと同じ 
 でこういうのは今の
>>583 には不必要な知識 
  流れよく分かんないんだけど  
 ケースバイケース 
 単純な配列はいつでも最速だと思ってたが違うのか? 
 配列はちゃんと理解してないと境界値チェックが入って意外に遅くなることがあるよ 
 >>597   仮に配列使う方が効率的だとしてもenumの値に依存するような実装は論外でしょうw 
 やってはいけない、の見本みたいなもの 
  俺もCから入ったから配列にして呼び出す処理は昔はよく書いた 
 >>597   delegateの配列で試してみたが 
 switchのほうが2~5倍くらい速かった 
 最適化できる度合いの違いかな 
  過去に散々既出だと思うけどdelegate自体がもともと重いんだろうね。 
 >>605   デリゲートでなくインターフェースを使っても
>>604 と同じ結果なのが謎だった 
  enumの実装が書けたら違うことになってるかもな 
 >>585   内部的なロジックミスにならんようにすればいいだけ 
 プログラムが長大になる原因はテキストを利用しないからだと思いますよ 
 1万行のプログラムが果たしてそれだけ必要なのか?って思います 
  >>589   俺も思いますね 
 というか文法的な事でももっと改善してよって事多いですよね!   
 0<input<&&input<5→うぜー 
 0<input<5→これでいいだろうが 
  >>609   範囲チェックの改善なんて散々議論されてるし今も要望で上がってる 
 気になるなら見てくればいいよ 
 なぜ未だに入っていないかとかもちゃんと説明されてる 
  >>609   もうID変わってるだろうけど
>>589 なのだが、皮肉のつもりで言ったのが通じてないようだ。 
 switchの用途として
>>583 みたいなのでいいのではなんて言うのは圧倒的に経験が少ない証拠だろう。ちょっと慣れて自分でコードを書けるようになればそんなバカな発想はしなくなるよ。 
 そんな段階で
>>609 みたいな文法にケチつける前に、なんでその文法が必要なのか、何でそういう形式になってるのか理解する努力をしなよ。 
 C#のような後発の言語が生まれる過程では、君みたいな初心者が考えるようなことはとっくの昔に議論済みでそれらを踏まえた上で今の形がある。疑問を持つのは多いに結構だけど、往々にして言語の仕様が悪いのではなく、単に自分が無知なだけだから。 
  そもそもシリアライズするにしても=なんかつかいたかねえ 
 >>611   俺も面倒 
 請求書送っていいなら訳つけてまとめてくるよ 
  最近の言語の傾向見てると 
 JavaScriptとPHPに慣れたら多次元連想配列無い言語がオワコンに見えるようになった 
 DataGridViewで、Cellに不正な値が入力された場合はフォーカスの移動を禁止するようにしたいのですが、 
 >>617   CellChangingみたいな選択セル変更前のイベントが無かったっけ? 
  >>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」を見ないといけない 
  >>612   この言語って文字列操作に特化してるからテキストを利用するのって 
 全然普通だと思いますけどね。   
 後0<input&&input<10じゃないとだめなのは、何となくですが 
 数式はポーランド記法によって処理されることに関係しますか? 
 分かりませんけど。 
  >>622   a < b < cが出来ない理由は自分で演算子オーバーロードしてみたら簡単に分かるぞ 
 a < bの時点でbool値を返すからcとは比較できなくなる 
  いや構文解析での段階の話(要は3項演算的な)だろうかなそれは関係ないと思う 
 かぶった。関係ないっていったのは演算子オーバーロードのことね。 
 >>623   それは出来ない理由にはなってないんじゃないの? 
 あんまり自信はないが、   
 評価結果が数値 < 評価結果が数値 
 評価結果が数値 < 評価結果が数値 < 評価結果が数値   
 両者を別の演算として区別することはやってできないことはないはず。 
  >>627   既存のルールに新たに3値を並べて比較する構文を追加するとしたら、既存のルールを維持したまま、新たなルールに伴う考えうる様々な組み合わせについて明確で一貫性や完全性のあるルールを作らなければならないが、かなり複雑なものになるだろう。 
 やってやれないことはないにしても、デメリット(手間と複雑さや混乱)に見合うメリットがないから、ほとんどの人に望まれていないし、言語仕様として追加されることもないだろう。 
  こんなの簡単だろ 
 <・・・小文字だからC#の言語に従う 
 if(a < x < b) 
 >>628   python で実現してるのに何を言ってるんだよw 
  >>627   そりゃ実装すれば何だって可能だが、論理的な矛盾になるから無理なんだよ 
 演算子の優先順位と結合則で二項演算するのが原則なのに、そこを横紙破りしてしまったら誰も付いて行けない 
  どうしてもやりたいなら$"3<{x}<5".Predicate()みたいなライブラリ作ればいいんじゃね 
 >>634   文脈依存キーワードと何も違わないと思うよ 
  a < x の値を独自クラスのインスタンスにできるならあとの < b はどうにでもなるだろうけど 
 >>637 の答えがほぼ
>>638 ってことで良いですか? 
 また便利な情報を得てしまったわ 
  >>640   比較演算子をオーバーロードするだけじゃない? 
 false相当の値か右辺の値を戻すようにして、併せてimplicitでboolを当てておけばifでも使えるはず 
  a b x の型が int だったりしたとき、それオーバーロードできるんだっけ? 
 C#のターゲットフレームワークってどういう仕様なんでしょうか?  
 wrapする型を定義して a < x < b できるようにしてみた 
 https://dotnetfiddle.net/FdQsX1     が、まあ使わない 
 visual studio2019 30日たったら使えなくなったんだけど 
 ボタンを押すと計算開始して結果をテキストボックスに表示する処理(数十秒かかります) 
 メインスレッドには実際にボタンを無効化する作業をしてもらわないといけないので 
 >>651-652   正直まだ難しそうですががんばってみます。ありがとうございました。 
  >>653   何も難しくないよw 
 >ボタンのenabledをfalseにする処理入れてみたのですがこれではうまく回避できません 
 これは「重い処理」の後にそれをやってるからそうなる   
 ボタンのイベントハンドラで真っ先にEnabled = falseにすればそんなことは起こらない。 
  >>655   やったことないアホは黙ってた方がいいぞ 
 あと反論するならググってから反論した方がいい 
  なぜかコードが貼れないので割愛するけど、実際にやって
>>655 が正しいことを確認した 
 当たり前の話だがw 
 >>657   ググることもできずに頭悪いとしか書けないとか可哀想なやつだな  
>>655 みたいな誰でも思いつく方法でなんとかなってたら苦労はせんよ 
  >>658   当たり前の話だが負荷かけてテストしてるよな? 
  つくづく馬鹿な奴w 
 どうでもいいけど 
 イベントを呼び出すのが毎回同じスレッドなんだから、
>>655 の方法で完璧に止まると思うけどな 
 >>662   >(例えばついボタンをダブルクリックをしてしまった時に1回表示してからまた同じ処理に入ってしまう)  
 再入が問題じゃないって気づけよ 
 タイミングによってクリックイベントが2回キューイングされることがあるのが問題なんだよ 
  ガイジに何を気付けって? 
 >>650   イベント処理に入る前にイベントハンドラを外しておくといい。button1.Click-=button_Clickみたいな感じで 
 ただValueChangedとかならともかくボタンで普通はやらないと思う。「enabledをfalse」になっているボタンでイベントが実行されるのはおかしい 
 計算処理を非同期に渡して計算が終わらないうちにEnabledを復帰させるとか変なことやっていないか? 
 EnabledでなくVisibleをfalse->trueに変えてみて確認したら? 
 動作に関しては他の人がいろいろ言っているようだけど一度ミニマムコード作って自分で動作確認するのが一番確実 
  private void button1_Click(object sender, EventArgs e) { 
 >>663   イベントは非同期でキューイングされるから
>>655 では不完全 
 アマチュアレベルとか自分しか使わないならそれで良いけど不特定多数が使うようなソフトだとダメダメ 
 ID:59NEldNlaはコード書いて確認する姿勢は良いけど確認がザル過ぎる 
 てか、アプリ作ってたらこの手の経験はしてるはずなんだが… 
  >>667   そんな必要ないってば... 
 君がOSのコード書く立場になってよく考えてよ。 
 君はメッセージをエンキューする時にウィンドウが無効化されているかどうか 
 ノールックでやっちゃうような間抜けなコード書くの?w   
 そんなのありえへん 
  いやだから、無効化されるまでに2回以上キューにたまる可能性があるって話なんだが... 
 よくわからんけど痛い人が大声で独演会をやっています 
 再現できるコードも示さずにこんな現象があるんだって書き続けるのは他でやれよ 
 それにかまう連中も荒らしと同じ  
>>1 を読んで理解してから書き込め 
 今日も仕事で新型コロナウイルスなんて騒ぎすぎだという老人の独演会を30分聞かされた 
 キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう 
 キューが溜まる派は、button1.Enabled = false;なし、かつ、非同期処理なしにすれば簡単に再現コードができるんだろう 
 ちなみに念のためこんなのもやってみたが  
 >>676   完全スレ違いだけどそれはその老害の言ってることの方がただしいw   
 専門家はたいしたリスクないから騒ぎすぎだと言ってるのに 
 どっかの怪しいネットde真実クンの被害妄想を真に受ける奴がどうかしてるよ   
 こういうの認知バイアスって言うんだけどさ 
  一流の専門家wとWHOと各国の対応見る限り 
 >>679    >>675 , 
>>677   だからテストするなら負荷かけろって話な  
>>667 の話を理解できてたらわかると思うんだが、
>>671 みたいな絶望的なアホもいるからなぁw 
  >>681   WHOは声明で過剰反応するなと言ってる。 
 多くの伝染疾患の専門家の意見も同じ   
 各国政府の対応はよく言えば安全牌、悪く言えば役人や政治家の保身だね 
 テールリスクとしてはヤバいことになる可能性は確かにゼロではない。 
 その場合に誰も批判されたくないしね。 
 費用負担するのは納税者であって役人でも政治家でもないし 
  でも新型ウイルスで色々と未知だから警戒するに越したことはないと思う 
 メッセージボックスはボタンかキーボードが押されるまで待つ。 
 >>670   1. Application.DoEvents() 
 2. PeekMessage() 
 3. await Task.Delay()   
 Task.Delay()使ってthrottle/debounceする高階関数を作っておくと毎回書かずにすむ 
  引数でリスト渡すけど要素を変更して欲しくない時って結局どうすりゃいいの? 
 >>682   今時Application.DoEvents()を手動で呼ぶとか… 
 それはともかく、Application.DoEvents()を呼ぶタイミング遅くない? 
  拡張メソッドにしろクラスをシリアライズするの面倒じゃん 
 質問お願いいたします。 
 control.Enabled=true/falseって即時処理されるのか? 
 >>695   おお!まさに探していたものです。 
 'escape' 等をキーワードにして検索を試していたのですが 
 少し的が外れていたようです。 
 本当に感謝です。どうもありがとうございます。    
>>694   ご提案どうもありがとうございます。 
 ただ今回は IFormattable.ToString の引数だけを使って 
 文字列を取得したかったので、 
 % を使う方法を使わせていただこうと思います。 
  >>696   否定はできんけど、そんなことになってたらおそロシア 
  しょーもない質問なんですが 
 >>696   そうだよ    
>>699   即時処理される方がおそロシヤだよw 
 ボタンを薄くする処理とかも走るんだが誰がそれをやると思ってるんだよ 
  >>696   Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ 
 てかWM_ENABLEはただの状態変化後の通知だし 
  >>702   すんません。よく分かってないのですが、 
 Main()の中の3行をifでスルーさせれば良いってことですか? 
 それともRunの手前でExit()ってことですか? 
  >>704   正常ならform作ってrun、異常ならformを作らない。   
 テンプレのApplication3行は、最初の2行がGUIの設定、最後がformの作成&実行。   
 判定条件がファイルの有無なら、GUIの設定待つ理由無いでしょ 
  >>703   > Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ 
 そりゃそうだろ、だから何?   
 > てかWM_ENABLEはただの状態変化後の通知だし 
 違うぞ、ちゃんと読め  
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/wm-enable   そもそも変化後の通知ならWM_ENABLEDになってるよ 
  >control.Enabled=true/falseって即時処理されるのか? 
 >>704   Mainでファイルなかったらreturnしてオシマイでいいよ 
 Exitは普通は使わない 
  sendmessageでもすりゃすぐわかる話じゃないのこれ 
 まあここは初心者スレなんだし勘弁してくれや 
 使えない部下との仕事のウサばらしは他でやってくれ 
 こっちは趣味で自分の使うアプリしか作ったことないから 
 「もしファイルが無かったら」なんて仮想の対策なんてしたこと無かったしww 
 それにC#というより「コンピュータのプログラムが動く仕組みは」に近い分野だったね    
>>705   >>708   色々実験して、なんとなくできた。 
 Runが実行されなかったらExitは必要無いんだな。 
 ありがと。 
 >>712   RunしたあともExitは使わない 
 Closeを使って行儀よく終わらせる 
  >>706   「EnableWindowが戻る前だがWS_DISABLEDが立った後」だから状態変化後の通知でしょ 
 MSの動詞の使い方なんぞに一貫性は期待しちゃ駄目よ   
 もともとが定義の雑な質問なんだから現段階でこっちにイチャモン付けても実りはないと思うで 
  EnableWindowもメッセージ飛ばすだけだから何らかの方法でメッセージ処理させないとUI更新されない 
 Winformsのコントロール実装だと大体Enabledの中で状態変数を変化させて 
 >>712   時間のかかる大規模な初期化をするなら、 
 フォーム作ってスプラッシュを立ち上げて 
 その中でってのはあるけど、 
 小規模ならフォーム作る前にしちゃうと簡単   
 good luck! 
  先輩方、設計に関して質問があります 
 神クラスでググればいっぱい出てくるだろ 
 参照を直接持つ神クラスは巨大なクラスになって破綻しそう 
 >>722   いや、単体で完結するクラスはしっかり最小構成で切り分けてるっすよ 
 ただ互いが互いを参照し合うクモの巣みたいなクラス群は、 
 参照先を一本にまとめる方が理に適っているのではないかと思って、 
 デザパタでいうFacadeやMadiatorを突き詰めて行ったら、 
 全てがGameManagerに集約されて神クラスっぽくなったのでこれはどうなんだと思った次第で 
  >>721   どのクラスが持ってるか分からなくなるのはクラス分けが下手だったからだろう。 
 すべて神クラスに押し込んだら、こんどは逆にあるメンバが元々何のために用意したものか分からなくなったり、別のメンバと取り違えたりして、破綻するだけだと思うぞ。 
  互いに参照し合うってのがそもそもあまり良くないけどそれは別の問題としておいておくとする 
 >>724   プログラムと同じ寿命で複数個所からアクセスする必要があるインスタンスを 
 グローバル変数として提供する静的クラスは是か非か、という意味なら 
 個人的には支持しますね。 
  いや、グローバル変数という言い方は変かw 
 >>724   実際にコードを書く人間を無視して、設計ありきで開発を統制しようとすると必ず破綻するものだ 
 モジュール化は基本的に開発の作業単位と一致しているのが理想 
 その作業単位こそがメソッドになったりクラスになったり、 
 開発チームや部門などもっと大きな粒度ならドメインやマイクロサービスになるわけだ 
 君が一人で開発していて、一緒に全部触ることが多いんだったらそれらは一箇所にあるのが自然 
  処理を神クラスに全部入れるのは感心しない 
 自分ではある処理にAとBしか使わないつもりだったのにいつの間にかCを参照してて 
 >>729   めちゃくちゃなこと言って初心者を惑わすの良くないp 
  staticなクラスにロジックを集中させるのが今風 
 https://ideone.com/L4OaZ0     ユーザーが自分でカスタム書式指定文字列を入力して、 
 出力名を決められるコードを書きました。 
 switch文のところが冗長な気がしますが、 
 もっとよい実装方法はありますでしょうか。 
  オブジェクト指向が全然わかりません。助けてください。 
 >>736   オブジェクト指向が理解できなくてもC#は書けるからそれだけならスレ違い 
 >クラス内で別のクラスや関数を使うことはあるのでしょうか 
 コントロールもクラスだしむしろクラス内で別のクラス使わずに書くことの方が少ない 
 関数はC#には無い定義だからどんな意味で書いているかわからない 
 初心者ならそんなこと気にせずにコード書いておけばそのうち身につく 
  >>736   c#の関数は全てクラスの中でしか宣言できません 
 終わり 
  >>737-739   関数は、クラスの中でしか宣言出来ないのですね。 
 ご指摘の通り、初心者なので気にしないようにします。 
 ありがとうございました。 
  >>735    >>735   別の意見の人もいるかもしれんけど、 
 とりあえず置換箇所を抜き出す部分と置換する部分は 
 分けた方が後でメンテしやすいコードになると思うよ 
  >>737   case '%': の時は次の文字読んで再帰呼び出しか 
 参考になるわ    
>>735 だと’%’を文字列に入れられないのかな? 
  >>735   書いてみた 
 俺も暇だな 
 ただし大人の事情でProductはイミュータブルなクラスに変えさせてもらったw  
https://ideone.com/Ck6bNl    こういうのは結局if羅列が正解なんだよな 
 >>745   なんか2行目と3行目が矛盾してると思うんだけどw 
  >>737   .NetCoreでもswitchべた書きなんですね 
 参考になります    
>>743   ご指摘の通り%が出力できない仕様でした  
>>741 さんのがよりスマートで%も出力できますね    
>>742   >>744 さんのコードのような感じでしょうか 
 高度すぎて自分には発想にも至らなかったです。すごく勉強になります   
 みなさんありがとうございます 
  それはともかく、くどいようだけど、 
 どんな方法で実装するにしろ置換箇所の検出と置換は 
 分けた方がいいと思うよ    
>>741 とか
>>735 みたいな両者が混然一体となったカオスなコードはあかんw 
 >>749   趣味プログラマーということもあり、 
 あまり人から教えてもらえる機会がないのでとてもありがたいです   
 ただの直感ですが、リファクタリング大好きなあのMDさんだったりして、 
 と感じましたw 
  >>745   パターンマッチングやwhenって知ってるかい? 
  >>752   知ってるけどif分のほうが遥かに柔軟よ    
>>753   してないよ 
 ここで言ってる柔軟姓って拡張性って意味じゃないからね 
  >>744   うーん、参考にはなるがpremature abstractionに感じる   
 置換箇所の検出と置換を分けるかどうかより 
 Productが直接SymbolTranslatorを参照したり 
 formatルールがコンストラクタに入り込んできてたり 
 EvaluatorみたいなProductと関係ないメソッドが生えてるほうがずっと気になる   
 クラスを分けるならまずProductFormatterに委譲する形にしておいて 
 他のFormatterを書く時にもう一段階抽象化するかどうかを考えたほうがいい気がする 
  >>756   while Nが文字列長より小さい 
 if N文字目以後に%を含まない then 終了 
 if N文字目が% then ネストしてプレースホルダ解析してNを更新 
 else 次の%直前までまとめて読み取ってNを更新   
 例えばこういうの 
  C#のソースは改行コードはCR + LFで書くんですか? 
 ビルドはLF・CRLFどっちでも出来るので 
 Genericのtype constraintでTを+=演算子が使える型だって宣言することできる? 
 >>761   中二病は早く卒業しよう 
 その計算、本当に他の型で使う? 
 自分に聞いてみれば答えは明らかだろう 
  >>762   了解、ありがとう    
>>763   処理別 × 型別の比較をするマイクロベンチのコードで+=演算子を使ってて 
 処理か型を追加するたびに処理数 × 型数のコードを追加するのが 
 面倒くさいからGenericにしたかったんだよ   
 C#の場合オーバーヘッドがあるから正確な測定には適さないけど 
 Genericでも傾向は分かるから 
  理由になってないじゃん 
 ちょっと教えて下さい。 
 もしくは、PDFをコピペして、アルファベットと数字を読み取れますか? 
 >>766   スレ的にはlibreDWGとかかのう 
 CADがwmfとかBMP吐いているなら 
 スレ違い   
 DXF読むのは結構大変 
  質問よろしくお願いします 
 >>771   そこは見たのですが 
 どこに型が書かれてるのかわかりません 
  型うんぬん以前の話だと思うの 
 >>770   一般的にはそもそもForm上のコントロールを外から参照するのは不適切。   
 それ、「PCのモニターに写っている同じ映像を別のモニターにも表示したいので 
 PCのモニターからHDMI出力を出せないか?」って言ってるのと同じでは? 
 発想が間違ってるよ。 
 なぜ映像のソース側にその機能を求めないでただの表示機に求める? 
  >>775   なるほど! 
 あの長い文字列からusing除いた部分が型だったのか 
 できました!  
>>776   やり方間違ってます? 
 Itemsに直接行かないで、 
 Itemsを配列に落としてからそっちを取る情が良いのかな? 
 なんか二度手間 
  >>776   デイジーチェーンという既にあるものを例に出して発想が間違ってるとか無能感が凄えな 
 使う側が加工する発想が無いとか普段どんな神クラスを生み出してるのか興味ある 
  >>778   世の中こういう人が多いから糞コードで溢れてるんだなw 
  「機能はソース元が持つべき(キリッ」 
 >>777   何でそうなるの 
 ListBoxのItems自体何かを参照して作ってるんでしょ? 
 その同じソースを子フォームも参照するのが筋ですよ。 
  香ばしい人が来たねw 
 質問者の人みたいな、役割分担を意識しない有機的な(笑)コードでも 
 学生さんの宿題程度の小さなプログラムなら問題は顕在化しないよもちろん。   
 ちょっと規模がでかくなるとすぐ死ぬけどねw 
 こういう発想でやってると    
>>780 の人は一人で大きなプログラムを設計して書いたことないんだろうね 
 >>781   うーん。listBoxをただのソース表示用にするならそうなんでしょうけど。 
 それだとItems.Addとか必要無くなりますね・・・ 
  >>781-783   この怒涛の三連投である   
 ごめんね、初心者スレで難しい話しちゃって 
 素人は今まで通りデータと機能をセットにしたオブジェクト指向で良いと思うよ 
  ガイジはこんなところに来なくていいんだよ 
 あー子フォームにはプロパティ経由でItemsのインスタンスだけ見せたかったてことか 
 >>778   デイジーチェーンは普通バスがあって見る側でフィルターしてるだけでしょ 
 本来はI/O(型変換)が要らないところにI/O入れちゃうのはどう考えても悪手でしょ。今回の話でいえば子要素から参照したくなったときに、 
 リストボックスに直でaddしてるのをやめて、元リストを作ってリストボックスのdatasourceにするか手動同期するかして、トータルのI/Oが少なくなるようにリファクタリングするよね。 
  バイクのエンジンの掛け方を訊ねているのに 
 MVVMの基盤がしっかりしてるならそれでいいけど 
 バイクは転ぶし 
 いやーここは良いスレですよ 
 UIプログラミングの原則として、コントロールを複数のクラスからアクセスるってのは 
 >>790   そういう比喩ならこっちの方が適切だね   
 バイクのエンジンのシリンダーにソレノイドを仕込んで「始動機能内蔵エンジン」 
 を発明(笑)した気になってるバカがいるので、そんな後でメンテに困るような 
 設計はやめて普通に外側にセルモーター付けろやと言ってるわけね。 
  〜正午〜 
 >>776 「コントロールを外から参照するのは不適切。何故ソース側にその機能を求めない?」   
 〜午後〜  
>>796 「内蔵なんて後でメンテに困るから普通に外側に機能を付けろ」   
 僅か半日の出来事である 
 一体何が彼を変えてしまったのか・・・ 
 >>798   くだらなすぎワロタw 
 それを言うなら
>>790 はどうなるのかねw 
 これが比喩として成立していると思う人は一人もいないと思うよw   
 しかし、幼稚だね 
  バイクの乗り方の話してるのに、唐突にバイクの機構の話で割り込んできた空気読めない人 
 まだ懲りずに言ってるしw 
   >>801 や
>>798 みたいなのにとっては「始動機能内蔵エンジン」実現のために 
 シリンダーにソレノドを仕込む機構の実現方法を聞いてる人には対しては 
 質問に対して真正面にベタに解答するのが正しいことなんだろうw   
 間違ってると思うよ。 
 そんな馬鹿なことなぜやるんだ、とアドバイスするのが正しいでしょ 
 >>777   usingってどこのことだろ。普通に一番上の方に 
 > public System.Windows.Forms.ListBox.ObjectCollection Items { get; } 
 とか 
 > プロパティ値 ListBox.ObjectCollection 
 って書いてあるのに。 
  >>804   エスパー読みすると 
 System.Windows.Forms.ListBox の参照が足りなくてキャスト部分でエラーが出てたんじゃない? 
  やりたいことができるようになってから、それが最適かどうか考えればいいことで 
 ビューからデータを取り出してあれこれするのはそれ以外方法がない場合は基本的に避けなきゃいけないレベルのことだと思うけどなあ 
 フレームワークの出来次第なんだよ 
 MS公式セミナーにて 
 モデルを分離して管理するコストに見合わないような 
 ワンライナーのノリで書いて捨てるなら適当にやればいい 
 Formsではモデルを分離しても間違いなくモデルバインディングを実装するコストは意外と高い 
 DataTableのカスタムソートの方法を教えてください。 
 1秒ごとに、FormのTextBoxに1を加算していく・・Func1 
 >>818   検討します 
 ちなみにTask使えばグローバル変数は一切必要ないですか? 
  何がしたいん? 
 実務経験1年で月収80万稼げるエンジニアになった理由  
 VIDEO    意識が低いエンジニアこそフリーランスになれ   
VIDEO    フリーランスエンジニアの週3労働ってどんな感じ?   
VIDEO    ぼくがスキルのない社畜ならこうやって脱する   
VIDEO    初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話   
VIDEO    プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説   
VIDEO    貧乏人こそ社会不適合者   
VIDEO    元ド貧乏が教える】貧乏を抜け出すための2つの考え方   
VIDEO    より良いオファー貰ってるのに転職しないとか何考えてるの?   
VIDEO   >>820   非同期プログラミングでフォーム上の値を変えたいってだけです。 
 TextBoxの値を変えるっていう超単純なプログラムでまずは試すってことです。 
  >>817   グローバル変数を使ってしまうの意味がわからないよ   
 加算というか文字列を追加する処理をトリガーするメソッドで 
 タイマー2つ作ってイベントハンドラを設定してやればいいでしょ 
 複数スレッドから同じ変数を更新するなら同期かConcurrentは必要 
  >>824   すいません、クラス変数です。 
 public class Sample 
 { 
   public Timer Func1Timer;← こういう宣言するのが嫌 
   public Timer Func2Timer;← 嫌   
  public Method() 
   {   
   } 
 } 
  FormのLoadイベントでTickにdelegateかラムダで書けばいいんやないん 
 >>825   じゃ、TextBoxはどういう位置付けなの? 
 お前のルールに抵触してんじゃん 
  >>826   そこらへんちょっと理解できてなくて… 
 サンプルコード頂けますか? 
  >>825   public void FooMethod(){ 
 var aTimer = new Timer(1000); 
 var bTimer = new Timer(2000); 
 … 
 }   
 メソッド内に閉じ込めればセーフってルールなんやろ? 
  理解できない以前にまず何も勉強してないだろ 
 このスレの人達はFizzBuzzを見せても解こうとせずに問題がおかしいと文句付けるだけなのかなってこの流れ見てちょっと思った 
 >>828   825のソースのタイマー宣言の直後に 
 aTimer.Tick += async (s,e) =>  
       await Task.StartNew(() => Textbox.Text += 1); 
 bTimer.Tick += async (s,e) =>  
       await Task.StartNew(() => Textbox.Text += 2); 
  あ、DispatcherTimerじゃないならテキスト操作はInvke つかやないけんかも 
 >>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; 
  } 
 } 
  >>817   TextBoxのTextを操作するだけのコードが非同期っていうのがまず意味が分からないよ。   
 非同期っていうのは普通はUIスレッドならUIスレッドの処理をブロックせず、 
 同時並行で別の何かの処理をするって意味じゃないの?   
 何でか知らんけどとにかくフィールドを作らずにTextBoxのTextを一定間隔で操作したいなら   
 (1) TextBox自身を継承してそういう機能を追加する 
 (2) リストに登録されたActionを指定間隔で実行するstaticクラスを作る   
 こんなとこじゃないのかな 
  >>837   それって835のこと? 
 いいんじゃない? 
 1秒→表示→1秒→って感じでTimerと少し動作が違うから大丈夫かは分からないけど 
  なぜフィールドを作らずに実現したいのか? 
 学習用の課題に意味求めて進行止めるってまんま発達障害だな 
 >>831   FizzBuzzは人口に膾炙した課題だろ 
 初心者の謎のこだわりでひり出されたクソと一緒だと思うのか? 
  >>840   妙なこだわりも発達障害にみられる兆候だけどな 
 お前の方がやばそうだな 
  >>835   ありがとうございます。 
 Delay??? 
 短いけど意味が分からないですw 
 分からないので調べます。 
  >>835   クラス変数が必要無いのはかなり良いですね! 
 Textの変化とは関係なく、ボタンやリストを操作できる非同期ってことでいいですか? 
  >>825   クラス変数とインスタンス変数を混同していないか? もしくはそれらを知らない? 
  クラス変数とインスタンス変数という用語はC#ではあまり使わない 
 故にグローバル変数とかクラス変数とか言ってる時点で 
 今まさに学んでる最中の人を勉強不足と罵るすげえ奴がいるな 
 System.Drawing の Point は int か PointF の float なのに 
 いや学んでないでしょ 
 Media.Color「そんなこと言ってもなぁ?」 
 >>846   まず同期処理で書くことできる? 
 async、awaitは非同期をあまり意識させることなく実装できるのが強み 
 なんで、まずは普通に書けないと話にならない 
 自分は非同期じゃなかったらこうするってコードをあげてみたらどう? 
  async await って Unity でも使えたっけ 
 >>851   System.Drawingはuwpで使えるかな? 
  asyncawait使っちゃうと普通のメソッドとして呼びたいときハングアップするよ 
 WPFはそこそこ普及したがUWPは完全に死産だったな 
 意味不明な縛りプレイとか雑談とか回線コロコロしている人他へ行ってくれないかな 
 プログラムとして良い悪いは別にして 
 >>859   するよ 
 少なくともするときがあることは知ってるだろ? 
 そしてそれは同期処理にしておけば起きないことも知ってるだろ? 
 じゃあ、するんだよ 
  await を使ったメソッドの完了を待つTask で 
 めんどくせえから全部ConfigureAwait(false)書いときゃいいんだよ! 
 >>862   オブジェクト指向関係あるかな?w   
 というかね、フィールドという明示的な実体を持たないくせに 
 インスタンスと同じ寿命を持つ「何か」が存在する、というのを 
 気持ち悪いと思わない人はプログラマの適正が疑わしいと個人的には思うよw 
  書いてみたけどくだらんなやっぱりw  
 OS:Rasbian Stretch 
 ランタイム:Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1) 
 ソース:
 パッケージ:
 エラー:Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found. 
 ビルドターゲット:.NET Framework4.6.1   
 Windowsでは正常に動作します。 
 AngleSharpを入れていない場合であればMonoのほうでも動作します。 
 Anglesharpを入れるとバイナリのフォルダに大量のSystem.***.dllができます。 
 AngleSharpを入れていないと動くのに入れるとエラーが出る理由はなんですか? 
 >>871   相談スレの方ですか? 
 AngleSharpを入れない場合はちゃんと動く理由がわかりません。 
  エラー内容見ろ 
 入門者なのかもしれないけどいきなり面倒な方法を使って勉強しても大変だよ 
 >>873   AngleSharpを入れなければそのようなエラーは出ません 
 その理由がわからないという質問です。 
  知らないが憶測 
 anglesharpが要求してるもんが環境によって違ってるんじゃない? 
 System.AggregateException: One or more errors occurred. ---> System.MissingMethodException: Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found. 
 .net framework ≠ monoのframework 
 >>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 
  コンインハイブで有罪判決 ♪─O(≧∇≦)O──♪ 
 Hoge[] hage = new Hoge[123]; 
 そりゃ列には長さはあるけど、リストに載ってるものは個数じゃないか? 
 リストはコレクションを継承してるからな 
 配列だと.Countが呼び出せないのにIList<T>にキャストすると呼び出せるようになるのって、そういえば何故なんだろう? 
 物によって lengthの時もあるのが…ってこと? 
 気になったから調べたぞ 
 そもそも愚問だと思うよ 
 何の問題もないからVBとかいらない 
 明示的実装にしたのは単に混乱防止のためでしょ。 
 もっとシンプルに、たとえ多次元配列であっても配列はメモリー上の連続した領域であることを 
 cnt「フフフッ」 
 平日の昼間にスレ違いの雑談で埋めるようなところにワッチョイはもういらないよな 
 次スレは 
 ふらっと C#,C♯,C#(初心者用) Part141   
http://2chb.net/r/tech/1544838367/   使ってここの継続は立てるなよ。前スレからだがテンプレも読めず雑談やスレ違いで埋める数人のためのスレとかいらん 
 >>903   もともとワッチョイなんて有害無益なのは(普通の思考回路してたら)分かるけど 
 そうじゃないのに限って「声がでかい」のでそんなこと言っても無駄だと思うよw 
  ワッチョイの意味がよくわかってないのか、有害の意味がわからん 
 >>904   普通の思考回路してたら分かるとかレッテル張って 
 反対意見潰そうとするのはフェアじゃないな 
  せっかくレッテルまで貼ったのに誰にも共感してもらえてなくて草 
 自演ができなくなると何かまずいのか? 
 ようわからんが、単芝生やしてる15/15はこのスレの大古参なので、生意気な口を聞くなよ 
 15/15ってなんや 
 >>905   例えば
>>909-910 みたいな変なの。   
 ちょっと前新型コロナの話題が出てたけどあれと同じだよ。 
 日本人は目的合理性ではなく気が済むかどうかで意思決定しがち。 
 日本人はこういうところ韓国人と完全に同じだね。   
 ワッチョイに推進論者が意図するようなプラスの効果なんか期待できないことは自明だ。 
 そのくせに意図せざる負の効果だけはしっかり存在する。   
 これ言うと荒れるかもしれないが、ワッチョイ推進論者は匿名掲示板で 
 「他人が何者か特定した気にならないと気が済まない」ストーカー気質の変な少数者だが、 
 本人たちにその自覚はない。 
  ワッチョイみて、なんだまたアイツか。って安心するんだろ 
 >>911   負の効果なんてないだろ 
 自演できなくて悔しいですって正直に言えば賛成してやらんでもないぞ 
  レス番飛んで変な流れになってると思ったら謎理論を展開してる人が 
 自作自演できた方がメリット大な理由 
 jsonの配列の行数が欲しくて以下のようなコードを書いたのですが 
 >>917   ちらっと見た限りDynamicJsonってDynamicObject派生の独自の実装みたいだから 
 クラス作った人に聞くしかないのでは?    
http://neue.cc/2010/04/30_256.html    Dynamicに物故んだだけみたいだからcount取れるんだろうか? 
 無理ですか 
 いやいやいや 
 そういう要望ならToList()すればいいのでは? 
 DynamicJSONは実用品というよりPOCで、今時誰も使ってないよ 
 json.netはデファクトスタンダード感あるな 
 >>923   リンク先のサンプルで配列に変換してたからそれでやんのがいいかもね 
 試してないから出来るのか知らん 
 ((dynamic[])jsonlist).Length 
  Json.NETって何だ、自分はNewtonsoft.JSONしか使ったことないけど大丈夫かと思ったら前者がライブラリ名、後者が名前空間名で同じものか、焦ったわ 
 jsonライブラリで一番メジャーなのってNewtonsoft.Jsonじゃないの? 
 Json.Netがこれのことか? 
 パフォーマンス的には
>>921 の人が作ったutf8Jsonが世界最強らしいが 
 utf8jsonは早いのかもしれないけど、publicメンバじゃないとダメとか 
 元々のjavascriptに準拠してないんだよな 
 >>933   Newtonsoft.Json==Json.Net 
  listの一部要素を切り出したい時ってインデックスの指定以外で早い方法ある? 
 JSONは既にJavaScriptの仕様から乖離してるからな。 
 >>938   ないのでは? 
 あくまでIEnumerable前提の実装だから非効率なのは仕方ないよね。 
 分かってるだろうけどそれが気に入らないなら自分で書けばいいだけなわけで 
  IEnumerableって順序ないのにSkipの説明には「シーケンス内の指定された数の要素をバイパスし、残りの要素を返します」って書いてるけどシーケンスって順序決まった列じゃないの? 
 それは単なる使う側の問題では? 
 >>944   こんなのあるんだなあ。ありがとう 
 むしろこっちの書き方に混乱した 
 > sequence is IList<T> list    
 C#7からできるようになったみたいだけど、これのメリットって変数のスコープを限定できるって理解でいい? 
  >>943   IEnumerableを継承してるコレクションもシーケンスだったのか 
 コレクションというくらいだからおもちゃ箱のおもちゃみたいなグチャグチャな塊のイメージだった 
  >>938   arrayに変換できるならspanでアクセスするのが早いんじゃないかな? 
 spanができて飛び飛びのインデックスへのアクセスが多いケースでは問題なければarrayでことが増えた 
  >>946   型チェックとnullチェックとキャストが同時にできる 
 キャスト結果がコンパイラによって保証されている 
  範囲アクセスの新しい構文できたよね 
 >>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..]; 
 } 
 と同じイメージで変数スコープはちょっと特殊 
  >>946   asと同じく、型チェックが1回で済むからisキャストに比べてちょっとだけ速い 
  enumの比較をvbで書いたら違う型なのに真になった 
 Option Strictは関係ないみたいね。 
 WinFormsのTreeViewで、CheckBoxの代わりにRadioButtonを使いたいのですが、 
 element host使ってwpfのlist view使うのが一番楽だと思う 
 DBに接続するときに以下のようなContextがあるとしてMyEntities1、MyEntities2、MyEntities3のテーブルにデータが追加されているかをtimerを回してデータCountが変わっているか調べて追加されています。 
 DBによってはEVENTを通知する仕組みがある 
 DBMS_PIPEかな? 
 MyEntitiesにイベント実装するだけじゃないのか 
 >>961   情報が足りなかったすみません   
 対象のDBはSQL Server2000です 
 これにデータを追加しているアプリと 
 データが追加されているかを監視したいアプリは別なのですが可能でしょうか? 
  後、変えられるのは監視したいアプリ側だけで 
 軽量でない処理を行ってその処理の内容次第で適切な区分値を返すメソッドがあるとすると 
 処理の内容を英文で頭につければいいいよ 
 処理が重いとか軽いとかでメソッド名は変えないな 
 英語の解釈 
 Getはすでに計算してある結果などを取る感じ 
 >>968-971   ありがとうございます 
 イメージがついてきました 
  >>965   DBへの変更はできない、DBを更新してるアプリの変更はできない、かつSQL Server 2000という条件で 
 データの追加・更新・削除を検知したいってことでいいのかな?   
 そういう検知ができるようにテーブル設計されてなければ正攻法では無理 
 カラム追加するなりストアド使うなりバージョン上げるなりするほうが早いし安上がり 
  クラサバ型のアプリなんだけど 
 >>967   >軽量でない処理を呼び出すときはGetをつけないほうがいいという話 
 これは聞いたことないね   
 MSのガイドラインではプロパティのゲッターに重い処理を書いてはいけないとなってたと思うけど、 
 (つまりGetXXX形式にしろ)それを聞き間違えたんじゃないか。   
 もちろん例外はあると思うけど、メソッド名が十分適切に「何をするメソッドか」を表現できていれば、 
 普通はそれが重いかどうかだいたい想像がつくのでは?   
 まあ、非同期メソッドにしたら軽くないことは嫌でも伝わるね 
  967が独自で見聞きしたとくに重要とも思えない、間違っていそうな情報を調べるとか時間の無駄でしかないな 
 基本なのにいつまで経っても議論が絶えないめんどくさい話 
 string[] a = new string[]{"a","b","c"}; 
 引数 0 を指定するメソッド 'Reverse' のオーバーロードはありません。 
 980踏んだのでついでに御相談なのですが 
   ふらっと C#,C♯,C#(初心者用) Part146  
http://2chb.net/r/tech/1576069931/   ここの次スレ (Part147 ?) は立てた方が良いのでしょうか? 
 既に 
 ふらっと C#,C♯,C#(初心者用) Part141  
http://2chb.net/r/tech/1544838367/   というスレもあるようですが重複なので放置なのか使い切った方が良いのかどっち? 
 そっちはワッチョイなしのスレ こっちはワッチョイありのスレで別物よ 
 >>978   命名規則なんてチーム開発での決め事でしかないんだから周り合わせりゃいいだけ 
 一人で作ってんなら好きにすりゃいい 
 そんなもんだろ   
 っで時間がかかる時にGetを付けるかどうかとか決め事にするほどでもない内容だわ 
 データ書き換えしてるとかならわかるけど 
  >>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にアクセスはできるので情報を表示する既製品のアプリを別に作りたいなと思っています   
 >>そういう検知ができるようにテーブル設計されてなければ正攻法では無理  
 これはどんな感じに設定されているのでしょうか?インデックスの最大値を検知とか? 
  トリガー作って監視用のテーブルに 
 それが正攻法やなあ 
 sqlserver2000には誰もつっこまないのか 
 どう見ても案件的にいろいろ終わってそうだからねえ 
 >>989   >Proc(datacount1 ,datacount2 ,datacount3) 
 え? その3つの比較なの? 
 もうワケワカメ 
  基本的に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に移動のつもりで書いていました 
 >>995   無茶苦茶じゃねえか。 
 1秒間隔で100万超のレコードのcount取るとか、既存アプリとやらが使えなくなるレベルでパフォーマンス落ちると思うぞ。 
  >>995   なんでDBContextの話をしてたのかやっと理解できた 
 DBContextがデータベース側の変更を自動で検知するとかは無理 
 楽観的同時実行制御みたいな機能はあるけど求めてるものとは違う   
 DB移行で新旧オンラインのまま 
 一部テーブルを同期させたいというユースケースなら 
 トリガーよりも先にレプリを考えるな   
 詳しくはDB板で聞けば 
  EntityFrameworkならSaveChangesをoverrideしちゃえばできるんじゃね? 
 >>996   やっぱりそうなっちゃうかな    
>>997   変更を自動で検知は無理か 
 レプリケーション調べてみます   
 ありがとう! 
 
ID:mtUYlnXN0のレス一覧:  >>682   今時Application.DoEvents()を手動で呼ぶとか… 
 それはともかく、Application.DoEvents()を呼ぶタイミング遅くない? 
  拡張メソッドにしろクラスをシリアライズするの面倒じゃん 
 質問お願いいたします。 
 control.Enabled=true/falseって即時処理されるのか? 
 >>695   おお!まさに探していたものです。 
 'escape' 等をキーワードにして検索を試していたのですが 
 少し的が外れていたようです。 
 本当に感謝です。どうもありがとうございます。    
>>694   ご提案どうもありがとうございます。 
 ただ今回は IFormattable.ToString の引数だけを使って 
 文字列を取得したかったので、 
 % を使う方法を使わせていただこうと思います。 
  >>696   否定はできんけど、そんなことになってたらおそロシア 
  しょーもない質問なんですが 
 >>696   そうだよ    
>>699   即時処理される方がおそロシヤだよw 
 ボタンを薄くする処理とかも走るんだが誰がそれをやると思ってるんだよ 
  >>696   Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ 
 てかWM_ENABLEはただの状態変化後の通知だし 
  >>702   すんません。よく分かってないのですが、 
 Main()の中の3行をifでスルーさせれば良いってことですか? 
 それともRunの手前でExit()ってことですか? 
  >>704   正常ならform作ってrun、異常ならformを作らない。   
 テンプレのApplication3行は、最初の2行がGUIの設定、最後がformの作成&実行。   
 判定条件がファイルの有無なら、GUIの設定待つ理由無いでしょ 
  >>703   > Reference Source見りゃわかるけど普通にControl.Enableのセッターで::EnableWindow呼んでるわよ 
 そりゃそうだろ、だから何?   
 > てかWM_ENABLEはただの状態変化後の通知だし 
 違うぞ、ちゃんと読め  
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/wm-enable   そもそも変化後の通知ならWM_ENABLEDになってるよ 
  >control.Enabled=true/falseって即時処理されるのか? 
 >>704   Mainでファイルなかったらreturnしてオシマイでいいよ 
 Exitは普通は使わない 
  sendmessageでもすりゃすぐわかる話じゃないのこれ 
 まあここは初心者スレなんだし勘弁してくれや 
 使えない部下との仕事のウサばらしは他でやってくれ 
 こっちは趣味で自分の使うアプリしか作ったことないから 
 「もしファイルが無かったら」なんて仮想の対策なんてしたこと無かったしww 
 それにC#というより「コンピュータのプログラムが動く仕組みは」に近い分野だったね    
>>705   >>708   色々実験して、なんとなくできた。 
 Runが実行されなかったらExitは必要無いんだな。 
 ありがと。 
 >>712   RunしたあともExitは使わない 
 Closeを使って行儀よく終わらせる 
  >>706   「EnableWindowが戻る前だがWS_DISABLEDが立った後」だから状態変化後の通知でしょ 
 MSの動詞の使い方なんぞに一貫性は期待しちゃ駄目よ   
 もともとが定義の雑な質問なんだから現段階でこっちにイチャモン付けても実りはないと思うで 
  EnableWindowもメッセージ飛ばすだけだから何らかの方法でメッセージ処理させないとUI更新されない 
 Winformsのコントロール実装だと大体Enabledの中で状態変数を変化させて 
 >>712   時間のかかる大規模な初期化をするなら、 
 フォーム作ってスプラッシュを立ち上げて 
 その中でってのはあるけど、 
 小規模ならフォーム作る前にしちゃうと簡単   
 good luck! 
  先輩方、設計に関して質問があります 
 神クラスでググればいっぱい出てくるだろ 
 参照を直接持つ神クラスは巨大なクラスになって破綻しそう 
 >>722   いや、単体で完結するクラスはしっかり最小構成で切り分けてるっすよ 
 ただ互いが互いを参照し合うクモの巣みたいなクラス群は、 
 参照先を一本にまとめる方が理に適っているのではないかと思って、 
 デザパタでいうFacadeやMadiatorを突き詰めて行ったら、 
 全てがGameManagerに集約されて神クラスっぽくなったのでこれはどうなんだと思った次第で 
  >>721   どのクラスが持ってるか分からなくなるのはクラス分けが下手だったからだろう。 
 すべて神クラスに押し込んだら、こんどは逆にあるメンバが元々何のために用意したものか分からなくなったり、別のメンバと取り違えたりして、破綻するだけだと思うぞ。 
  互いに参照し合うってのがそもそもあまり良くないけどそれは別の問題としておいておくとする 
 >>724   プログラムと同じ寿命で複数個所からアクセスする必要があるインスタンスを 
 グローバル変数として提供する静的クラスは是か非か、という意味なら 
 個人的には支持しますね。 
  いや、グローバル変数という言い方は変かw 
 >>724   実際にコードを書く人間を無視して、設計ありきで開発を統制しようとすると必ず破綻するものだ 
 モジュール化は基本的に開発の作業単位と一致しているのが理想 
 その作業単位こそがメソッドになったりクラスになったり、 
 開発チームや部門などもっと大きな粒度ならドメインやマイクロサービスになるわけだ 
 君が一人で開発していて、一緒に全部触ることが多いんだったらそれらは一箇所にあるのが自然 
  処理を神クラスに全部入れるのは感心しない 
 自分ではある処理にAとBしか使わないつもりだったのにいつの間にかCを参照してて 
 >>729   めちゃくちゃなこと言って初心者を惑わすの良くないp 
  staticなクラスにロジックを集中させるのが今風 
 https://ideone.com/L4OaZ0     ユーザーが自分でカスタム書式指定文字列を入力して、 
 出力名を決められるコードを書きました。 
 switch文のところが冗長な気がしますが、 
 もっとよい実装方法はありますでしょうか。 
  オブジェクト指向が全然わかりません。助けてください。 
 >>736   オブジェクト指向が理解できなくてもC#は書けるからそれだけならスレ違い 
 >クラス内で別のクラスや関数を使うことはあるのでしょうか 
 コントロールもクラスだしむしろクラス内で別のクラス使わずに書くことの方が少ない 
 関数はC#には無い定義だからどんな意味で書いているかわからない 
 初心者ならそんなこと気にせずにコード書いておけばそのうち身につく 
  >>736   c#の関数は全てクラスの中でしか宣言できません 
 終わり 
  >>737-739   関数は、クラスの中でしか宣言出来ないのですね。 
 ご指摘の通り、初心者なので気にしないようにします。 
 ありがとうございました。 
  >>735   レス:1-200  201-400  401-600  601-800  801-1000  ALL  
このスレへの固定リンク: http://5chb.net/r/tech/1576069931/ ヒント: http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。TOPへ  TOPへ   
 
	  
全掲示板一覧  この掲示板へ  人気スレ  | 
	Youtube  動画  
	>50  
	>100  
	>200  
	>300  
	>500  
	>1000枚  
	新着画像 一覧 )安価でプログラミングの教科書を作るスレ 	 C言語なら俺に聞け PCソフト開発で一番便利な言語教えて 	 bccのコンパイルができない  Visual Studio Code / VSCode Part6 	 初心者はとりあえずここ見とけ 	 Excel VBA 質問スレ Part73  【統計分析】機械学習・データマイニング6  OpenCL ハイパフォーマンス行列計算<漢> CUDA  C言語なら俺に聞け 150 	 tcl/tkは何故メジャーになれなかったのか? 	 応用情報って取る価値ある?  40歳 未経験 中卒 だがPGなりたい 	 JavaScript の質問用スレッド vol.125  【まず1嫁】くだすれPython(超初心者用) その58  高2の授業でアプリを作るんや。案を募集するやで  Java有償化でJava優勝かまとめ 	 Jenkins ここって低レベルな質問してええんか?  C++相談室 part151  2ちゃんねる互換P2P匿名掲示板の実装を考える 1 くだすれPython(超初心者用) その39 	 いさじの声をAIに学習させてAIいさじは作れますか?  ***Javaのオススメ入門書*** 『創るJava』 3.0 グラフィック特化言語 Processingを語るスレ 【高速】 LiteSpeed Web Server その1【LSWS】  OpenWatcom C++ Mojo part1  Java Web Application Framework総合 ver2 
  
    
  
 
 03:41:43 up 8 days, 18:03,  0 users,  load average: 210.87, 148.88, 135.95
in 0.75221610069275 sec
@[email protected]  on 103116