[過去ログ] ふらっと C#,C♯,C#(初心者用) Part141 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
182: (アウアウエー Sae3-ahzL) 2019/01/07(月)10:20 ID:e8LT8JMZa(1) AAS
>>181
そのためにReadKeyを繰り返してたらそのオーバーヘッドの方が効果を圧倒的に上回ります
出直してきてください
183: (ブーイモ MM33-ahzL) 2019/01/07(月)10:28 ID:3j9bnJUUM(1) AAS
>>181について更にツッコむと、1文字ずつ処理するなら単に入力されたキーの値を普通に反映させていけばよい
わざわざ候補を事前に用意してGCに負担をかける意味は全く無い
184: (アウアウウー Sa9d-JBiS) 2019/01/07(月)15:22 ID:Nhl1xZLpa(1) AAS
チラシを見てキャベツが1円安いからと電車賃300円払って遠くのスーパーまで買いに行くような無駄な努力に思える。
185: (ワッチョイ 7b7d-vmFk) 2019/01/07(月)19:03 ID:RNZAQQS50(1/4) AAS
ネタを元にボケてるだけかと思ったら
186(1): (ワッチョイ d348-xhm2) 2019/01/07(月)19:56 ID:ukOyD8nn0(1/2) AAS
Json.NETを使ったデシリアライズについて教えてください。
以下のようなJsonファイルを読み込んで、リストにデシリアライズをしたいです。
[
{
"email": "foo.example.com",
"active": true,
},
省14
187(1): (ワッチョイ 7b7d-vmFk) 2019/01/07(月)20:12 ID:RNZAQQS50(2/4) AAS
デシリアライズではまる前に
オブジェクトをシリアライズして、どういうjsonが出来るか確認することを勧める
188: (ワッチョイ d348-xhm2) 2019/01/07(月)20:34 ID:ukOyD8nn0(2/2) AAS
>>187
オブジェクトが単体の時は[]で囲まれていなかったので、
配列として認識されないような気がします。
もう一度考え直してみます。
ありがとうございました。
189: (ワッチョイ 9963-TKWx) 2019/01/07(月)20:52 ID:voJmrOTp0(2/2) AAS
parser通さずに自力解析した方が早そうw
190: (ワッチョイ 99d2-tvdn) 2019/01/07(月)21:41 ID:EmaCRb9M0(1) AAS
>>186
うちの環境ではそのままで読み込めた。w
ああ、json ファイルのパスや、クラスをフルパスで書くように直したりはしたけど。
あと List<Account> を Account[] に変えてみても動作した。
json パーサは Newtonsoft.Json でいいんだよね?
ひょっとして json ファイルの文字コードや改行コードの問題だったりして。VS2017 で試した。
191(1): (ワッチョイ 7b7d-vmFk) 2019/01/07(月)22:00 ID:RNZAQQS50(3/4) AAS
まあ結論としては只の配列よねw
List<>が勝手に出てくる訳もなく
192(1): (ワッチョイ 5161-RM76) 2019/01/07(月)22:27 ID:LR2ZtPQc0(1) AAS
>>181
「10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる」
の意味がわからない。
193: (ブーイモ MM8d-ZBCD) 2019/01/07(月)22:49 ID:ZGeLga+2M(1) AAS
BCD?
194: (アウアウエー Sae3-ahzL) 2019/01/07(月)23:07 ID:7iifCEQOa(1) AAS
>>191
アホ?
デシリアライズ先の型としてList<>を指定してるんだからどう見ても勝手に出てきてはいないでしょ
普通にデシリアライズできるよ
195: (ワッチョイ c17b-lUsO) 2019/01/07(月)23:26 ID:PUyuVhSj0(1) AAS
>>192
単純に勘違いだろ。16進数から2進数への変換なら成立するけど
例えば251と256の2進数の下4桁が違うのはすぐわかる
質問引っ張るのもまずいけど元の質問者もフィードバックくらいしてほしいな
196: (ワッチョイ 7b7d-vmFk) 2019/01/07(月)23:45 ID:RNZAQQS50(4/4) AAS
json.netはList指定いけたわ
低速過ぎて最近使ってなかった
失礼した
197(2): (ワッチョイ a994-mHCk) 2019/01/08(火)01:42 ID:+TBsMqqs0(1/2) AAS
9時と13時に定期的に作業を実行させたいので、タイマーを使ってプログラムを書きました。
似た部分が多いのでタイマー自体を配列化したのですが、「動作を停止しました」とエラーが出て動きませんでした。
タイマーの配列化って無理なんでしょうか?
System.Windows.Forms.Timer[] timerOnce = new System.Windows.Forms.Timer[2];
public GetControlsList()
{
myTimerOnce(timerOnce[0], "9:00");
省16
198: (ワッチョイ d348-xhm2) 2019/01/08(火)06:44 ID:dT41V3TC0(1) AAS
アドバイス頂いた通りシリアライズを見直したところ解決しました。
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 );
}
省5
199: (アウアウエー Sae3-ahzL) 2019/01/08(火)08:12 ID:mtJIt88ca(1) AAS
>>197
そもそもWinFormsのタイマーは精度や信頼性がとても低く、時間の計測に使ってはいけない
あくまで「時々処理をさせたい」だけのときに使うもの
あなたのケースならタスクスケジューラを使うのが定石です
200(1): (ラクッペ MMe5-U0tG) 2019/01/08(火)09:49 ID:Sw3FA19SM(1/2) AAS
>>197
配列をnewしただけで中身のTimerをnewしてないからじゃないの
201: (ラクッペ MMe5-U0tG) 2019/01/08(火)09:53 ID:Sw3FA19SM(2/2) AAS
まずデバッグ実行することを覚えた方がいい気がしないでもない
202: (ワッチョイ a994-mHCk) 2019/01/08(火)12:12 ID:+TBsMqqs0(2/2) AAS
>>200
まさにそれでした。
1行加えただけで解決しました。ありがとうございました。
203(3): (ワッチョイ 8901-gZzt) 2019/01/09(水)07:23 ID:fI4baLQf0(1/2) AAS
本当に初心者質問ですが、ライブラリはimportとnamespaceから書いていくのと、どちらが良いのでしょうか
もしくは使い分けがあるのでしょうか
204(1): (スッップ Sd33-wlHu) 2019/01/09(水)07:48 ID:c4aAB3Aqd(1/3) AAS
>>203
ここC#スレやで
205(1): (ワッチョイ 8901-gZzt) 2019/01/09(水)12:18 ID:fI4baLQf0(2/2) AAS
>>204
C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました
なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして
206: (スッップ Sd33-wlHu) 2019/01/09(水)12:21 ID:c4aAB3Aqd(2/3) AAS
>>205
c#にもimportはあるから余計混乱するだけ
名前空間とusingsは全然用途違うでしょ?
207: (スッップ Sd33-wlHu) 2019/01/09(水)12:21 ID:c4aAB3Aqd(3/3) AAS
C#というかMSBuildだけど
208(1): (ワッチョイ 69e3-RM76) 2019/01/09(水)14:41 ID:2h2JyjUc0(1) AAS
>>203
名前空間の全表記は可読性下げるので使ってないな
VSでカーソル当てれば名前空間表示されるし、今時テキストエディタでゴリゴリ書いている人でもなければ全表記する必要ないと思う
209(1): (ドコグロ MM63-3T74) 2019/01/09(水)14:52 ID:TKkGGOqYM(1/2) AAS
>>208
MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる
210: (ドコグロ MM63-3T74) 2019/01/09(水)14:55 ID:TKkGGOqYM(2/2) AAS
pathってファイルパスじゃなくて
曲線かよ死ねよとか
省略形でも違いがあったほうが絶対いい
211(1): (ワッチョイ 917b-6YBr) 2019/01/09(水)19:11 ID:5txyXp0A0(1) AAS
>>203
外部リンク:docs.microsoft.com
usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている
一般的な呼び名を使わないと調べることすらできなくなるよ
212: (オッペケ Sr85-DIji) 2019/01/10(木)13:13 ID:lMztlpGar(1) AAS
>>209
そういうの他にもある
213: (アウアウウー Sa89-xTYM) 2019/01/10(木)20:09 ID:9xQ4gBbQa(1) AAS
P/InvokeやCOM相互運用を書くときに
System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど
System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ
.Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない
214(1): (エアペラ SDe2-42Wh) 2019/01/11(金)12:39 ID:qc15f1nfD(1) AAS
>>211
その名前を知る事が大変ですよね
沢山本読むしかないんでしょうけど
215: (ワッチョイ 557b-5zJT) 2019/01/11(金)12:57 ID:RbVY6SmB0(1) AAS
>>214
この話はusingの話で質問した人もわかっているし
わからないなら分からないなりに説明したらいいだけ
オレオレ用語使ってこんなところで質問するのは普通におかしい
216: (ワッチョイ a57c-Iup+) 2019/01/11(金)13:29 ID:5RUmP2fm0(1) AAS
スレ間違えたことを嘘に嘘を塗り固めるのは朝鮮人の始まり
217(3): (ワッチョイ a161-Fjw0) 2019/01/11(金)14:37 ID:225AU0sE0(1) AAS
ちょっと教えろください。
int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、
?decimalにキャストして足し算した結果がintの範囲に収まっているかif文で判断
?try catchで例外をつかまえる
どっちがいいのでしょう?
218(1): (ブーイモ MM71-oec2) 2019/01/11(金)14:40 ID:86XGb19RM(1) AAS
>>217
?decimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断
219: (ワッチョイ aa08-8shN) 2019/01/11(金)15:54 ID:r18fheRy0(1) AAS
>>217
int_max - a < bなら
a + b < int_maxが成り立つ
でも>218のほうがわかりやすいとは思う
220: 203 (ワッチョイ dd01-42Wh) 2019/01/11(金)17:49 ID:1orv+xc30(1) AAS
俺がjavaerという事がバレちまったらしょうがねえ
なんだよusingってよ
vb如きだってjavaリスペクトしてんぞ
221: (アウアウエー Sa22-j/vx) 2019/01/11(金)18:29 ID:KWycMyC0a(1) AAS
>>217
オーバーフローは同じ符号の値を足した時にしか起こらず、起こった場合は前後で符号が変わる。
他の人が見ても何やってるか分かることが重要ならそれで判定するのが一番だと思う
222: (ドコグロ MM9d-QFwb) 2019/01/11(金)18:33 ID:KnmjjSvJM(1) AAS
ラップアラウンドとサチュレーションって学生のときに聞いたのが最後だ
223(2): (ワッチョイ 7a01-ae4N) 2019/01/11(金)18:40 ID:fFtOgUz40(1) AAS
すみません、初めて見る構造体が出て来たのですが
[StructLayout(LayoutKind.Sequential)]
struct INITCOMMONCONTROLSEX
{
public int dwSize;
public uint dwICC;
}
省1
224: (ブーイモ MM9a-kZrb) 2019/01/11(金)18:45 ID:1+lzGhU1M(1/2) AAS
つまらん!
お前の話はつまらん!
225: (ワッチョイ d67b-92yO) 2019/01/11(金)18:46 ID:eF6moy/g0(1) AAS
>>223
外部リンク:ufcpp.net
>Sequentialレイアウトでは、複合型のフィールドは宣言した順序通りにレイアウトされます。
226: (ブーイモ MM9a-kZrb) 2019/01/11(金)18:49 ID:1+lzGhU1M(2/2) AAS
イニシャライズコモンコントロールズイーエックス構造体
227: (アウアウウー Sa89-xTYM) 2019/01/11(金)18:51 ID:zVvjOIcHa(1) AAS
>>223
構造体名で検索したらInitCommonControlsEx関数が出てくるじゃろ
228(1): (ワッチョイ 867d-Fjw0) 2019/01/12(土)00:09 ID:iaJ8ArIE0(1/4) AAS
VS2017でC#のプログラムを組んでます。
はじめてVS2017を使うのですが、画面の下に
準備完了 ↑ソース管理に追加
という邪魔なバーが表示されてます。
VS2010にはありませんでした。目障りなのでこれを消したいのですが何か方法はありますか?
229(1): (ワッチョイ 4a32-kZrb) 2019/01/12(土)00:20 ID:Fl9Ups4U0(1) AAS
>>228
ツール->オプション、環境->全般、ステータス バーを表示するのチェックを外す
230: (ワッチョイ 867d-Fjw0) 2019/01/12(土)00:21 ID:iaJ8ArIE0(2/4) AAS
>>229
ありがとうございます!!目障りだったんですよね。
231: (ワッチョイ a161-QFwb) 2019/01/12(土)01:04 ID:CChJ5ept0(1/2) AAS
色々迷ったけど
オートフォーマットはOFFにした
232(4): (ワッチョイ 55da-RNo8) 2019/01/12(土)03:22 ID:S1bCJ3S10(1) AAS
例外処理(に限らず、エラー処理)ってどこまで徹底して行うべきなんでしょうか?
下みたいに、使うインスタンス片っ端から毎回nullチェックとかしてたら、凄まじいコード量になるんですが・・・・・
if(obj == null)
{
return msg;
}
233: (アウアウエー Sa22-j/vx) 2019/01/12(土)03:53 ID:ejfouP+Ya(1/2) AAS
>>232
さあ。
でもバグと例外は区別した方がいいんじゃないか。
そのコードは多分バグを想定してるんだよね?
絶対にとは言い切れないが、バグを想定してそれを検出するifは書かないのが普通じゃないか
いやライブラリみたいなものを作ってるならバグを想定して例外を投げるのは普通だけど
234: (アウアウエー Sa22-j/vx) 2019/01/12(土)03:58 ID:ejfouP+Ya(2/2) AAS
最後の行は引数のチェックの話ね
235: (ワッチョイ 8e7d-DANP) 2019/01/12(土)04:03 ID:2xT9w9620(1/2) AAS
return msg
してるから まず例外をちゃんと使えてないんじゃ疑惑
236: (ワッチョイ dd01-trTt) 2019/01/12(土)04:04 ID:DC6KrvaN0(1/2) AAS
デザインパターンでnullオブジェクトパターンみたいの参考にするのは?
237: (ワッチョイ dd01-trTt) 2019/01/12(土)04:12 ID:DC6KrvaN0(2/2) AAS
nullが入るケースがあることを想定している場合にnullチェックを全部書くのがめんどいならnullオブジェクトパターン適用すればいいし
本来はnullが入ってたらおかしいケースならエラーを起こして拾わせるのが正しい構造って回答でいいのかな?
238: (ワッチョイ 8e7d-DANP) 2019/01/12(土)04:17 ID:2xT9w9620(2/2) AAS
・nullが来ない想定ならチェック不要
・nullケース考慮したくないならnullオブジェクトパターン
・null来た場合にぬるり以外で知らせるならチェックする
・nullのネスト面倒ならnull条件演算子
こんな感じやろか
null非許容参照型使うという手もあるが
239(3): (ワッチョイ 7aad-RNo8) 2019/01/12(土)08:05 ID:VHzQIvd20(1) AAS
読んでる入門書のLINQとラムダうんたらってのが分からなくて
手がstopしてしまっているのですが入門者向けに分かりやすく解説されてるページなど教えていただけないでしょうか?
メソッドの使い方はある程度分かったのですがそれじゃ駄目なんすかね…
240: (ワッチョイ a161-Fjw0) 2019/01/12(土)08:39 ID:0dPYYJK00(1) AAS
>>239
LINQやらラムダ使えなくても動くものはつくれるからまぁまずは作ってみよう
241(1): (ワッチョイ 867d-Fjw0) 2019/01/12(土)10:13 ID:iaJ8ArIE0(3/4) AAS
最近は、自分でプログラム組まずにランサーズでハイスキルな奴に外注してるわw
中抜きでうま〜〜〜
242: (アウアウウー Sa89-gnS9) 2019/01/12(土)10:35 ID:e9xF8Gpoa(1) AAS
>>232
チームの方針次第
うちの場合は
nullを許可しない引数と返り値は基本的に全てチェックして例外を投げてる
めんどくさいと思うかもしれないがFluentAssertionのようなライブラリを使えばそこまで大きな負担にはならない
nullオブジェクトパターンはやればわかるがチェックするよりも手間がかかる
また必ずしもnullの場合の適切な動作を定められるとは限らない
省3
243: (ワッチョイ a161-QFwb) 2019/01/12(土)10:44 ID:CChJ5ept0(2/2) AAS
>>232
仕様と設計で解決する問題
エラーが出たときどうしたいの?
エラー出たときに別に原因とかわからんでええなら一連の処理をtrycatchで囲ったらええやん
なんか起きたらcatchに入ってくるで
244: (ワッチョイ a5d2-SD/a) 2019/01/12(土)17:18 ID:XDHakXaX0(1) AAS
>>232
外部とのやりとりの場所は結構厳重にチェックを入れる。
自分で書いているところは適当に流す。
外部とは当該館数のパラメータや、呼び出す関数とかの戻り値ね。
try catch で囲んで、チェックして例外発行して、catch 内でまとめてトレース情報込みでログ出してスローするくらいなら大した手間じゃないじゃない。
その例なら if( obj == null ) throw new ArgumentNullException("ぼーっと生きてんじゃねーよ!"); で済む話じゃん。
>>239
省2
245(1): (ワッチョイ 867d-Fjw0) 2019/01/12(土)17:23 ID:iaJ8ArIE0(4/4) AAS
昔は開発現場でこっそりExcel型の2chブラウザでネットサーフィンばかりしてたな〜
座ってるだけで月70万むっちゃらくやった
246(1): (ワッチョイ d6a7-VK1S) 2019/01/13(日)00:23 ID:X0+RFgX60(1/2) AAS
>>239
駆け出し時代オープンソース改造してた時にLINQはパフォーマンス悪いと思って見つけ次第foreachに手直しするという逆工程でLINQとラムダ式マスターした
247: (ササクッテロ Sp85-aawd) 2019/01/13(日)00:46 ID:IIPQpabmp(1) AAS
使えば勝手にlinqの快感にハマって抜け出せなくなる
248: (ワッチョイ a563-jrHm) 2019/01/13(日)04:21 ID:qwE0jZig0(1) AAS
麻薬のような機能だなw
249: (ワッチョイ 8e7d-DANP) 2019/01/13(日)09:07 ID:Xn8IPTP50(1) AAS
LINQもRxも使いだすと元に戻れなくなる
でも性能気にしてstructとforeachに書き直し始めると時間足りない
250(1): (ワッチョイ faad-yiss) 2019/01/13(日)09:32 ID:Z+h8nfOL0(1) AAS
>>246
パフォーマンスのためならなんでforにしなかったん?
251: (ワッチョイ d6a7-VK1S) 2019/01/13(日)18:27 ID:X0+RFgX60(2/2) AAS
>>250
Listはしてたよ
あとラムダ式はLINQ→foreachより行数減らす意識持って1行メソッドを見つけ次第ラムダ式に直す工程で習得したな
252(4): (ワッチョイ 551f-M1d3) 2019/01/14(月)23:20 ID:3wGjtMyb0(1) AAS
ComboBoxに例えばA〜Dと4つ項目が入っていて、A〜Cは同一計算方法でDのみ特別な計算方法でコード内容が異なり且つ色んな計算をする為コードが長くなる場合の見やすくする為の最初の分岐方法とか書き方とかありませんか?
今はifで分岐した中にあれこれ結果を取ってきて結果を出してるのでifがやたら長く見辛いです。なんかいい方法があれば教えて頂きたいです。
253: (ワッチョイ 3d46-VK1S) 2019/01/14(月)23:31 ID:CBheeOs80(1) AAS
LINQ使うと元に戻れなくなるのはわかるんだけどデバッグしづらくね?
デバッグを想定する時点で初心者なのかな...教えてエロい人
254: (アウアウエー Sa22-j/vx) 2019/01/15(火)00:45 ID:DUfu4s9fa(1) AAS
>>252
4っつぽっちの分岐で何がそんなに見づらくなるのかちょっと理解できんよ。
いや、煽ってるわけじゃなく本当に
各分岐先のコードが長くなるっていうのならそれぞれメソッドに切り分けるだけじゃないの?
255(2): (ササクッテロ Sp85-aawd) 2019/01/15(火)02:09 ID:gvlEsXBIp(1) AAS
>>252
if(value == d){
d用処理またはメソッド
}else {
a〜c用処理またはメソッド
}
これじゃダメなの?
256: (ガラプー KKad-zSS6) 2019/01/15(火)04:09 ID:Vsgk6Uc3K(1) AAS
>>252
ComboBoxにブチ込むためのクラスを書いてDは継承
257(1): (ワッチョイ a161-PaIb) 2019/01/15(火)06:09 ID:rjgxVR8i0(1) AAS
LINQはなかなか身につかんなあ。
とりあえずforで書いといて見直してこれLINQで一行になるんじゃね?と気付いたらいそいそと書き直す感じ。
LINQ脳になってない
258(1): (ワッチョイ a563-jrHm) 2019/01/15(火)06:39 ID:OSSPo6bD0(1) AAS
例えば処理順を意識しなくて良い場合、通常のforまたはforeachで処理するのと、Parallel.ForEachで並列処理するのはやはり並列処理の方が早い?
259(2): (ドコグロ MM9d-QFwb) 2019/01/15(火)07:24 ID:ohj/8QmzM(1) AAS
>>255
質問者の意図とは違うかもしれんがそういうコード書くと怒るやつがいた職場がある
わざわざ継承してうにゃうにゃやらんと怒る
んでできたコードが何がいいのか考えてもさっぱり意味がわからん
本人にメリットを聞いてもさっぱり理解できんというかメリットの話になると必ずボケた返しをする
ありもしない改修を想定してキチガイとしか思えない発言を連発する
そもそも仕様書や設計書に処理がその数で分岐するってあるのに
省5
260: (スップ Sd7a-8shN) 2019/01/15(火)08:37 ID:biF9zsRRd(1) AAS
環境次第
261: (アウアウウー Sa89-E4e6) 2019/01/15(火)08:41 ID:AEHaNlhRa(1) AAS
>>259
条件分岐が減るとかじゃないの?
それだけ不具合が減る理屈だが、工数が増えてるんじゃ意味ないな
262: (オイコラミネオ MM3d-DANP) 2019/01/15(火)08:50 ID:OahWWfOzM(1) AAS
普通のケースでは継承にしても
条件分岐が別の場所に移動するだけだべ
上下前次1-新書関写板覧索設栞歴
あと 740 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.023s