X



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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ドコグロ MM2f-DHp5)
垢版 |
2019/07/16(火) 15:36:23.74ID:i1fbuZ/pM
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part143
https://mevius.5ch.net/test/read.cgi/tech/1558002486/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
0122デフォルトの名無しさん (アウアウウー Sa09-Mtrx)
垢版 |
2019/08/04(日) 03:23:55.03ID:jcz7NslOa
そういう話はさすがにスレ違いでプログラマ板でやった方がいいと思うが、
C#に限らずサラリーマンプログラマで1000万越えは少ないだろうね。

フリーランスの優秀な人はもっと貰ってるかもしれない。

意外だろうけど零細企業は景気がいい時は大手より高給が貰えるところもある。
ただいかんせん不安定

プログラマに限らんけど、優秀な人はアメリカにでも行った方がいいね。
日本はいろいろ終わってると思うw
0125デフォルトの名無しさん (ワッチョイ cd02-ONUK)
垢版 |
2019/08/06(火) 17:15:33.24ID:8h96sAQZ0
C言語スレとマルチですが質問がスルーされてるので質問させてください。
コマンドライン引数というのは具体的に何が出来る引数なのでしょうか?
WisdomSoftって入門サイトと苦しんで覚えるC言語って本を読んでるのですがイマイチ何が伝えたいか分かりません。
0128デフォルトの名無しさん (ワッチョイ cd02-ONUK)
垢版 |
2019/08/06(火) 17:37:01.47ID:8h96sAQZ0
>>126
ありがとうございます。
しかしファイルをダブルクリックしても何も起こりません;
読んでるサイトにはD&Dすると白紙のメモ帳にプログラムが書き写されるみたいなこと書いてあるので
試しましたが何もおこらず・・・
使ってる環境VS2019なのですがそれが駄目なんでしょうか?
0132デフォルトの名無しさん (ワッチョイ cd02-ONUK)
垢版 |
2019/08/06(火) 17:44:52.93ID:8h96sAQZ0
>>129
http:ああwisdom.sakura.ne.jpあprogrammingあcあc32.html と
https:ああ9cguide.appspot.comあ17-03.html です
URL禁止みたいなのでスラッシュを置き換えてます。スイマセン
後者に関してはstdin等なんの説明もなく使ってるので更に分からないです
0133デフォルトの名無しさん (ワッチョイ cd02-ONUK)
垢版 |
2019/08/06(火) 17:55:25.38ID:8h96sAQZ0
>>130-131
メモ帳とかを使ってそれを実行できたりしないのでしょうか?
わかり易く解説してサイトとかあったら教えて頂けると助かります;
0135デフォルトの名無しさん (ワッチョイ 6588-n/pF)
垢版 |
2019/08/06(火) 18:11:09.99ID:D2KPblxl0
>>133
関数に引数を渡すのは知ってる?
渡す引数の内容でその関数の動作は変わるよね?
コマンドライン引数はmain関数への引数になる
その引数はファイル名だったりexeを起動する人が入力する文字列だったりする

まずはコマンドライン引数を出力してみて何が入っているか確認しよう
出力先はテキストファイルでもコンソール(stdout)でもいい
0136デフォルトの名無しさん (ワッチョイ 05da-ONUK)
垢版 |
2019/08/06(火) 18:11:12.27ID:ruFXP44J0
>>133
これコンパイルして、以下のようにコマンドライン引数渡して起動してみて。
C:\どっかのフォルダ> MainClass.exe 引数1 引数2 引数3

using System;
public class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("最初の引数は" + args[0]);
foreach(string s in args)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}


バッチ使うなら、exeと同じフォルダに、以下の内容のバッチファイル(***.bat)置いて、バッチファイル起動してみて。
hello.exe 引数1 引数2 引数3
0138デフォルトの名無しさん (アウアウウー Sa09-ONUK)
垢版 |
2019/08/06(火) 18:13:03.10ID:6OOXAacva
>>125
どのスレのどの書き込みがマルチポスト元なの?
質問系のスレならスルーはあまりないと思うけど書き込むスレ間違えてない?
↓のスレあたりで、開発環境やコンパイラー種類、実行している方法などを添えて書き込んで見ればいいんじゃない
C言語なら俺に聞け 152 https://mevius.5ch.net/test/read.cgi/tech/1560763630/l50
スレ立てるまでもない質問はここで 149匹目 https://mevius.5ch.net/test/read.cgi/tech/1529199088/l50
0140デフォルトの名無しさん (オッペケ Sra1-nN+A)
垢版 |
2019/08/06(火) 19:53:18.36ID:fRCzQnxrr
>>139
あまり深く考えたことないけど、それでドロップしたファイル名がとれるのってどこで仕様化されてるのだろ
0142デフォルトの名無しさん (ワッチョイ cbda-hOp9)
垢版 |
2019/08/06(火) 20:16:01.22ID:hi1INabv0
OSの仕様だね
実行ファイルにファイルをドロップすると
ファイルのフルパスが引数になって起動する
複数ファイルドロップするとファイルが全部引数で入る

送る(sendto)フォルダにexeのショートカットを置いて
右クリックして送るとやっても同じ動作をする
0148デフォルトの名無しさん (ワッチョイ 8d2c-v9kR)
垢版 |
2019/08/07(水) 06:57:51.84ID:HD57Pps60
まあコマンドライン引数という言葉は出てるんだからコマンドラインとはこれのことって説明にはコマンドプロンプトを用いる方がわかりやすいかもしれないけどどっちもどっちかなあ
0150デフォルトの名無しさん (エムゾネ FF43-ONUK)
垢版 |
2019/08/07(水) 13:17:43.31ID:+fGjf0jSF
>>140
Win32API なら WinMain の LPSTR lpCmdLine
0152デフォルトの名無しさん (ワッチョイ daad-WJKE)
垢版 |
2019/08/08(木) 01:37:38.81ID:ihcgMCFx0
OSの仕様とAPIの仕様とC言語の仕様がごっちゃになるから
昔より初心者は大変よな。

ただ質問の仕方はジャンル関係ないから
もうちょっと伝わるように書いた方がいいと思うぞw
0153デフォルトの名無しさん (ワッチョイ 5524-iNuD)
垢版 |
2019/08/08(木) 14:29:31.16ID:zX15bpOA0
最も低コストな2点間時間差の測定って何なのでしょうか?
元々DateTime型を利用していましたが、超高精度である必要もなくマシンの長時間稼働で符号が反転することがあるのを承知でEnvironment.TickCountを利用しています。
Environment.TickCountよりも低コストなものはあるのでしょうか?
0157デフォルトの名無しさん (アウアウウー Sa39-fALZ)
垢版 |
2019/08/08(木) 17:25:58.20ID:EGuA/4uga
>>155
兆円単位の資産持ってる人がスーパーの食材の値段を比較するような話で、
意味ないよそんなのw

コストなんかどっちにしろゼロと同じだ
0158デフォルトの名無しさん (アウアウウー Sa39-QI54)
垢版 |
2019/08/08(木) 18:00:45.46ID:tebxUNsfa
>>155
https://referencesource.microsoft.com/#mscorlib/system/datetime.cs,1503
ご覧の通りDateTime.operator -()は
InternalTicksプロパティ内部でのビット論理積各1回と、減算と、TimeSpan型のコンストラクター呼び出し(内部はlong値の代入のみ)だけで
最適化されたら小さな計算だけになると思うんだが
Environment.TickCountを使ったほうが優位な速度差が出ると測定したの?
測定して有意差があってかつ本当に速度を追求する場所ならEnvironment.TickCountはintだけで低コストだろうから使えばいいし
そうでないのなら「早すぎる最適化」について調べればいいよ

>>156
少なくともWPFのTextBoxはUndoLimitプロパティがあって、初期値では無制限になってる
0159デフォルトの名無しさん (ワッチョイ 5524-iNuD)
垢版 |
2019/08/08(木) 20:11:51.79ID:zX15bpOA0
>>158
減算のみだとそこまでの差は無いのかもしれませんが現在のタイムを取得する命令もセットで測定した場合に結構な差が出たため乗り換えました。
具体的にはこのような方法で現在時刻を取得し
int lastTime = Enviroment.TickCount;
DateTime lastTime = DateTime.Now;
下記のようにして指定秒数以上立ったかなどの判定を行っています
if (Enviroment.TickCount - lastTime > 10000) {}
if ((DateTime.Now - lastTime).TotalMilliseconds > 10000) {}
0161デフォルトの名無しさん (アウアウウー Sa39-QI54)
垢版 |
2019/08/08(木) 20:46:23.03ID:tebxUNsfa
>>159
一定時間経過したかをより正確に判定したい、が本当にやりたかったことか
ドキュメントによるとEnvironment.TickCountは「resolutionは通常10〜16ms」とあるけど
DateTime.Nowでは「0.5〜15ms」とあるから
判定1回の処理時間ではなくて、精度を測定したほうが良いと思うよ
Stopwatchクラスは「high-resolution performance counter」を使えるから精度出るんじゃない?
0162デフォルトの名無しさん (ワッチョイ 2588-cVv4)
垢版 |
2019/08/08(木) 23:24:35.70ID:1oNCOrAR0
指定秒数経過の判定で実行パフォーマンスを気にするのが間違ってる
そういうのは秒間1万回処理する必要があるとかいう処理で考えるべき

OS上で動作するからミリセカンドより細かい粒度での正確性はそもそも無理
stopwatch以上の細かい精度が必要ならC#じゃ厳しい

どんな要件か知らんけどそんな細かな精度なくても大丈夫
120FPSのゲームでもフレーム間で80msあるんだから
0164デフォルトの名無しさん (アウアウウー Sa39-fALZ)
垢版 |
2019/08/08(木) 23:57:14.98ID:d0Ff1eN7a
文章読んでる限りそんな頭悪そうじゃないのに
何でそんな部分の最適化は無意味だっていう簡単な事実が分からないのかねw

昔からそういう人一定数いるけどほんと不思議
0165デフォルトの名無しさん (アウアウウー Sa39-PMB1)
垢版 |
2019/08/09(金) 00:05:32.58ID:yqHkFNZaa
>>164
この人が該当するかはわからないけど、発達障害で脳の特性により一般の人よりも拘りが強いという人は珍しくないよ。知能の高低ではなく、引っ掛かるところが普通と異なる。相手に自覚がない場合、いくら理屈で説明しても受け入れてもらえないことが多い。
0167デフォルトの名無しさん (アウアウウー Sa39-sA8b)
垢版 |
2019/08/09(金) 00:50:27.63ID:ENN4/0zza
どうでもいい細部に拘って動けなくなるのは中途半端に知恵がついてきた初心者にありがち
俺も経験あるからわかるわ
そこから経験を積んでいくとスケール感がわかってきて「ゴミは無視」ができるようになってくるもんだけど、
そうならずにどんどん偏屈になっていく人も一部存在する
質問者がそうでないことを祈る
0168デフォルトの名無しさん (ワッチョイ 95da-Azad)
垢版 |
2019/08/09(金) 04:41:46.96ID:S4+H63Q60
どうでもいい細部かもしれないんですが、フォーム名やイベント名は、動詞と名詞どっちを先にするのがいいのでしょうか?
例えばユーザー登録フォームの場合、RegisterUserForm と UserRegisterForm
ユーザーが選択された時のイベントの場合、 SelectUserEvent と UserSelectEvent
どっちがいいでしょうか?
0172デフォルトの名無しさん (ワッチョイ 5524-iNuD)
垢版 |
2019/08/09(金) 11:51:03.15ID:01aaYby70
>>161>>162
具体的にはゲームのスキルクールタイム計算なので、数十ms程度の誤差は別に許容範囲であるため高精度である必要はないと書きました
深刻な回答してくれた方が多いようですが、別に今の方法でボトルネックになってる訳でもなく単純にこれよりベストな方法あるのかな?程度の感覚で聞きました
0173デフォルトの名無しさん (ドコグロ MMa5-sA8b)
垢版 |
2019/08/09(金) 12:13:27.68ID:WHBOK0wDM
ゲームなら共通の世界時計を持っといて各ゲームコンポーネント側でそれに基づいて時間の差分を取るようにするべき
各自が勝手に時間を測るとポーズの実装とかで困ることになるよ
0176デフォルトの名無しさん (ワッチョイ b17c-Azad)
垢版 |
2019/08/09(金) 13:40:04.45ID:VpFvSLvY0
>>165-166
今朝のテレビでコンビニに苦情入れて出禁になったと訴えていた被害者が
まさにそんな感じの人だった
(苦情自体は正当でコンビニにミスがあったのは確かだが
コンビニが謝ってるのにどうでもいいことで納得しないで文句言い続けてた)
0177デフォルトの名無しさん (ワッチョイ 615f-FKxW)
垢版 |
2019/08/09(金) 14:08:51.82ID:vlGdUztx0
ファイルを大量に更新するアプリを作ってるんだけど
クラウドストレージ上でやると同期に問題が多くて困ってる
単一のファイルをディレクトリのように扱えて
可変長・不特定多数のデータをファイル名をつけて格納できる
ライブラリとかないものだろうか

クラウドで同期して別のPCで実行したりするので
環境変数やサーバ構築、DBエンジンのインストールが必要なものは避けて
ポータブル系アプリのようにUSBで持ち運べる実装にしたい

理想は仮想ドライブを動的にアプリ内でマウントして
読み書きさせるような感じ

なにかいい知恵はないものだろうか…
0180デフォルトの名無しさん (アウアウウー Sa39-QI54)
垢版 |
2019/08/09(金) 15:28:17.68ID:ti4i1VCta
>>168
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members#names-of-events
イベント名は動詞か、時制つきの動詞にするのが習慣
既に書かれてるけど UserRegisterd や UserSelected のような名前にするのが一般的かな
命名に困ったら.NET標準のものを参考にするといいよ
>>169 のような「いちいちFormをプレフィックスにする」のは少なくとも.NETにはそぐわない

>>172
> 別に今の方法でボトルネックになってる訳でもなく
やはり「早すぎた最適化」について知っておくべき

>>177
> 単一のファイルをディレクトリのように扱えて
> 可変長・不特定多数のデータをファイル名をつけて格納できる
についてもう少し詳しく
もっともクラウドで同期の問題があるのなら、どんなライブラリを使おうとも大して変わらない気もするけれど
0181デフォルトの名無しさん (ワッチョイ aee9-uprU)
垢版 |
2019/08/09(金) 15:42:32.52ID:l8EdBHZf0
パフォーマンス系の質問に対して無意味系の答えが返ってくるのって質問者も大体織り込み済みな上で質問してるだろうしそれなら返さなくて良いんじゃないかね
ガチの初心者ならまだしも質問者のレス内容的にその辺は分かった上で聞いてるだろう
まぁ初心者スレでパフォーマンスに関する質問する方が悪いとも言えるが
0185デフォルトの名無しさん (ワッチョイ 615f-FKxW)
垢版 |
2019/08/09(金) 17:56:29.89ID:vlGdUztx0
>>183
例えばonedriveだとフォルダ下のファイル数が一定数を超えると
フォルダに警告表示が出て同期できなくなったりする
あと変更箇所のチェックで異様に時間がかかるようになるんだよね
0190デフォルトの名無しさん (アウアウウー Sa39-fALZ)
垢版 |
2019/08/10(土) 14:54:00.10ID:ddvhW9sGa
なんか昨日一日まったく5chにアクセス不能だったけど、
俺の環境固有の問題だったのか普通に書き込んでる人いるなw

>>168
UserRegistrationFormとか?

Formはサフィックスするなって意見もあるが、これは少数派の意見だと思うので
真に受けない方がいいと思う。

ほとんどの場合は付けた方が結局分かりやすいね。
あと、コントロールの変数名だけはハンガリアンを認める人も結構多い。
0191デフォルトの名無しさん (アウウィフ FF39-Azad)
垢版 |
2019/08/10(土) 15:01:33.84ID:/ATKT2HCF
昨日アクセス不能だったのは事実
ただし鯖は生きてたのでDNSの問題
回避できるDNSのアドレス知ってるひとは
そっちに変更して普通に読み書き出来てた
方法は避難所に書いてあった
今は元に戻しても通常通り読み書きできる状態
0192デフォルトの名無しさん (アウアウウー Sa39-fALZ)
垢版 |
2019/08/10(土) 15:36:24.79ID:ddvhW9sGa
>>191
へーそういう状況だったのか
0193デフォルトの名無しさん (アウウィフ FF39-Azad)
垢版 |
2019/08/10(土) 15:40:36.25ID:/ATKT2HCF
ついでに言うとDNSが死んだ原因は
2chを乗っ取った5chのjimの会社が
米の銃乱射の件でテロリスト認定されて
DNSサービスの停止になったってこと
さらにjimは指名手配で逃亡
5chは復旧したけどいつまで続くか判らんω
0195デフォルトの名無しさん (ワッチョイ 2e4a-WAxD)
垢版 |
2019/08/12(月) 10:36:30.39ID:HTWZ+S1Q0
SelectedTextやSelectionStart、SelectionLengthのような機能をカスタムコントロールに付けたいんですが
やっぱりMeasureStringとかでいちいち文字列の長さを測定したりするんでしょうか?
もしくは2次元配列を用意して1文字ずつその文字コードと座標を格納しておくか
0196デフォルトの名無しさん (ワッチョイ 76a7-4xPj)
垢版 |
2019/08/12(月) 10:57:06.87ID:kI0RZN1g0
コレクションに要素が存在するかを判定するとき、Count > 0ではなくLinqのAny()を使う意味ってあるのでしょうか?
可読性のためだけにこちらを使ってるんですかね?
0197デフォルトの名無しさん (ワッチョイ 2117-+P8T)
垢版 |
2019/08/12(月) 11:01:09.66ID:2iL+RtWU0
>>195
TextBoxコントロールを使わないのならそうなるだろうね
等倍フォントなら少しは楽できるけどやることは変わらない
IMEの操作も考えてるんならAzukiっていうエディタコントロールを参考にすると良いよ
0199デフォルトの名無しさん (ワッチョイ 761b-q/Jr)
垢版 |
2019/08/12(月) 11:41:48.29ID:ssrYJHqQ0
>>196
リンクの式はイテレータを返すだけだからCountやLengthのプロパティを持ってない。Count()メソッドがあるけどこれは全件評価が走ってしまうので、最終的に欲しい値が件数の場合以外は使わない。
その状態でイテレータに引っかかるのがあるかどうかを判定する際に使うのがAny()。普通のリストや配列に対してCountやLengthを使わずにAnyを使う意味はない。
0202デフォルトの名無しさん (ワッチョイ 7db0-8lAC)
垢版 |
2019/08/13(火) 15:58:52.24ID:hrddazny0
どこが「初心者用」だよ?って質問と回答ばかりだけどなww
昔は上級者用の質問スレもあったようだが
まあ一つに集約されてるほうが情報収集には便利だけど
スレタイはこっちが気に入ってるし
シャープとフラットをかけてる辺り
0203デフォルトの名無しさん (ワッチョイ 9a7d-X5Lh)
垢版 |
2019/08/13(火) 18:46:02.38ID:PAgqa6Je0
NuGetパッケージの管理より
Seleniumパッケージを最新にしました。

しかし、それから

Chrome は自動テスト ソフトウェアによって制御されています。

という文言が画面に出る様になってしまいました。

options.AddArgument("disable-infobars");

を指定する事でこれまでは、
この様なエラーメッセージは表示されていませんでした。

どうすれば消えますか?
0207デフォルトの名無しさん (アウアウウー Sa39-fALZ)
垢版 |
2019/08/13(火) 20:54:18.53ID:yZEhfFzKa
>>205
すごい字余りの川柳かと思った
0211デフォルトの名無しさん (ワッチョイ 8963-cVv4)
垢版 |
2019/08/13(火) 22:29:42.70ID:4ID4APxI0
>>209
君が解説ブログかけばいいんでは?
てか解説ブログあること前提なの?

リリースノート見るなりソース読むなりすればいいのでは?
できないならなんでバージョンあげたの?
問題出たならバージョン戻せば?
なんのためにnuget使ってるの?
0214デフォルトの名無しさん (ワッチョイ 9a7d-X5Lh)
垢版 |
2019/08/13(火) 23:01:57.10ID:PAgqa6Je0
>>211
常に最新を使った方がいいのかな〜と思いまして。
戻した事がなかったので調べてみます。

この手の技術系は、
詳しい人がブログにまとめてくれてるのでいつもそれらを参考にしています。

>>212 >>213
エヌユーゲット
0215デフォルトの名無しさん (ワッチョイ da2c-8lAC)
垢版 |
2019/08/13(火) 23:10:42.03ID:kJJDzO2R0
漏れは、Ruby で、Selenium WebDriver を使っているけど、

「Chrome は自動テスト ソフトウェアによって制御されています」というメッセージは閉じれるけど、
その部分を閉じても、その幅が消えないから、使える画面が少なくなる
0218デフォルトの名無しさん (ワッチョイ 7d9f-PMB1)
垢版 |
2019/08/13(火) 23:29:34.04ID:mICjniMU0
selenium君はRuby君を反面教師にするといいよ。
スレ違いを繰り返すのがどれだけ他人から見て迷惑でみっともない行為なのかをこれ程上手く伝えられる教材はとても稀だから。
0220デフォルトの名無しさん (ワッチョイ 8963-cVv4)
垢版 |
2019/08/14(水) 01:38:02.43ID:GCJub4Dp0
誘導を無視することは正しいことですか?
ライブラリの問題であって言語の問題ではないから誘導しているのです
使用しているのがC#であっても言語の質問でなければ正しくはありません
問題が言語なのかライブラリなのかわからない人もいるので初めてレスするなら何の問題も無いし、誘導してくれるでしょう

今まで何度誘導を無視しましたか?
長期間、言語ではなくライブラリを起因とする質問を繰り返すのは正しいのですか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況