1 名前:デフォルトの名無しさん [2018/12/15(土) 11:07:07.89 ID:0aSEF/I+0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 https://mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part139 https://mevius.5ch.net/test/read.cgi/tech/1538646998/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/ja-jp/library/gg145045.aspx https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
151 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 07:14:08.48 ID:H45VhGP50.net] >>148 stringはほとんどの場合毎回新しいインスタンスが作られるから、代わりにStringBuilder使ってみ
152 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 07:18:31.50 ID:H45VhGP50.net] あとたぶん普通はこれ https://dobon.net/vb/dotnet/programing/converthex.html#section7
153 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 07:35:37.09 ID:gklwQdG7M.net] 遅いっつっても一瞬じゃない? たかが32bit整数くらいで。 試してないけど
154 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 09:33:17.59 ID:Ts4c5NN9M.net] Stringは吃驚するほど遅いよ
155 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 10:28:31.49 ID:yGWBBV+aM.net] 遅いっつっても一瞬じゃない?
156 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 11:19:21.70 ID:pZkVuIQAd.net] >>153 ループ一回ならね
157 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 12:39:12.50 ID:UFWOb61Ja.net] >>150 Convertのそんなのあったな感w でもこれゼロサプレスされるみたいだな。 まあリーディングゼロ付けるのは簡単だけども
158 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 19:06:58.35 ID:Dcs5aUpT0.net] Windowsフォームアプリケーションで、 「ボタン上をドラッグしてる間(左クリック押下中、かつボタン上にカーソルがある時)」に音を鳴らしたいんだけど Button1.MouseDownで再生、Mouseupで停止させるまでは出来ても MouseLeaveに停止処理書いて、クリックしたままボタンからカーソル外したときには音がなり続けてしまいます どういう記述がいいんでしょうか?
159 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 20:13:17.23 ID:/gJf0JvK0.net] >>156 クリックしたままだとMouseLeaveが動かないみたいだな https://ideone.com/c67R3i これは音を鳴らす代わりにフォームのタイトルにMouse On/Offと表示する MouseDownとMouseMoveでカーソルの場所を見てボタンの範囲外だと無条件でOffにする イベントとしてのMouseLeaveは外せそうな気がするしフラグ作ってもっと作りこめると思うけど面倒だからここまで
160 名前:156 mailto:sage [2018/12/26(水) 21:13:57.82 ID:0HU+mpFl0.net] ありがとうございます! 入門したて故コード読んでも理解できないけど、丸写しからの改変で勉強しながらやってみます
161 名前:デフォルトの名無しさん mailto:sage [2018/12/26(水) 21:40:59.20 ID:sOj8GKWaa.net] >>156 やらずに適当に言うけど、MouseDownのイベントハンドラか何かで Captureの値をfalseにしてやったら望んでるような動作になるんと違う?
162 名前:デフォルトの名無しさん [2019/01/03(木) 03:05:05.68 ID:2jZ78iU60.net] dotnet new webapp コマンドでプロジェクト生成した時に Controllers も Models も Views も作られないので、ちょっと面食らっています。 ASP.NET Core で Razor Page を使ったアプリを作る際は、ASP.NET でいう Controllers と Models に該当するフォルダはどこに作ったらいいんでしょうか? 特にビジネスロジック部分はどこにまとめるの
163 名前:がいいのでしょうか? [] [ここ壊れてます]
164 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 05:32:43.60 ID:ZmWGvR5ia.net] splitcontainerのpanel1に30個程度のボタンを設置し、それらは一つのイベントハンドラにまとめてて 押したボタンの色を変えるということをしようとしています splitContainer1.Panel1.Controls[●].backColor = Color.Red ; ●の位置に入る数字はどのボタンと対応しているかがイマイチわかりません。 タブインデックスの数値とは別のようですし、どの数値の事を言っているのでしょうか。
165 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 06:22:31.48 ID:2jZ78iU60.net] >>161 期待通りの回答じゃないかもしれないけど、これでもいいんでは? protected void button_Click(object sender, EventArgs e) { ((Button)sender).BackColor = Coler.Red; }
166 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 09:33:34.04 ID:mzbwP5/d0.net] >>160 dotnet new
167 名前:デフォルトの名無しさん mailto:sage [2019/01/03(木) 09:49:03.47 ID:92o1UEKg0.net] >>160 dotnet new mvc ASP.NET Coreは3.0以降でfull .NET Frameworkを切り捨てるから、必ず.NET Coreを使うように
168 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 07:48:04.81 ID:ys0B5FJg0.net] >>148 遅い原因は >string input = Console.ReadLine(); じゃね? ユーザーが全文字入力するのをぼんやり待ってないで 1文字でも入力された時点でその桁に関する処理を開始しとかないと
169 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 10:33:12.47 ID:ijGp0fE40.net] >>165 >>149 で解決すると思ったけど、その最後の行の実装例出せる?
170 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 10:50:54.92 ID:SZQOw9ve0.net] >>166 件のプログラムで一番処理時間が長いのは起動だと思うから 実際にはその程度やっても変わらんでしょ
171 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 13:46:05.21 ID:s+NsL/70M.net] >>165 てネタじゃなかったのか?
172 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 15:10:03.44 ID:yoKg5XOLM.net] 何でもかんでもまずネタだと考えるのやめた方がいいですぞ
173 名前:デフォルトの名無しさん [2019/01/06(日) 16:43:50.05 ID:Dx0jhieJ0.net] ASP.NET Coreを使う練習してるんだけどさあ 実機で動かしてみるに当たって、手元のVisualStudioやVSCodeからLAN上にあるサーバ(Ubuntu)に配置して実行するまでって結構面倒に感じてしまう・・・・ これってなにかVisualStudioに配置実行を楽にする手段があるのかな? それとも楽をしたければJenkinsかなにか勉強しなきゃあかんのかな・・・・
174 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 16:54:31.32 ID:YMMAI1S40.net] 今はどんな手順でやってるん?
175 名前:デフォルトの名無しさん [2019/01/06(日) 18:18:02.00 ID:Dx0jhieJ0.net] 今のところ、「手元でビルド→SCPコマンドで転送→SSHで実行」みたいにしてるんだけど・・・・やっぱもっといい方法あるよな
176 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 18:22:43.98 ID:SgRztK6B0.net] LINQの質問です list1とlist2はList<int>型だとして foreach(var value1 in list1) { foreach(var value2 in list2) { Console.WriteLine(value1 * value2); } } これと同じことをLINQを使ってやるとしたらどう書けばいいですか? Zipを使ってみたのですが同じインデックス同士しか掛け合わせてくれませんでした
177 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 20:09:56.59 ID:NF88G39c0.net] linqでブロードキャストできたっけ?
178 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 20:11:35.37 ID:YeoWOZf6a.net] >>173 メソッド構文ならSelectManyを使う foreach (var v in list1.SelectMany(v1 => list2, (v1, v2) => v1 * v2)) { Console.WriteLine(v); } この場合はクエリ構文の方が分かりやすいかも var q = from v1 in list1 from v2 in list2 select v1 * v2; foreach (var v in q) { Console.WriteLine(v); }
179 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 20:13:20.52 ID:NF88G39c0.net] >>173 ttps://dobon.net/vb/dotnet/programing/arraymap.html これでいけんじゃね? ConvertAll
180 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 21:11:45.37 ID:iQ1zVEqTM.net] >>170 AWSとか使えば簡単だよ MSの推奨はもちろんAzureだけど、単なるVMのホスティングサービスとして使う以上のことを期待すると正直ゴミカスなので全くお薦めできない
181 名前:デフォルトの名無しさん mailto:sage [2019/01/06(日) 21:17:12.87 ID:iQ1zVEqTM.net] >>176 今時ConvertAllとか紹介してるゴミサイトはさっさと閉鎖すべき
182 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 00:48:07.98 ID:voJmrOTp0.net] >>178 今だと何がベスト?
183 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 09:13:26.65 ID:yGBdcOaa0.net] >>175 >>176 いけました! ありがとうございます 今回はSelectManyを使おうと思います
184 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 09:34:56.37 ID:z57KVTQ70.net] >>166 考え方としては、例えば「3」が入力された時点で 次の入力結果は「3」か「30」〜「39」しかありえないから 11通りの2進数表示を用意しておいて次のキーが押されたらそこで合うものを選んで表示する どんなに10進数の入力桁数が増えても毎回11通り用意すればいいのは一緒なのと 10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる この処理がユーザーのキー入力速度より早くCPUが処理できれば多少意味がある程度だろうけど
185 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 10:20:00.74 ID:e8LT8JMZa.net] >>181 そのためにReadKeyを繰り返してたらそのオーバーヘッドの方が効果を圧倒的に上回ります 出直してきてください
186 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 10:28:19.23 ID:3j9bnJUUM.net] >>181 について更にツッコむと、1文字ずつ処理するなら単に入力されたキーの値を普通に反映させていけばよい わざわざ候補を事前に用意してGCに負担をかける意味は全く無い
187 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 15:22:57.85 ID:Nhl1xZLpa.net] チラシを見てキャベツが1円安いからと電車賃300円払って遠くのスーパーまで買いに行くような無駄な努力に思える。
188 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:03:54.28 ID:RNZAQQS50.net] ネタを元にボケてるだけかと思ったら
189 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 19:56:07.52 ID:ukOyD8nn0.net] Json.NETを使ったデシリアライズについて教えてください。 以下のようなJsonファイルを読み込んで、リストにデシリアライズをしたいです。 [ { "email": "foo.example.com", "active": true, }, { "email": "bar.example.com", "active": false, } ] しかし、デシリアライズ時に、オブジェクトが2つ以上会い場合に例外が発生します。 using ( var sr = new StreamReader( @".\accounts.json" ) ) { var accounts = JsonConvert.DeserializeObject<List<Account>>( sr.ReadToEnd() ); } 例外 Newtonsoft.Json.JsonSerializationException エラーの原因はわかるのですが、解決策が思いつきません。 よろしくお願いします。
190 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:12:15.21 ID:RNZAQQS50.net] デシリアライズではまる前に オブジェクトをシリアライズして、どういうjsonが出来るか確認することを勧める
191 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:34:39.02 ID:ukOyD8nn0.net] >>187 オブジェクトが単体の時は[]で囲まれていなかったので、 配列として認識されないような気がします。 もう一度考え直してみます。 ありがとうございました。
192 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 20:52:50.47 ID:voJmrOTp0.net] parser通さずに自力解析した方が早そうw
193 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 21:41:14.56 ID:EmaCRb9M0.net] >>186 うちの環境ではそのままで読み込めた。w ああ、json ファイルのパスや、クラスをフルパスで書くように直したりはしたけど。 あと List<Account> を Account[] に変えてみても動作した。 json パーサは Newtonsoft.Json でいいんだよね? ひょっとして json ファイルの文字コードや改行コードの問題だったりして。VS2017 で試した。
194 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 22:00:13.12 ID:RNZAQQS50.net] まあ結論としては只の配列よねw List<>が勝手に出てくる訳もなく
195 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 22:27:36.78 ID:LR2ZtPQc0.net] >>181 「10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる」 の意味がわからない。
196 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 22:49:30.37 ID:ZGeLga+2M.net] BCD?
197 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 23:07:28.05 ID:7iifCEQOa.net] >>191 アホ? デシリアライズ先の型としてList<>を指定してるんだからどう見ても勝手に出てきてはいないでしょ 普通にデシリアライズできるよ
198 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 23:26:43.60 ID:PUyuVhSj0.net] >>192 単純に勘違いだろ。16進数から2進数への変換なら成立するけど 例えば251と256の2進数の下4桁が違うのはすぐわかる 質問引っ張るのもまずいけど元の質問者もフィードバックくらいしてほしいな
199 名前:デフォルトの名無しさん mailto:sage [2019/01/07(月) 23:45:26.56 ID:RNZAQQS50.net] json.netはList指定いけたわ 低速過ぎて最近使ってなかった 失礼した
200 名前:デフォルトの名無しさん [2019/01/08(火) 01:42:19.06 ID:+TBsMqqs0.net] 9時と13時に定期的に作業を実行させたいので、タイマーを使ってプログラムを書きました。 似た部分が多いのでタイマー自体を配列化したのですが、「動作を停止しました」とエラーが出て動きませんでした。 タイマーの配列化って無理なんでしょうか? System.Windows.Forms.Timer[] timerOnce = new System.Windows.Forms.Timer[2]; public GetControlsList() { myTimerOnce(timerOnce[0], "9:00"); timerOnce[0].Tick += new EventHandler(timerOnce_Tick); } // 指定時刻までの時間を計算して、Intarvalにセット private void myTimerOnce(System.Windows.Forms.Timer thisTimer, string setTime) { //現在の時刻から、ターゲット時刻までのインターバルを算出 TimeSpan mySpan = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd ") + setTime) - DateTime.Now; int sleepSec = (int)mySpan.TotalMilliseconds; thisTimer.Enabled = true;// タイマ ON thisTimer.Interval = sleepSec; // 更新間隔 } // 指定時刻になったらmethodを実行 void timerOnce_Tick(object sender, EventArgs e) { //実行したいメソッド }
201 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 06:44:44.69 ID:dT41V3TC0.net] アドバイス頂いた通りシリアライズを見直したところ解決しました。 var account = new Account { Email = "hogehoge.example.com", Active = true, }; using ( StreamWriter sw = File.CreateText( @".\accounts.json" ) ) { var jw = new JsonTextWriter( sw ) { Formatting = Formatting.Indented }; new JsonSerializer().Serialize( jw, account ); } このように書いていたので、accountをリストに変換してから行うようにしました。 new JsonSerializer().Serialize( jw, new List<Account> { account } ); レスくれた皆さん、ありがとうございます。 こちらもVS2017なのできっと文法違いが原因です。 Json形式を勉強し直します。
202 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 08:12:51.74 ID:mtJIt88ca.net] >>197 そもそもWinFormsのタイマーは精度や信頼性がとても低く、時間の計測に使ってはいけない あくまで「時々処理をさせたい」だけのときに使うもの あなたのケー
203 名前:Xならタスクスケジューラを使うのが定石です [] [ここ壊れてます]
204 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 09:49:22.14 ID:Sw3FA19SM.net] >>197 配列をnewしただけで中身のTimerをnewしてないからじゃないの
205 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 09:53:57.24 ID:Sw3FA19SM.net] まずデバッグ実行することを覚えた方がいい気がしないでもない
206 名前:デフォルトの名無しさん mailto:sage [2019/01/08(火) 12:12:53.32 ID:+TBsMqqs0.net] >>200 まさにそれでした。 1行加えただけで解決しました。ありがとうございました。
207 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 07:23:03.10 ID:fI4baLQf0.net] 本当に初心者質問ですが、ライブラリはimportとnamespaceから書いていくのと、どちらが良いのでしょうか もしくは使い分けがあるのでしょうか
208 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 07:48:48.51 ID:c4aAB3Aqd.net] >>203 ここC#スレやで
209 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 12:18:51.14 ID:fI4baLQf0.net] >>204 C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして
210 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 12:21:16.40 ID:c4aAB3Aqd.net] >>205 c#にもimportはあるから余計混乱するだけ 名前空間とusingsは全然用途違うでしょ?
211 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 12:21:41.32 ID:c4aAB3Aqd.net] C#というかMSBuildだけど
212 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 14:41:58.83 ID:2h2JyjUc0.net] >>203 名前空間の全表記は可読性下げるので使ってないな VSでカーソル当てれば名前空間表示されるし、今時テキストエディタでゴリゴリ書いている人でもなければ全表記する必要ないと思う
213 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 14:52:14.20 ID:TKkGGOqYM.net] >>208 MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる
214 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 14:55:45.81 ID:TKkGGOqYM.net] pathってファイルパスじゃなくて 曲線かよ死ねよとか 省略形でも違いがあったほうが絶対いい
215 名前:デフォルトの名無しさん mailto:sage [2019/01/09(水) 19:11:30.62 ID:5txyXp0A0.net] >>203 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている 一般的な呼び名を使わないと調べることすらできなくなるよ
216 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 13:13:55.78 ID:lMztlpGar.net] >>209 そういうの他にもある
217 名前:デフォルトの名無しさん mailto:sage [2019/01/10(木) 20:09:22.40 ID:9xQ4gBbQa.net] P/InvokeやCOM相互運用を書くときに System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ .Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない
218 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 12:39:13.44 ID:qc15f1nfD.net] >>211 その名前を知る事が大変ですよね 沢山本読むしかないんでしょうけど
219 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 12:57:28.29 ID:RbVY6SmB0.net] >>214 この話はusingの話で質問した人もわかっているし わからないなら分からないなりに説明したらいいだけ オレオレ用語使ってこんなところで質問するのは普通におかしい
220 名前:デフォルトの名無しさん [2019/01/11(金) 13:29:58.48 ID:5RUmP2fm0.net] スレ間違えたことを嘘に嘘を塗り固めるのは朝鮮人の始まり
221 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 14:37:44.48 ID:225AU0sE0.net] ちょっと教えろください。 int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、 @decimalに
222 名前:Lャストして足し算した結果がintの範囲に収まっているかif文で判断 Atry catchで例外をつかまえる どっちがいいのでしょう? [] [ここ壊れてます]
223 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 14:40:44.08 ID:86XGb19RM.net] >>217 Bdecimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断
224 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 15:54:41.82 ID:r18fheRy0.net] >>217 int_max - a < bなら a + b < int_maxが成り立つ でも>218のほうがわかりやすいとは思う
225 名前:203 mailto:sage [2019/01/11(金) 17:49:49.09 ID:1orv+xc30.net] 俺がjavaerという事がバレちまったらしょうがねえ なんだよusingってよ vb如きだってjavaリスペクトしてんぞ
226 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:29:52.22 ID:KWycMyC0a.net] >>217 オーバーフローは同じ符号の値を足した時にしか起こらず、起こった場合は前後で符号が変わる。 他の人が見ても何やってるか分かることが重要ならそれで判定するのが一番だと思う
227 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:33:43.65 ID:KnmjjSvJM.net] ラップアラウンドとサチュレーションって学生のときに聞いたのが最後だ
228 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:40:14.66 ID:fFtOgUz40.net] すみません、初めて見る構造体が出て来たのですが [StructLayout(LayoutKind.Sequential)] struct INITCOMMONCONTROLSEX { public int dwSize; public uint dwICC; } これは何構造体と読むのですか?
229 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:45:24.19 ID:1+lzGhU1M.net] つまらん! お前の話はつまらん!
230 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:46:13.28 ID:eF6moy/g0.net] >>223 https://ufcpp.net/study/csharp/interop/memorylayout/ >Sequentialレイアウトでは、複合型のフィールドは宣言した順序通りにレイアウトされます。
231 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:49:12.65 ID:1+lzGhU1M.net] イニシャライズコモンコントロールズイーエックス構造体
232 名前:デフォルトの名無しさん mailto:sage [2019/01/11(金) 18:51:24.03 ID:zVvjOIcHa.net] >>223 構造体名で検索したらInitCommonControlsEx関数が出てくるじゃろ
233 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:09:08.43 ID:iaJ8ArIE0.net] VS2017でC#のプログラムを組んでます。 はじめてVS2017を使うのですが、画面の下に 準備完了 ↑ソース管理に追加 という邪魔なバーが表示されてます。 VS2010にはありませんでした。目障りなのでこれを消したいのですが何か方法はありますか?
234 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:20:55.22 ID:Fl9Ups4U0.net] >>228 ツール->オプション、環境->全般、ステータス バーを表示するのチェックを外す
235 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 00:21:44.23 ID:iaJ8ArIE0.net] >>229 ありがとうございます!!目障りだったんですよね。
236 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 01:04:45.40 ID:CChJ5ept0.net] 色々迷ったけど オートフォーマットはOFFにした
237 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 03:22:33.67 ID:S1bCJ3S10.net] 例外処理(に限らず、エラー処理)ってどこまで徹底して行うべきなんでしょうか? 下みたいに、使うインスタンス片っ端から毎回nullチェックとかしてたら、凄まじいコード量になるんですが・・・・・ if(obj == null) { return msg; }
238 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 03:53:00.80 ID:ejfouP+Ya.net] >>232 さあ。 でもバグと例外は区別した方がいいんじゃないか。 そのコードは多分バグを想定してるんだよね? 絶対にとは言い切れないが、バグを想定してそれを検出するifは書かないのが普通じゃないか いやライブラリみたいなものを作ってるならバグを想定して例外を投げるのは普通だけど
239 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 03:58:46.63 ID:ejfouP+Ya.net] 最後の行は引
240 名前:数のチェックの話ね [] [ここ壊れてます]
241 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:03:08.28 ID:2xT9w9620.net] return msg してるから まず例外をちゃんと使えてないんじゃ疑惑
242 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:04:51.50 ID:DC6KrvaN0.net] デザインパターンでnullオブジェクトパターンみたいの参考にするのは?
243 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:12:05.96 ID:DC6KrvaN0.net] nullが入るケースがあることを想定している場合にnullチェックを全部書くのがめんどいならnullオブジェクトパターン適用すればいいし 本来はnullが入ってたらおかしいケースならエラーを起こして拾わせるのが正しい構造って回答でいいのかな?
244 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 04:17:50.15 ID:2xT9w9620.net] ・nullが来ない想定ならチェック不要 ・nullケース考慮したくないならnullオブジェクトパターン ・null来た場合にぬるり以外で知らせるならチェックする ・nullのネスト面倒ならnull条件演算子 こんな感じやろか null非許容参照型使うという手もあるが
245 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 08:05:30.51 ID:VHzQIvd20.net] 読んでる入門書のLINQとラムダうんたらってのが分からなくて 手がstopしてしまっているのですが入門者向けに分かりやすく解説されてるページなど教えていただけないでしょうか? メソッドの使い方はある程度分かったのですがそれじゃ駄目なんすかね…
246 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 08:39:26.90 ID:0dPYYJK00.net] >>239 LINQやらラムダ使えなくても動くものはつくれるからまぁまずは作ってみよう
247 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 10:13:12.90 ID:iaJ8ArIE0.net] 最近は、自分でプログラム組まずにランサーズでハイスキルな奴に外注してるわw 中抜きでうま〜〜〜
248 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 10:35:45.31 ID:e9xF8Gpoa.net] >>232 チームの方針次第 うちの場合は nullを許可しない引数と返り値は基本的に全てチェックして例外を投げてる めんどくさいと思うかもしれないがFluentAssertionのようなライブラリを使えばそこまで大きな負担にはならない nullオブジェクトパターンはやればわかるがチェックするよりも手間がかかる また必ずしもnullの場合の適切な動作を定められるとは限らない 適切でない場合にパターンを適用するとそれがnullオブジェクトかどうかチェックするといった本末転倒なことになりかねない なのでこれが最も適切と確実に判断できる場合を除いて使用しない C# 8.0が待ち遠しいね
249 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 10:44:33.52 ID:CChJ5ept0.net] >>232 仕様と設計で解決する問題 エラーが出たときどうしたいの? エラー出たときに別に原因とかわからんでええなら一連の処理をtrycatchで囲ったらええやん なんか起きたらcatchに入ってくるで
250 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 17:18:08.40 ID:XDHakXaX0.net] >>232 外部とのやりとりの場所は結構厳重にチェックを入れる。 自分で書いているところは適当に流す。 外部とは当該館数のパラメータや、呼び出す関数とかの戻り値ね。 try catch で囲んで、チェックして例外発行して、catch 内でまとめてトレース情報込みでログ出してスローするくらいなら大した手間じゃないじゃない。 その例なら if( obj == null ) throw new ArgumentNullException("ぼーっと生きてんじゃねーよ!"); で済む話じゃん。 >>239 コピペでもいいからたくさん書いてみる。で解決するよ。 やってるうちに理屈が分かるようになる。
251 名前:デフォルトの名無しさん mailto:sage [2019/01/12(土) 17:23:52.90 ID:iaJ8ArIE0.net] 昔は開発現場でこっそりExcel型の2chブラウザでネットサーフィンばかりしてたな〜 座ってるだけで月70万むっちゃらくやった