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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2317-qMUn)
垢版 |
2018/12/15(土) 11:07:07.89ID:0aSEF/I+0
!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
2018/12/20(木) 12:18:04.50ID:7E7fQupi0
Microsoft自身もWindows Defenderとかタスクスケジューラ依存だから、たぶんこれが一番簡単で安定した方法なんだろうな
2018/12/20(木) 12:26:42.26ID:As7dWUw1M
>>66-69
まずはケースバイケースという言葉を覚えような
自分の狭い範囲で語られても困る
2018/12/20(木) 12:45:20.47ID:04IBENLFM
>>71
ここは初心者スレ
どうせ何が善い方法かなんて本人に判断つかないんだから、余計な選択肢は質問者を混乱させるだけ
ベストプラクティスさえ示してやればよい
2018/12/20(木) 13:03:15.38ID:IXBzuTcop
初心者スレだが初心者以外の人の方が見てるようなスレ
2018/12/20(木) 14:44:10.36ID:uRkd43kpd
>>71
ケースバイケースを考えられる奴は質問なんかしないだろう。
まずはタスクスケジューラ、
サービス化するとしてもタスクスケジューラから蹴った方がいい、
そんなに変な事言ってるか?2択と対して変わらん事言ってるつもりだが。
2018/12/20(木) 15:02:05.47ID:VX0mwZrMM
あーはいはい、永遠の初心者はC#なんか使わずに一生javaでもやってろ
2018/12/20(木) 18:31:34.13ID:As7dWUw1M
>>72, >>74
自称玄人の狭い世界を押し付ける方が混乱するわ
タスクスケジューラからサービス蹴るとかを初心者に薦めるとかバカすぎる
2018/12/20(木) 19:28:02.27ID:7wwBVLN+0
>自分の狭い範囲で語られても困る
ブーメラン
2018/12/20(木) 19:38:18.98ID:m/IwfhEsM
大抵の人は最初なんでもモノリシックに作ろうとして、スケジューリングと処理は分けたほうがよいことに自分なりに気付くもんだよね
分けるのダサいと思ってた時期は俺にもあったわ
2018/12/20(木) 20:16:11.98ID:hwNgEKL00
>>77
俺は押し付けなんてしてないけど?
またバカ晒しちゃったね w
2018/12/20(木) 20:40:15.88ID:uRkd43kpd
>>76
玄人だって言った?
ってかタスクスケジューラからサービス蹴るってそんなにハードル高くないでしょ。
メッセージ送るなり、サービスでFileSystemWatcherでフォルダ監視して、投入はキューファイル作ってでも良いし。
後者は初心者でもすぐ思いつくし実装できる話だと思うけど。

もしかして自分が出来ないから初心者に勧めるなとか言ってる?
2018/12/20(木) 21:03:45.16ID:6fpTh5DCa
何を争ってるのかさっぱり分からんけど、双方とも少しも
建設的な意志がないことだけは確実に分かるねw
2018/12/20(木) 21:05:21.53ID:tgiqyGLQ0
OSに近い所まで楽チンに触れるのがC#の利点の一つ
だと思うけどな。
タイマー使って指定ディレクトリの監視とかはすぐ思い付くでしょ
2018/12/20(木) 21:40:42.01ID:hwNgEKL00
>>80
> 玄人だって言った?
ひょっとして揶揄って言葉を知らんのか? w

> ってかタスクスケジューラからサービス蹴るってそんなにハードル高くないでしょ。
ハードル以前に送出側も作れとかアホすぎる…
2018/12/20(木) 21:48:42.95ID:uRkd43kpd
>>83
玄人だって言った?って揶揄なんだけど。
馬鹿すぎてブーメランまた投げてるよ?

送出側って簡単だよね。FileSystemWatcherならファイル置くだけだし。バッチファイルでも良いじゃん。

自分が思いつかなかっただけならそろそろ黙ったら?
2018/12/20(木) 22:12:15.97ID:hwNgEKL00
せめて揶揄の意味ぐらい調べてこいよ…
マジで恥ずかしすぎる
2018/12/20(木) 22:27:04.44ID:6LmbwAzu0
お前らなにカリカリしてんの?
2018/12/20(木) 22:34:02.07ID:uRkd43kpd
>>85
で、送出側作るのは難しいの?
恥ずかしいね。
2018/12/20(木) 22:46:47.72ID:hwNgEKL00
>>87
日本語理解できないの?
ハードル以前の話って書いてあるんだけど?
なぜそんな面倒なことを初心者にさせようとするのか意味不明なんだが
2018/12/20(木) 23:07:10.16ID:7wwBVLN+0
>>86
いつものキチガイだからNGしとこう
ほら早速ワッチョイが役に立ったぞ
2018/12/20(木) 23:43:42.93ID:uRkd43kpd
>>88
無意味だと思ってるのはお前ができないからかつやる必要があるパターンが頭に浮かんでないかだろw
意味不明なのはお前が低レベルだからだよ。
2018/12/21(金) 05:06:11.42ID:PkTs+Gix0
>>90
初心者にとってそれがベストプラクティスだと言い張るなら根拠書けばいいんじゃね?
書けるならね w
2018/12/21(金) 20:36:29.06ID:ulAOiHZ/0
便乗で質問です。
ログインしてない状態で指定時間になったら指定のユーザーでログインしてブラウザでスクレイピングしたいです。
サービスやタスクから適当なユーザーでログインするにはどうしたらいいでしょうか?
2018/12/21(金) 20:59:56.18ID:rOLcewoyM
もっと具体的でないと回答しようがないかな
ログイン認証はWebサーバー側の話ならローカルアカウント
関係ないし
ローカルアカウントの話ならグループポリシーでサービス起動
出来るようにするのが一般的だったけど
OSのバージョンやADが有効なら出来ない場合もあるよ
2018/12/21(金) 21:01:24.25ID:ZKr5QUU1a
>>92
どうもこうも、それ最初からタスクスケジューラーのオプションに入ってるんじゃないの?
http://www.atmarkit.co.jp/ait/articles/1307/08/news101.html
2018/12/22(土) 11:16:46.77ID:GEVjlJLSd
>>92
タスクスケジューラで、誰として実行するか決めれる。

タスクスケジューラ否定してる奴らは、タスクスケジューラ使って言ってるんだろうか?
2018/12/22(土) 11:47:17.60ID:h0Ytd2ZqM
誰も否定してないと思うが?
どれをそう感じたんだろう?
2018/12/22(土) 13:29:07.95ID:MYt604IR0
3日間もこの話を続けてるのか

よく飽きないねーガイジか?
98デフォルトの名無しさん (ワッチョイ abeb-6UAB)
垢版 |
2018/12/22(土) 15:43:19.97ID:UXm6+Rqz0
こういう質問者って解決の道筋を知りたいんじゃないんだよ
WindowsのこともC#も学習する気はまったくなくて、代わりにコードを提示して欲しい人なんだ
なので、「タイムスケジューラ+コードは自分でかけ」とか「自分で書いたコードをサービス化しろ」と回答しても無駄なんだな
誰かが代わりに希望のツールを作ってあげるまで延々と同じ質問をすることになっちゃう
2018/12/22(土) 16:05:02.26ID:3FbstdN40
今回のは質問者そっちのけで外野が暴走しただけだろ
100デフォルトの名無しさん (ロソーン FF59-1q7i)
垢版 |
2018/12/22(土) 16:17:42.75ID:iZWJkg8TF
いつもだな
2018/12/22(土) 16:45:04.92ID:8eMfHdb50
いつも同じなのは、問題起こすのが特定の一人なんだろうね
2018/12/22(土) 16:48:01.85ID:ejexDqVG0
特定の二人の間違いでは?
2018/12/22(土) 16:59:24.98ID:Bf3FfKs00
昔はそういうの参戦してたけど
俺が最強だとわかってからは興味がなくなった
2018/12/22(土) 17:01:56.44ID:h0Ytd2ZqM
そろそろ魔板でやって欲しい今日この頃
105デフォルトの名無しさん (ワッチョイ abeb-6UAB)
垢版 |
2018/12/22(土) 17:19:54.74ID:UXm6+Rqz0
え?これ、便乗を装った本人じゃねえの?
2018/12/22(土) 18:58:25.03ID:8REvBzyR0
一つのメソッドに処理A、処理B、処理Cがあるんだけど、処理〇と区別できる時点でメソッドとして扱うべきなんかね?
2018/12/22(土) 19:03:13.59ID:RR6G3DDfa
やってることに意味があり、それに名前が付くなら分ける
個人的には〇〇処理と名前が付くのはメソッドの単位としてはむしろ大きめ
単独で意味のある最小単位まで分けるのが理想
2018/12/22(土) 19:59:35.81ID:Bf3FfKs00
何を言ってるのかさっぱりわかりませんから設計書を書いてください
2018/12/22(土) 21:08:41.95ID:la2rnvqna
>>106
馬鹿の一つ覚えの教条主義はよくない

分けた方がそのメソッドの可読性が上がるなら分ける。
可読性に寄与しないなら無理に分けちゃダメ。
なぜならクラス全体の視点ではメンバーは少ない方がいい。
2018/12/22(土) 23:25:46.03ID:RR6G3DDfa
メソッドの可読性ってセンスが求められるからなあ
端的に言えば、そのメソッド呼び出しを見たときに、その中身をいちいち見に行かなくてもコードを理解できるかどうか、が全てだ
それができるならどこまで細かく分けてもいいし、できないなら分けないほうがマシ
処理の流れがわからんからサブプロシージャやめろおじさんの言い分も、低レベルな現場なら極めて正しい
2018/12/23(日) 00:20:31.69ID:pgnM6zpMM
そうだよな。calcって名前のメソッドがあれば計算していることはわかる。
2018/12/23(日) 00:30:49.90ID:iOIA70EQ0
とは言え、ループが把握できる大きさに抑えるのは大事
メソッドの処理の流れが見える範囲に大きさコントロールするように心がけているな
2018/12/23(日) 00:40:03.70ID:THpahYm7M
>>111
場合によるだろ
「多角形の面積」クラスのcalcメソッドを呼び出してたら面積を計算してるのは明らかであり、面積の計算方法に関心がない限りは中を見る必要はない
それが「多角形」クラスのcalcメソッドだったら意味不明だろう
極端な例だけど、そういうのってセンス無い奴は本当にセンスないから
2018/12/23(日) 00:44:44.37ID:744F4yO+0
まあそういうところに日本語のコメント書いとけばすむ話だな。
命名センスないからな。自分。。
2018/12/23(日) 00:55:46.55ID:iOIA70EQ0
メソッド名はわかり易さより英語として恥をかかない程度の単語かどうかってのを気にするな
後で見られたときに笑われたくはない
簡単な単語でもスペルはチェックする
2018/12/23(日) 08:07:40.95ID:Qo063XKD0
日本語でも良いよ
2018/12/23(日) 08:42:15.02ID:+g/rmc35M
全角文字でもOK
2018/12/23(日) 09:14:34.28ID:Ap3NimBD0
絵文字もok
2018/12/23(日) 19:57:25.95ID:6n30X/gf0
おかわりもOK
2018/12/24(月) 01:28:35.64ID:bmrfjFY/0
長さが10,15と異なるList<string>が2つあって10のListの値を15のListに先頭から埋めていきたいんだけど、ListでArray.Copyメソッドみたいなのないのかな?
2018/12/24(月) 01:53:50.78ID:JltPtxYxa
>>120
a10 = a15.GetRange(0, a10.Count);
ボトルネックでないならこんなんで十分
2018/12/24(月) 02:02:57.20ID:Z+6dfbfKa
120がやりたいのは要素の置換じゃないの?
まあ、組み込みの方法は用意さえてないので自分で書くしかないよね
2018/12/24(月) 02:11:14.58ID:Gf2UgbH0M
インプレースで置換する必要があるなら a10.Clear(); a10.AddRange(a15.Take(a10.Count)); でいいよ
少々非効率だがどうせこんなもんボトルネックにはならん
2018/12/24(月) 02:17:03.76ID:+5I2QCyu0
15の方にコピーしたいって言ってるのに逆ばっかじゃねーか
偉そうに答える前に日本語の読み方を覚えろよ
2018/12/24(月) 07:24:20.71ID:zs7tYDO50
ワラタ
2018/12/24(月) 07:24:47.31ID:zs7tYDO50
ガイジばっかだな
2018/12/24(月) 08:28:00.92ID:KFYgg8m6M
よく見ると逆ですらない
121はa15の先頭から10要素のリストだし
123はa10.Clear()後にa10.Countを参照してるので、実行後のa10は空だ
2018/12/24(月) 08:30:42.16ID:zs7tYDO50
ガイジの宝石箱かよ
2018/12/24(月) 08:35:25.17ID:APgc2n6m0
>>123
Clearしていいの?
2018/12/24(月) 08:42:01.70ID:APgc2n6m0
>>120は、こういうことなんだよな??

https://ideone.com/IBD8SG
2018/12/24(月) 17:58:02.29ID:0GmOXyNR0
>>127
うける
2018/12/24(月) 21:29:07.13ID:wShZDi2Q0
a15=a10.AddRange(a15);
で良くね?
2018/12/24(月) 22:49:22.82ID:kvP3AY+C0
a15は.Skip(a10.Count)が必要だしAddRangeは返値voidだし
a10が破壊されるのは気持ち悪すぎる せめて.Concatでやって
2018/12/24(月) 23:00:49.18ID:BVW7JO960
a10.Select((v, i) => i).ToList().ForEach(p => a15[p] = a10[p])
2018/12/25(火) 05:37:13.78ID:o3bLdzU90
質問です
applicationSettingsBaseを使って設定を保存したソフトのフォルダを移動したところ
設定がすべて消えてしまいましたが仕様でしょうか。
これを回避するためにはソフトと同じフォルダにiniを作るなどして設定を保存しないといけないでしょうか。
2018/12/25(火) 08:31:43.73ID:Pk7gkPrC0
SettingsProviderを自作すれば保存場所は変えられなかったか
2018/12/25(火) 12:19:27.12ID:H2h1tiNca
>>135
ApplicationSettingsBaseなんて使ったことないのでいい加減に言うけど、
普通に考えれば保存場所は起動したバイナリのパスになんか依存しないはずだと思うけど

http://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
ここにも書いてあるけど、バージョンとか製品名とかアセンブリの属性を何か変更したから
保存場所も変わったんじゃないの?
2018/12/25(火) 12:21:30.96ID:H2h1tiNca
ごめん>>137は訂正
俺の記憶違いで、記事にはバイナリのパスにも影響されると書いてあるねw
2018/12/25(火) 12:25:14.95ID:yMEv05zrd
>>137
いいえexeの絶対パスが変わると保存先も変わります
知らないなら適当に答えるなよ
2018/12/25(火) 12:49:04.91ID:H2h1tiNca
いいえ私はさそり座の女〜
2018/12/25(火) 20:05:08.93ID:C73Cga6+0
C#スレが伸びてるけど、unityのおかげ?
2018/12/25(火) 20:36:10.99ID:bRmFmcZ5r
いいえ
2018/12/25(火) 20:49:56.13ID:wyvxpdNe0
設定の保存ならjson.net使ったほうが幸せになれるね
2018/12/25(火) 22:00:49.69ID:nl4zamMYa
>>143
保存時のフォーマット?
2018/12/25(火) 22:03:32.60ID:cYaw21oJ0
イニファイルにしとけ
イニファイルにな
2018/12/25(火) 22:20:50.60ID:NRydG5TYM
Windows用語ではプロファイル
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();
}
}
2018/12/26(水) 07:14:08.48ID:H45VhGP50
>>148
stringはほとんどの場合毎回新しいインスタンスが作られるから、代わりにStringBuilder使ってみ
2018/12/26(水) 07:18:31.50ID:H45VhGP50
あとたぶん普通はこれ
https://dobon.net/vb/dotnet/programing/converthex.html#section7
2018/12/26(水) 07:35:37.09ID:gklwQdG7M
遅いっつっても一瞬じゃない?
たかが32bit整数くらいで。
試してないけど
2018/12/26(水) 09:33:17.59ID:Ts4c5NN9M
Stringは吃驚するほど遅いよ
2018/12/26(水) 10:28:31.49ID:yGWBBV+aM
遅いっつっても一瞬じゃない?
2018/12/26(水) 11:19:21.70ID:pZkVuIQAd
>>153
ループ一回ならね
2018/12/26(水) 12:39:12.50ID:UFWOb61Ja
>>150
Convertのそんなのあったな感w
でもこれゼロサプレスされるみたいだな。
まあリーディングゼロ付けるのは簡単だけども
2018/12/26(水) 19:06:58.35ID:Dcs5aUpT0
Windowsフォームアプリケーションで、
「ボタン上をドラッグしてる間(左クリック押下中、かつボタン上にカーソルがある時)」に音を鳴らしたいんだけど

Button1.MouseDownで再生、Mouseupで停止させるまでは出来ても

MouseLeaveに停止処理書いて、クリックしたままボタンからカーソル外したときには音がなり続けてしまいます

どういう記述がいいんでしょうか?
2018/12/26(水) 20:13:17.23ID:/gJf0JvK0
>>156
クリックしたままだとMouseLeaveが動かないみたいだな
https://ideone.com/c67R3i
これは音を鳴らす代わりにフォームのタイトルにMouse On/Offと表示する
MouseDownとMouseMoveでカーソルの場所を見てボタンの範囲外だと無条件でOffにする
イベントとしてのMouseLeaveは外せそうな気がするしフラグ作ってもっと作りこめると思うけど面倒だからここまで
2018/12/26(水) 21:13:57.82ID:0HU+mpFl0
ありがとうございます!
入門したて故コード読んでも理解できないけど、丸写しからの改変で勉強しながらやってみます
2018/12/26(水) 21:40:59.20ID:sOj8GKWaa
>>156
やらずに適当に言うけど、MouseDownのイベントハンドラか何かで
Captureの値をfalseにしてやったら望んでるような動作になるんと違う?
160デフォルトの名無しさん (ワッチョイ 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 に該当するフォルダはどこに作ったらいいんでしょうか?
特にビジネスロジック部分はどこにまとめるのがいいのでしょうか?
2019/01/03(木) 05:32:43.60ID:ZmWGvR5ia
splitcontainerのpanel1に30個程度のボタンを設置し、それらは一つのイベントハンドラにまとめてて
押したボタンの色を変えるということをしようとしています

splitContainer1.Panel1.Controls[●].backColor = Color.Red ;


●の位置に入る数字はどのボタンと対応しているかがイマイチわかりません。
タブインデックスの数値とは別のようですし、どの数値の事を言っているのでしょうか。
2019/01/03(木) 06:22:31.48ID:2jZ78iU60
>>161
期待通りの回答じゃないかもしれないけど、これでもいいんでは?
protected void button_Click(object sender, EventArgs e)
{
((Button)sender).BackColor = Coler.Red;
}
2019/01/03(木) 09:33:34.04ID:mzbwP5/d0
>>160
dotnet new
2019/01/03(木) 09:49:03.47ID:92o1UEKg0
>>160
dotnet new mvc
ASP.NET Coreは3.0以降でfull .NET Frameworkを切り捨てるから、必ず.NET Coreを使うように
2019/01/06(日) 07:48:04.81ID:ys0B5FJg0
>>148
遅い原因は
>string input = Console.ReadLine();
じゃね?
ユーザーが全文字入力するのをぼんやり待ってないで
1文字でも入力された時点でその桁に関する処理を開始しとかないと
2019/01/06(日) 10:33:12.47ID:ijGp0fE40
>>165
>>149で解決すると思ったけど、その最後の行の実装例出せる?
2019/01/06(日) 10:50:54.92ID:SZQOw9ve0
>>166
件のプログラムで一番処理時間が長いのは起動だと思うから
実際にはその程度やっても変わらんでしょ
2019/01/06(日) 13:46:05.21ID:s+NsL/70M
>>165てネタじゃなかったのか?
2019/01/06(日) 15:10:03.44ID:yoKg5XOLM
何でもかんでもまずネタだと考えるのやめた方がいいですぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。