!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/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part141
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2317-qMUn)
2018/12/15(土) 11:07:07.89ID:0aSEF/I+0135デフォルトの名無しさん (ワッチョイ 6d81-q1e7)
2018/12/25(火) 05:37:13.78ID:o3bLdzU90 質問です
applicationSettingsBaseを使って設定を保存したソフトのフォルダを移動したところ
設定がすべて消えてしまいましたが仕様でしょうか。
これを回避するためにはソフトと同じフォルダにiniを作るなどして設定を保存しないといけないでしょうか。
applicationSettingsBaseを使って設定を保存したソフトのフォルダを移動したところ
設定がすべて消えてしまいましたが仕様でしょうか。
これを回避するためにはソフトと同じフォルダにiniを作るなどして設定を保存しないといけないでしょうか。
136デフォルトの名無しさん (ワッチョイ cb81-f+Pb)
2018/12/25(火) 08:31:43.73ID:Pk7gkPrC0 SettingsProviderを自作すれば保存場所は変えられなかったか
137デフォルトの名無しさん (アウアウエー Sa13-pYn4)
2018/12/25(火) 12:19:27.12ID:H2h1tiNca >>135
ApplicationSettingsBaseなんて使ったことないのでいい加減に言うけど、
普通に考えれば保存場所は起動したバイナリのパスになんか依存しないはずだと思うけど
http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
ここにも書いてあるけど、バージョンとか製品名とかアセンブリの属性を何か変更したから
保存場所も変わったんじゃないの?
ApplicationSettingsBaseなんて使ったことないのでいい加減に言うけど、
普通に考えれば保存場所は起動したバイナリのパスになんか依存しないはずだと思うけど
http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
ここにも書いてあるけど、バージョンとか製品名とかアセンブリの属性を何か変更したから
保存場所も変わったんじゃないの?
138デフォルトの名無しさん (アウアウエー Sa13-pYn4)
2018/12/25(火) 12:21:30.96ID:H2h1tiNca ごめん>>137は訂正
俺の記憶違いで、記事にはバイナリのパスにも影響されると書いてあるねw
俺の記憶違いで、記事にはバイナリのパスにも影響されると書いてあるねw
139デフォルトの名無しさん (スフッ Sd43-tFmq)
2018/12/25(火) 12:25:14.95ID:yMEv05zrd140デフォルトの名無しさん (アウアウエー Sa13-pYn4)
2018/12/25(火) 12:49:04.91ID:H2h1tiNca いいえ私はさそり座の女〜
141デフォルトの名無しさん (ワッチョイ f54e-Wbbf)
2018/12/25(火) 20:05:08.93ID:C73Cga6+0 C#スレが伸びてるけど、unityのおかげ?
142デフォルトの名無しさん (オッペケ Sr61-Yer+)
2018/12/25(火) 20:36:10.99ID:bRmFmcZ5r いいえ
143デフォルトの名無しさん (ワッチョイ 2306-q1e7)
2018/12/25(火) 20:49:56.13ID:wyvxpdNe0 設定の保存ならjson.net使ったほうが幸せになれるね
144デフォルトの名無しさん (アウアウウー Sac9-BQJB)
2018/12/25(火) 22:00:49.69ID:nl4zamMYa >>143
保存時のフォーマット?
保存時のフォーマット?
145デフォルトの名無しさん (ワッチョイ ab33-4M5M)
2018/12/25(火) 22:03:32.60ID:cYaw21oJ0 イニファイルにしとけ
イニファイルにな
イニファイルにな
146デフォルトの名無しさん (ブーイモ MM43-Z9RU)
2018/12/25(火) 22:20:50.60ID:NRydG5TYM Windows用語ではプロファイル
147デフォルトの名無しさん (スッップ Sd43-nejN)
2018/12/25(火) 22:21:37.22ID:m1C7tGngd >>145
老害おつ
老害おつ
148デフォルトの名無しさん (ワッチョイ 658a-6UAB)
2018/12/26(水) 06:18:38.10ID:1oivSykz0 課題で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();
}
}
速くするにはどうしたらいいでしょうか。
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();
}
}
149デフォルトの名無しさん (ワッチョイ 23d2-nejN)
2018/12/26(水) 07:14:08.48ID:H45VhGP50 >>148
stringはほとんどの場合毎回新しいインスタンスが作られるから、代わりにStringBuilder使ってみ
stringはほとんどの場合毎回新しいインスタンスが作られるから、代わりにStringBuilder使ってみ
150デフォルトの名無しさん (ワッチョイ 23d2-nejN)
2018/12/26(水) 07:18:31.50ID:H45VhGP50151デフォルトの名無しさん (ブーイモ MM59-5po1)
2018/12/26(水) 07:35:37.09ID:gklwQdG7M 遅いっつっても一瞬じゃない?
たかが32bit整数くらいで。
試してないけど
たかが32bit整数くらいで。
試してないけど
152デフォルトの名無しさん (ブーイモ MMeb-Z9RU)
2018/12/26(水) 09:33:17.59ID:Ts4c5NN9M Stringは吃驚するほど遅いよ
153デフォルトの名無しさん (ブーイモ MM43-Dd2B)
2018/12/26(水) 10:28:31.49ID:yGWBBV+aM 遅いっつっても一瞬じゃない?
154デフォルトの名無しさん (スッップ Sd43-nejN)
2018/12/26(水) 11:19:21.70ID:pZkVuIQAd >>153
ループ一回ならね
ループ一回ならね
155デフォルトの名無しさん (アウアウエー Sa13-pYn4)
2018/12/26(水) 12:39:12.50ID:UFWOb61Ja156デフォルトの名無しさん (ワッチョイ 35eb-hpOi)
2018/12/26(水) 19:06:58.35ID:Dcs5aUpT0 Windowsフォームアプリケーションで、
「ボタン上をドラッグしてる間(左クリック押下中、かつボタン上にカーソルがある時)」に音を鳴らしたいんだけど
Button1.MouseDownで再生、Mouseupで停止させるまでは出来ても
MouseLeaveに停止処理書いて、クリックしたままボタンからカーソル外したときには音がなり続けてしまいます
どういう記述がいいんでしょうか?
「ボタン上をドラッグしてる間(左クリック押下中、かつボタン上にカーソルがある時)」に音を鳴らしたいんだけど
Button1.MouseDownで再生、Mouseupで停止させるまでは出来ても
MouseLeaveに停止処理書いて、クリックしたままボタンからカーソル外したときには音がなり続けてしまいます
どういう記述がいいんでしょうか?
157デフォルトの名無しさん (ワッチョイ 459a-9nMG)
2018/12/26(水) 20:13:17.23ID:/gJf0JvK0 >>156
クリックしたままだとMouseLeaveが動かないみたいだな
https://ideone.com/c67R3i
これは音を鳴らす代わりにフォームのタイトルにMouse On/Offと表示する
MouseDownとMouseMoveでカーソルの場所を見てボタンの範囲外だと無条件でOffにする
イベントとしてのMouseLeaveは外せそうな気がするしフラグ作ってもっと作りこめると思うけど面倒だからここまで
クリックしたままだとMouseLeaveが動かないみたいだな
https://ideone.com/c67R3i
これは音を鳴らす代わりにフォームのタイトルにMouse On/Offと表示する
MouseDownとMouseMoveでカーソルの場所を見てボタンの範囲外だと無条件でOffにする
イベントとしてのMouseLeaveは外せそうな気がするしフラグ作ってもっと作りこめると思うけど面倒だからここまで
158156 (ワッチョイ 6deb-hpOi)
2018/12/26(水) 21:13:57.82ID:0HU+mpFl0 ありがとうございます!
入門したて故コード読んでも理解できないけど、丸写しからの改変で勉強しながらやってみます
入門したて故コード読んでも理解できないけど、丸写しからの改変で勉強しながらやってみます
159デフォルトの名無しさん (アウアウエー Sa13-pYn4)
2018/12/26(水) 21:40:59.20ID:sOj8GKWaa160デフォルトの名無しさん (ワッチョイ f9da-ikDe)
2019/01/03(木) 03:05:05.68ID:2jZ78iU60 dotnet new webapp コマンドでプロジェクト生成した時に Controllers も Models も Views も作られないので、ちょっと面食らっています。
ASP.NET Core で Razor Page を使ったアプリを作る際は、ASP.NET でいう Controllers と Models に該当するフォルダはどこに作ったらいいんでしょうか?
特にビジネスロジック部分はどこにまとめるのがいいのでしょうか?
ASP.NET Core で Razor Page を使ったアプリを作る際は、ASP.NET でいう Controllers と Models に該当するフォルダはどこに作ったらいいんでしょうか?
特にビジネスロジック部分はどこにまとめるのがいいのでしょうか?
161デフォルトの名無しさん (アウアウエー Sae3-xhm2)
2019/01/03(木) 05:32:43.60ID:ZmWGvR5ia splitcontainerのpanel1に30個程度のボタンを設置し、それらは一つのイベントハンドラにまとめてて
押したボタンの色を変えるということをしようとしています
splitContainer1.Panel1.Controls[●].backColor = Color.Red ;
●の位置に入る数字はどのボタンと対応しているかがイマイチわかりません。
タブインデックスの数値とは別のようですし、どの数値の事を言っているのでしょうか。
押したボタンの色を変えるということをしようとしています
splitContainer1.Panel1.Controls[●].backColor = Color.Red ;
●の位置に入る数字はどのボタンと対応しているかがイマイチわかりません。
タブインデックスの数値とは別のようですし、どの数値の事を言っているのでしょうか。
162デフォルトの名無しさん (ワッチョイ f9da-ikDe)
2019/01/03(木) 06:22:31.48ID:2jZ78iU60 >>161
期待通りの回答じゃないかもしれないけど、これでもいいんでは?
protected void button_Click(object sender, EventArgs e)
{
((Button)sender).BackColor = Coler.Red;
}
期待通りの回答じゃないかもしれないけど、これでもいいんでは?
protected void button_Click(object sender, EventArgs e)
{
((Button)sender).BackColor = Coler.Red;
}
163デフォルトの名無しさん (ワッチョイ 69ad-wlHu)
2019/01/03(木) 09:33:34.04ID:mzbwP5/d0 >>160
dotnet new
dotnet new
164デフォルトの名無しさん (ワッチョイ 1901-ahzL)
2019/01/03(木) 09:49:03.47ID:92o1UEKg0165デフォルトの名無しさん (ワッチョイ 1301-aNo7)
2019/01/06(日) 07:48:04.81ID:ys0B5FJg0 >>148
遅い原因は
>string input = Console.ReadLine();
じゃね?
ユーザーが全文字入力するのをぼんやり待ってないで
1文字でも入力された時点でその桁に関する処理を開始しとかないと
遅い原因は
>string input = Console.ReadLine();
じゃね?
ユーザーが全文字入力するのをぼんやり待ってないで
1文字でも入力された時点でその桁に関する処理を開始しとかないと
166デフォルトの名無しさん (ワッチョイ 8b7b-wnDr)
2019/01/06(日) 10:33:12.47ID:ijGp0fE40167デフォルトの名無しさん (ワッチョイ 5142-xhm2)
2019/01/06(日) 10:50:54.92ID:SZQOw9ve0168デフォルトの名無しさん (ブーイモ MM8d-ZBCD)
2019/01/06(日) 13:46:05.21ID:s+NsL/70M >>165てネタじゃなかったのか?
169デフォルトの名無しさん (ラクッペ MMe5-U0tG)
2019/01/06(日) 15:10:03.44ID:yoKg5XOLM 何でもかんでもまずネタだと考えるのやめた方がいいですぞ
170デフォルトの名無しさん (ワッチョイ 332d-ikDe)
2019/01/06(日) 16:43:50.05ID:Dx0jhieJ0 ASP.NET Coreを使う練習してるんだけどさあ
実機で動かしてみるに当たって、手元のVisualStudioやVSCodeからLAN上にあるサーバ(Ubuntu)に配置して実行するまでって結構面倒に感じてしまう・・・・
これってなにかVisualStudioに配置実行を楽にする手段があるのかな?
それとも楽をしたければJenkinsかなにか勉強しなきゃあかんのかな・・・・
実機で動かしてみるに当たって、手元のVisualStudioやVSCodeからLAN上にあるサーバ(Ubuntu)に配置して実行するまでって結構面倒に感じてしまう・・・・
これってなにかVisualStudioに配置実行を楽にする手段があるのかな?
それとも楽をしたければJenkinsかなにか勉強しなきゃあかんのかな・・・・
171デフォルトの名無しさん (ワッチョイ 7b7d-vmFk)
2019/01/06(日) 16:54:31.32ID:YMMAI1S40 今はどんな手順でやってるん?
172デフォルトの名無しさん (ワッチョイ 332d-ikDe)
2019/01/06(日) 18:18:02.00ID:Dx0jhieJ0 今のところ、「手元でビルド→SCPコマンドで転送→SSHで実行」みたいにしてるんだけど・・・・やっぱもっといい方法あるよな
173デフォルトの名無しさん (ワッチョイ 9168-RM76)
2019/01/06(日) 18:22:43.98ID:SgRztK6B0 LINQの質問です
list1とlist2はList<int>型だとして
foreach(var value1 in list1) {
foreach(var value2 in list2) {
Console.WriteLine(value1 * value2);
}
}
これと同じことをLINQを使ってやるとしたらどう書けばいいですか?
Zipを使ってみたのですが同じインデックス同士しか掛け合わせてくれませんでした
list1とlist2はList<int>型だとして
foreach(var value1 in list1) {
foreach(var value2 in list2) {
Console.WriteLine(value1 * value2);
}
}
これと同じことをLINQを使ってやるとしたらどう書けばいいですか?
Zipを使ってみたのですが同じインデックス同士しか掛け合わせてくれませんでした
174デフォルトの名無しさん (ワッチョイ 9963-TKWx)
2019/01/06(日) 20:09:56.59ID:NF88G39c0 linqでブロードキャストできたっけ?
175デフォルトの名無しさん (アウアウウー Sa9d-Y2fC)
2019/01/06(日) 20:11:35.37ID:YeoWOZf6a >>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);
}
メソッド構文なら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);
}
176デフォルトの名無しさん (ワッチョイ 9963-TKWx)
2019/01/06(日) 20:13:20.52ID:NF88G39c0177デフォルトの名無しさん (ブーイモ MM8d-ahzL)
2019/01/06(日) 21:11:45.37ID:iQ1zVEqTM178デフォルトの名無しさん (ブーイモ MM8d-ahzL)
2019/01/06(日) 21:17:12.87ID:iQ1zVEqTM >>176
今時ConvertAllとか紹介してるゴミサイトはさっさと閉鎖すべき
今時ConvertAllとか紹介してるゴミサイトはさっさと閉鎖すべき
179デフォルトの名無しさん (ワッチョイ 9963-TKWx)
2019/01/07(月) 00:48:07.98ID:voJmrOTp0 >>178
今だと何がベスト?
今だと何がベスト?
180デフォルトの名無しさん (ワッチョイ 9168-RM76)
2019/01/07(月) 09:13:26.65ID:yGBdcOaa0181デフォルトの名無しさん (ワッチョイ 9101-aNo7)
2019/01/07(月) 09:34:56.37ID:z57KVTQ70 >>166
考え方としては、例えば「3」が入力された時点で
次の入力結果は「3」か「30」〜「39」しかありえないから
11通りの2進数表示を用意しておいて次のキーが押されたらそこで合うものを選んで表示する
どんなに10進数の入力桁数が増えても毎回11通り用意すればいいのは一緒なのと
10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる
この処理がユーザーのキー入力速度より早くCPUが処理できれば多少意味がある程度だろうけど
考え方としては、例えば「3」が入力された時点で
次の入力結果は「3」か「30」〜「39」しかありえないから
11通りの2進数表示を用意しておいて次のキーが押されたらそこで合うものを選んで表示する
どんなに10進数の入力桁数が増えても毎回11通り用意すればいいのは一緒なのと
10進数が1桁増えるときに2進数表示で最後の4桁以外の文字列は使い回せるから文字列連結処理は多少減らせる
この処理がユーザーのキー入力速度より早くCPUが処理できれば多少意味がある程度だろうけど
182デフォルトの名無しさん (アウアウエー Sae3-ahzL)
2019/01/07(月) 10:20:00.74ID:e8LT8JMZa183デフォルトの名無しさん (ブーイモ MM33-ahzL)
2019/01/07(月) 10:28:19.23ID:3j9bnJUUM >>181について更にツッコむと、1文字ずつ処理するなら単に入力されたキーの値を普通に反映させていけばよい
わざわざ候補を事前に用意してGCに負担をかける意味は全く無い
わざわざ候補を事前に用意してGCに負担をかける意味は全く無い
184デフォルトの名無しさん (アウアウウー Sa9d-JBiS)
2019/01/07(月) 15:22:57.85ID:Nhl1xZLpa チラシを見てキャベツが1円安いからと電車賃300円払って遠くのスーパーまで買いに行くような無駄な努力に思える。
185デフォルトの名無しさん (ワッチョイ 7b7d-vmFk)
2019/01/07(月) 19:03:54.28ID:RNZAQQS50 ネタを元にボケてるだけかと思ったら
186デフォルトの名無しさん (ワッチョイ d348-xhm2)
2019/01/07(月) 19:56:07.52ID:ukOyD8nn0 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
エラーの原因はわかるのですが、解決策が思いつきません。
よろしくお願いします。
以下のような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
エラーの原因はわかるのですが、解決策が思いつきません。
よろしくお願いします。
187デフォルトの名無しさん (ワッチョイ 7b7d-vmFk)
2019/01/07(月) 20:12:15.21ID:RNZAQQS50 デシリアライズではまる前に
オブジェクトをシリアライズして、どういうjsonが出来るか確認することを勧める
オブジェクトをシリアライズして、どういうjsonが出来るか確認することを勧める
188デフォルトの名無しさん (ワッチョイ d348-xhm2)
2019/01/07(月) 20:34:39.02ID:ukOyD8nn0189デフォルトの名無しさん (ワッチョイ 9963-TKWx)
2019/01/07(月) 20:52:50.47ID:voJmrOTp0 parser通さずに自力解析した方が早そうw
190デフォルトの名無しさん (ワッチョイ 99d2-tvdn)
2019/01/07(月) 21:41:14.56ID:EmaCRb9M0 >>186
うちの環境ではそのままで読み込めた。w
ああ、json ファイルのパスや、クラスをフルパスで書くように直したりはしたけど。
あと List<Account> を Account[] に変えてみても動作した。
json パーサは Newtonsoft.Json でいいんだよね?
ひょっとして json ファイルの文字コードや改行コードの問題だったりして。VS2017 で試した。
うちの環境ではそのままで読み込めた。w
ああ、json ファイルのパスや、クラスをフルパスで書くように直したりはしたけど。
あと List<Account> を Account[] に変えてみても動作した。
json パーサは Newtonsoft.Json でいいんだよね?
ひょっとして json ファイルの文字コードや改行コードの問題だったりして。VS2017 で試した。
191デフォルトの名無しさん (ワッチョイ 7b7d-vmFk)
2019/01/07(月) 22:00:13.12ID:RNZAQQS50 まあ結論としては只の配列よねw
List<>が勝手に出てくる訳もなく
List<>が勝手に出てくる訳もなく
192デフォルトの名無しさん (ワッチョイ 5161-RM76)
2019/01/07(月) 22:27:36.78ID:LR2ZtPQc0193デフォルトの名無しさん (ブーイモ MM8d-ZBCD)
2019/01/07(月) 22:49:30.37ID:ZGeLga+2M BCD?
194デフォルトの名無しさん (アウアウエー Sae3-ahzL)
2019/01/07(月) 23:07:28.05ID:7iifCEQOa195デフォルトの名無しさん (ワッチョイ c17b-lUsO)
2019/01/07(月) 23:26:43.60ID:PUyuVhSj0 >>192
単純に勘違いだろ。16進数から2進数への変換なら成立するけど
例えば251と256の2進数の下4桁が違うのはすぐわかる
質問引っ張るのもまずいけど元の質問者もフィードバックくらいしてほしいな
単純に勘違いだろ。16進数から2進数への変換なら成立するけど
例えば251と256の2進数の下4桁が違うのはすぐわかる
質問引っ張るのもまずいけど元の質問者もフィードバックくらいしてほしいな
196デフォルトの名無しさん (ワッチョイ 7b7d-vmFk)
2019/01/07(月) 23:45:26.56ID:RNZAQQS50 json.netはList指定いけたわ
低速過ぎて最近使ってなかった
失礼した
低速過ぎて最近使ってなかった
失礼した
197デフォルトの名無しさん (ワッチョイ a994-mHCk)
2019/01/08(火) 01:42:19.06ID:+TBsMqqs0 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)
{
//実行したいメソッド
}
似た部分が多いのでタイマー自体を配列化したのですが、「動作を停止しました」とエラーが出て動きませんでした。
タイマーの配列化って無理なんでしょうか?
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)
{
//実行したいメソッド
}
198デフォルトの名無しさん (ワッチョイ d348-xhm2)
2019/01/08(火) 06:44:44.69ID:dT41V3TC0 アドバイス頂いた通りシリアライズを見直したところ解決しました。
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形式を勉強し直します。
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形式を勉強し直します。
199デフォルトの名無しさん (アウアウエー Sae3-ahzL)
2019/01/08(火) 08:12:51.74ID:mtJIt88ca >>197
そもそもWinFormsのタイマーは精度や信頼性がとても低く、時間の計測に使ってはいけない
あくまで「時々処理をさせたい」だけのときに使うもの
あなたのケースならタスクスケジューラを使うのが定石です
そもそもWinFormsのタイマーは精度や信頼性がとても低く、時間の計測に使ってはいけない
あくまで「時々処理をさせたい」だけのときに使うもの
あなたのケースならタスクスケジューラを使うのが定石です
200デフォルトの名無しさん (ラクッペ MMe5-U0tG)
2019/01/08(火) 09:49:22.14ID:Sw3FA19SM >>197
配列をnewしただけで中身のTimerをnewしてないからじゃないの
配列をnewしただけで中身のTimerをnewしてないからじゃないの
201デフォルトの名無しさん (ラクッペ MMe5-U0tG)
2019/01/08(火) 09:53:57.24ID:Sw3FA19SM まずデバッグ実行することを覚えた方がいい気がしないでもない
202デフォルトの名無しさん (ワッチョイ a994-mHCk)
2019/01/08(火) 12:12:53.32ID:+TBsMqqs0203デフォルトの名無しさん (ワッチョイ 8901-gZzt)
2019/01/09(水) 07:23:03.10ID:fI4baLQf0 本当に初心者質問ですが、ライブラリはimportとnamespaceから書いていくのと、どちらが良いのでしょうか
もしくは使い分けがあるのでしょうか
もしくは使い分けがあるのでしょうか
204デフォルトの名無しさん (スッップ Sd33-wlHu)
2019/01/09(水) 07:48:48.51ID:c4aAB3Aqd >>203
ここC#スレやで
ここC#スレやで
205デフォルトの名無しさん (ワッチョイ 8901-gZzt)
2019/01/09(水) 12:18:51.14ID:fI4baLQf0 >>204
C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました
なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして
C#はusingですけどスコープ内でオブジェクト破棄する機能もusingと呼称してるので混乱しないようにimportと表現しました
なんで2つの記述方法を許しているのか、何か意味があるのか気になりまして
206デフォルトの名無しさん (スッップ Sd33-wlHu)
2019/01/09(水) 12:21:16.40ID:c4aAB3Aqd207デフォルトの名無しさん (スッップ Sd33-wlHu)
2019/01/09(水) 12:21:41.32ID:c4aAB3Aqd C#というかMSBuildだけど
208デフォルトの名無しさん (ワッチョイ 69e3-RM76)
2019/01/09(水) 14:41:58.83ID:2h2JyjUc0209デフォルトの名無しさん (ドコグロ MM63-3T74)
2019/01/09(水) 14:52:14.20ID:TKkGGOqYM >>208
MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる
MediaのcolorとDrawingのcolorが混在してるときはぶっ潰したくなる
210デフォルトの名無しさん (ドコグロ MM63-3T74)
2019/01/09(水) 14:55:45.81ID:TKkGGOqYM pathってファイルパスじゃなくて
曲線かよ死ねよとか
省略形でも違いがあったほうが絶対いい
曲線かよ死ねよとか
省略形でも違いがあったほうが絶対いい
211デフォルトの名無しさん (ワッチョイ 917b-6YBr)
2019/01/09(水) 19:11:30.62ID:5txyXp0A0 >>203
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive
usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている
一般的な呼び名を使わないと調べることすらできなくなるよ
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/using-directive
usingでググればここに理由も呼び分け方(using ディレクティブ)も出ている
一般的な呼び名を使わないと調べることすらできなくなるよ
212デフォルトの名無しさん (オッペケ Sr85-DIji)
2019/01/10(木) 13:13:55.78ID:lMztlpGar >>209
そういうの他にもある
そういうの他にもある
213デフォルトの名無しさん (アウアウウー Sa89-xTYM)
2019/01/10(木) 20:09:22.40ID:9xQ4gBbQa P/InvokeやCOM相互運用を書くときに
System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど
System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ
.Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない
System.Runtime.InteropServices.ComTypes以下の構造体やインターフェースを使う時があるんだけど
System.Runtime.InteropServices以下に同名の物があるから、大体の場合で完全修飾かusing alias directiveが必要になって面倒なんだよなあ
.Net1.1時代の後方互換性のためにObsolete付きで残してあるんだろうけど邪魔で仕方がない
214デフォルトの名無しさん (エアペラ SDe2-42Wh)
2019/01/11(金) 12:39:13.44ID:qc15f1nfD215デフォルトの名無しさん (ワッチョイ 557b-5zJT)
2019/01/11(金) 12:57:28.29ID:RbVY6SmB0216デフォルトの名無しさん (ワッチョイ a57c-Iup+)
2019/01/11(金) 13:29:58.48ID:5RUmP2fm0 スレ間違えたことを嘘に嘘を塗り固めるのは朝鮮人の始まり
217デフォルトの名無しさん (ワッチョイ a161-Fjw0)
2019/01/11(金) 14:37:44.48ID:225AU0sE0 ちょっと教えろください。
int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、
@decimalにキャストして足し算した結果がintの範囲に収まっているかif文で判断
Atry catchで例外をつかまえる
どっちがいいのでしょう?
int型変数二つの足し算でオーバーフローするかどうかチェックしたいのですが、
@decimalにキャストして足し算した結果がintの範囲に収まっているかif文で判断
Atry catchで例外をつかまえる
どっちがいいのでしょう?
218デフォルトの名無しさん (ブーイモ MM71-oec2)
2019/01/11(金) 14:40:44.08ID:86XGb19RM >>217
Bdecimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断
Bdecimalではなくlongにキャストして足し算した結果がintの範囲に収まっているか判断
219デフォルトの名無しさん (ワッチョイ aa08-8shN)
2019/01/11(金) 15:54:41.82ID:r18fheRy0220203 (ワッチョイ dd01-42Wh)
2019/01/11(金) 17:49:49.09ID:1orv+xc30 俺がjavaerという事がバレちまったらしょうがねえ
なんだよusingってよ
vb如きだってjavaリスペクトしてんぞ
なんだよusingってよ
vb如きだってjavaリスペクトしてんぞ
221デフォルトの名無しさん (アウアウエー Sa22-j/vx)
2019/01/11(金) 18:29:52.22ID:KWycMyC0a222デフォルトの名無しさん (ドコグロ MM9d-QFwb)
2019/01/11(金) 18:33:43.65ID:KnmjjSvJM ラップアラウンドとサチュレーションって学生のときに聞いたのが最後だ
223デフォルトの名無しさん (ワッチョイ 7a01-ae4N)
2019/01/11(金) 18:40:14.66ID:fFtOgUz40 すみません、初めて見る構造体が出て来たのですが
[StructLayout(LayoutKind.Sequential)]
struct INITCOMMONCONTROLSEX
{
public int dwSize;
public uint dwICC;
}
これは何構造体と読むのですか?
[StructLayout(LayoutKind.Sequential)]
struct INITCOMMONCONTROLSEX
{
public int dwSize;
public uint dwICC;
}
これは何構造体と読むのですか?
224デフォルトの名無しさん (ブーイモ MM9a-kZrb)
2019/01/11(金) 18:45:24.19ID:1+lzGhU1M つまらん!
お前の話はつまらん!
お前の話はつまらん!
225デフォルトの名無しさん (ワッチョイ d67b-92yO)
2019/01/11(金) 18:46:13.28ID:eF6moy/g0 >>223
https://ufcpp.net/study/csharp/interop/memorylayout/
>Sequentialレイアウトでは、複合型のフィールドは宣言した順序通りにレイアウトされます。
https://ufcpp.net/study/csharp/interop/memorylayout/
>Sequentialレイアウトでは、複合型のフィールドは宣言した順序通りにレイアウトされます。
226デフォルトの名無しさん (ブーイモ MM9a-kZrb)
2019/01/11(金) 18:49:12.65ID:1+lzGhU1M イニシャライズコモンコントロールズイーエックス構造体
227デフォルトの名無しさん (アウアウウー Sa89-xTYM)
2019/01/11(金) 18:51:24.03ID:zVvjOIcHa >>223
構造体名で検索したらInitCommonControlsEx関数が出てくるじゃろ
構造体名で検索したらInitCommonControlsEx関数が出てくるじゃろ
228デフォルトの名無しさん (ワッチョイ 867d-Fjw0)
2019/01/12(土) 00:09:08.43ID:iaJ8ArIE0 VS2017でC#のプログラムを組んでます。
はじめてVS2017を使うのですが、画面の下に
準備完了 ↑ソース管理に追加
という邪魔なバーが表示されてます。
VS2010にはありませんでした。目障りなのでこれを消したいのですが何か方法はありますか?
はじめてVS2017を使うのですが、画面の下に
準備完了 ↑ソース管理に追加
という邪魔なバーが表示されてます。
VS2010にはありませんでした。目障りなのでこれを消したいのですが何か方法はありますか?
229デフォルトの名無しさん (ワッチョイ 4a32-kZrb)
2019/01/12(土) 00:20:55.22ID:Fl9Ups4U0 >>228
ツール->オプション、環境->全般、ステータス バーを表示するのチェックを外す
ツール->オプション、環境->全般、ステータス バーを表示するのチェックを外す
230デフォルトの名無しさん (ワッチョイ 867d-Fjw0)
2019/01/12(土) 00:21:44.23ID:iaJ8ArIE0 >>229
ありがとうございます!!目障りだったんですよね。
ありがとうございます!!目障りだったんですよね。
231デフォルトの名無しさん (ワッチョイ a161-QFwb)
2019/01/12(土) 01:04:45.40ID:CChJ5ept0 色々迷ったけど
オートフォーマットはOFFにした
オートフォーマットはOFFにした
232デフォルトの名無しさん (ワッチョイ 55da-RNo8)
2019/01/12(土) 03:22:33.67ID:S1bCJ3S10 例外処理(に限らず、エラー処理)ってどこまで徹底して行うべきなんでしょうか?
下みたいに、使うインスタンス片っ端から毎回nullチェックとかしてたら、凄まじいコード量になるんですが・・・・・
if(obj == null)
{
return msg;
}
下みたいに、使うインスタンス片っ端から毎回nullチェックとかしてたら、凄まじいコード量になるんですが・・・・・
if(obj == null)
{
return msg;
}
233デフォルトの名無しさん (アウアウエー Sa22-j/vx)
2019/01/12(土) 03:53:00.80ID:ejfouP+Ya >>232
さあ。
でもバグと例外は区別した方がいいんじゃないか。
そのコードは多分バグを想定してるんだよね?
絶対にとは言い切れないが、バグを想定してそれを検出するifは書かないのが普通じゃないか
いやライブラリみたいなものを作ってるならバグを想定して例外を投げるのは普通だけど
さあ。
でもバグと例外は区別した方がいいんじゃないか。
そのコードは多分バグを想定してるんだよね?
絶対にとは言い切れないが、バグを想定してそれを検出するifは書かないのが普通じゃないか
いやライブラリみたいなものを作ってるならバグを想定して例外を投げるのは普通だけど
234デフォルトの名無しさん (アウアウエー Sa22-j/vx)
2019/01/12(土) 03:58:46.63ID:ejfouP+Ya 最後の行は引数のチェックの話ね
■ このスレッドは過去ログ倉庫に格納されています
