[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/08 11:46 / Filesize : 273 KB / Number-of Response : 1029
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part141



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

110 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 21:08:41.95 ID:la2rnvqna.net]
>>106
馬鹿の一つ覚えの教条主義はよくない

分けた方がそのメソッドの可読性が上がるなら分ける。
可読性に寄与しないなら無理に分けちゃダメ。
なぜならクラス全体の視点ではメンバーは少ない方がいい。

111 名前:デフォルトの名無しさん mailto:sage [2018/12/22(土) 23:25:46.03 ID:RR6G3DDfa.net]
メソッドの可読性ってセンスが求められるからなあ
端的に言えば、そのメソッド呼び出しを見たときに、その中身をいちいち見に行かなくてもコードを理解できるかどうか、が全てだ
それができるならどこまで細かく分けてもいいし、できないなら分けないほうがマシ
処理の流れがわからんからサブプロシージャやめろおじさんの言い分も、低レベルな現場なら極めて正しい

112 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:20:31.69 ID:pgnM6zpMM.net]
そうだよな。calcって名前のメソッドがあれば計算していることはわかる。

113 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:30:49.90 ID:iOIA70EQ0.net]
とは言え、ループが把握できる大きさに抑えるのは大事
メソッドの処理の流れが見える範囲に大きさコントロールするように心がけているな

114 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:40:03.70 ID:THpahYm7M.net]
>>111
場合によるだろ
「多角形の面積」クラスのcalcメソッドを呼び出してたら面積を計算してるのは明らかであり、面積の計算方法に関心がない限りは中を見る必要はない
それが「多角形」クラスのcalcメソッドだったら意味不明だろう
極端な例だけど、そういうのってセンス無い奴は本当にセンスないから

115 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:44:44.37 ID:744F4yO+0.net]
まあそういうところに日本語のコメント書いとけばすむ話だな。
命名センスないからな。自分。。

116 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 00:55:46.55 ID:iOIA70EQ0.net]
メソッド名はわかり易さより英語として恥をかかない程度の単語かどうかってのを気にするな
後で見られたときに笑われたくはない
簡単な単語でもスペルはチェックする

117 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 08:07:40.95 ID:Qo063XKD0.net]
日本語でも良いよ

118 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 08:42:15.02 ID:+g/rmc35M.net]
全角文字でもOK



119 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 09:14:34.28 ID:Ap3NimBD0.net]
絵文字もok

120 名前:デフォルトの名無しさん mailto:sage [2018/12/23(日) 19:57:25.95 ID:6n30X/gf0.net]
おかわりもOK

121 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 01:28:35.64 ID:bmrfjFY/0.net]
長さが10,15と異なるList<string>が2つあって10のListの値を15のListに先頭から埋めていきたいんだけど、ListでArray.Copyメソッドみたいなのないのかな?

122 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 01:53:50.78 ID:JltPtxYxa.net]
>>120
a10 = a15.GetRange(0, a10.Count);
ボトルネックでないならこんなんで十分

123 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 02:02:57.20 ID:Z+6dfbfKa.net]
120がやりたいのは要素の置換じゃないの?
まあ、組み込みの方法は用意さえてないので自分で書くしかないよね

124 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 02:11:14.58 ID:Gf2UgbH0M.net]
インプレースで置換する必要があるなら a10.Clear(); a10.AddRange(a15.Take(a10.Count)); でいいよ
少々非効率だがどうせこんなもんボトルネックにはならん

125 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 02:17:03.76 ID:+5I2QCyu0.net]
15の方にコピーしたいって言ってるのに逆ばっかじゃねーか
偉そうに答える前に日本語の読み方を覚えろよ

126 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 07:24:20.71 ID:zs7tYDO50.net]
ワラタ

127 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 07:24:47.31 ID:zs7tYDO50.net]
ガイジばっかだな

128 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:28:00.92 ID:KFYgg8m6M.net]
よく見ると逆ですらない
121はa15の先頭から10要素のリストだし
123はa10.Clear()後にa10.Countを参照してるので、実行後のa10は空だ



129 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:30:42.16 ID:zs7tYDO50.net]
ガイジの宝石箱かよ

130 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:35:25.17 ID:APgc2n6m0.net]
>>123
Clearしていいの?

131 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 08:42:01.70 ID:APgc2n6m0.net]
>>120は、こういうことなんだよな??

https://ideone.com/IBD8SG

132 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 17:58:02.29 ID:0GmOXyNR0.net]
>>127
うける

133 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 21:29:07.13 ID:wShZDi2Q0.net]
a15=a10.AddRange(a15);
で良くね?

134 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 22:49:22.82 ID:kvP3AY+C0.net]
a15は.Skip(a10.Count)が必要だしAddRangeは返値voidだし
a10が破壊されるのは気持ち悪すぎる せめて.Concatでやって

135 名前:デフォルトの名無しさん mailto:sage [2018/12/24(月) 23:00:49.18 ID:BVW7JO960.net]
a10.Select((v, i) => i).ToList().ForEach(p => a15[p] = a10[p])

136 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 05:37:13.78 ID:o3bLdzU90.net]
質問です
applicationSettingsBaseを使って設定を保存したソフトのフォルダを移動したところ
設定がすべて消えてしまいましたが仕様でしょうか。
これを回避するためにはソフトと同じフォルダにiniを作るなどして設定を保存しないといけないでしょうか。

137 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 08:31:43.73 ID:Pk7gkPrC0.net]
SettingsProviderを自作すれば保存場所は変えられなかったか

138 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:19:27.12 ID:H2h1tiNca.net]
>>135
ApplicationSettingsBaseなんて使ったことないのでいい加減に言うけど、
普通に考えれば保存場所は起動したバイナリのパスになんか依存しないはずだと思うけど

www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
ここにも書いてあるけど、バージョンとか製品名とかアセンブリの属性を何か変更したから
保存場所も変わったんじゃないの?



139 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:21:30.96 ID:H2h1tiNca.net]
ごめん>>137は訂正
俺の記憶違いで、記事にはバイナリのパスにも影響されると書いてあるねw

140 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:25:14.95 ID:yMEv05zrd.net]
>>137
いいえexeの絶対パスが変わると保存先も変わります
知らないなら適当に答えるなよ

141 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 12:49:04.91 ID:H2h1tiNca.net]
いいえ私はさそり座の女〜

142 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 20:05:08.93 ID:C73Cga6+0.net]
C#スレが伸びてるけど、unityのおかげ?

143 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 20:36:10.99 ID:bRmFmcZ5r.net]
いいえ

144 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 20:49:56.13 ID:wyvxpdNe0.net]
設定の保存ならjson.net使ったほうが幸せになれるね

145 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:00:49.69 ID:nl4zamMYa.net]
>>143
保存時のフォーマット?

146 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:03:32.60 ID:cYaw21oJ0.net]
イニファイルにしとけ
イニファイルにな

147 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:20:50.60 ID:NRydG5TY ]
[ここ壊れてます]

148 名前:M.net mailto: Windows用語ではプロファイル []
[ここ壊れてます]



149 名前:デフォルトの名無しさん mailto:sage [2018/12/25(火) 22:21:37.22 ID:m1C7tGngd.net]
>>145
老害おつ

150 名前:デフォルトの名無しさん [2018/12/26(水) 06:18:38.10 ID:1oivSykz0.net]
課題で10進数を2進数の文字列に変換したいのですが、これだとびっくりすくらい遅いです。
速くするにはどうしたらいいでしょうか。

class Program
{
public static void Main(string[] args)
{
string input = Console.ReadLine();

int i = Convert.ToInt32(input);

string output = "";

while(i >= 1)
{
output = output.Insert(0,(i % 2).ToString());
i >>= 1;
}

Console.WriteLine(output);
Console.ReadLine();
}
}

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は全然用途違うでしょ?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<273KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef