ふらっと C#,C♯,C#(初心者用) Part144
■ このスレッドは過去ログ倉庫に格納されています
!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 申し訳ない、コードを見直したら質問の前提を間違えてました やりたかったのは List<T> というリストがあった場合に リストに入っているかわからないオブジェクトaを リストに入っているオブジェクトbの1つ後に挿入する …というメソッドを作りたかったんです List<T>.MoveAfter(T b,T a) //リスト内bの後ろにaを挿入、aがList内にある場合は元の位置から移動させる で、このメソッド自体の実装はできているんですが いただいたサンプルのextensionsの記述がよくわからず質問しました おかげでうまく実装できました、ありがとうございます! >>79 他の人も言ってるけど、unityでC#使ってるよ C#自体の勉強ならこれで出来る 当然、WindowsアプリをC#で作れるようなスキルは得られないが c#とvsの至れり尽くせり感に慣れすぎて他の開発環境でできなくなりました そうなんだよなー VSは使いやすすぎる Delphiの開発者を引き抜いてきただけあるわ 最低限IDEで自動ビルドなら慣れれば貧弱な環境も楽しいよ インテリセンスなんかないから長い識別子をダブルクリック & Ctrl + C ⇒ Ctrl + V ばっかりしてたら左手が腱鞘炎になっちゃったけどw 秀丸御殿が建ってる偉大なエディタに対して「ですら」って 大昔試用したことあるけどまだ存在するんだw いい加減タブ化とかしたのかな しかし、日本人も真面目に作者に金払って使う人結構いるんだね いや秀丸はすげーと思うけど言語解析までするIDEと比較してテキストエディタですら入力補完あるのにコピペ頑張らんでもええやん、って話 タブ化は10年前くらいには対応してたはず vscodeも良いけど軽さはやっぱ秀丸のほうが良いから今でもちょいちょい起動するよ Nif●y の決済システムってまだ稼働してるんか 最近使ってないから知らんけど 俺も秀丸とvscodeの併用だね 秀丸は起動が速いから xyzzyなら一時期使ってたなあ 道具にこだわるたちじゃないんで、金払ってまで禿丸さんを使う気にはなれなかった きたああああああああああああああああああああああああああああ https://i.imgur.com/Q7qeopR.jpg >>102 道具にこだわらないのにWindowsは金払ってまで使うんだ ここにいる人は趣味プログラマーが多いんかな 本業なんだけど経験ないC#開発もやらないといけなくなったって人も結構いたりする? windowsはみんな使ってるからこだわってるとは言わない。普通。 >>106 本業だけどWin32から.NETへの移行期はC#の経験ないところから始めたね 同じく本業。 事前に経験ってほどのものがあったことなんかほとんどないような気がするけどなあ。 最近なら python をやってみたり。これ ruby っぽくてそんなに好きになれそうにないや。C# は大好き。 本業C#erだわ 趣味時代はCとかPythonとかやってた 組み込みだけど本業の開発よりc#でGUI作ってるほうが楽しい! 聞きたいこと ライブラリ内の数値を、メインのプログラムで参照した。 arduinoを動かそうとプログラムを書いているのですが、 hoge.h 内に、 enum class Button : uint16_t{ A = 0x0001, B = 0x0002}; というクラスがあります。 これを、 #include <hoge.h> void setup() { const int BtPt[2] = {Button.A,Burron.B}; } のように、代入したいんですけど、うまくいきません。 どうすれば参照できるんでしょうか。 そもそも概念的に間違ってるのかもしれませんが、、、 俺も最近CからC#に移行したんだが、下痢ゲートだとか阿弥陀式とか、ワケ分からないw 1000万越えのC#erはいないのか? てか、そのくらい高額になるともはやコード書く仕事ではなくなるからC#erを名乗らなくなる? そういう話はさすがにスレ違いでプログラマ板でやった方がいいと思うが、 C#に限らずサラリーマンプログラマで1000万越えは少ないだろうね。 フリーランスの優秀な人はもっと貰ってるかもしれない。 意外だろうけど零細企業は景気がいい時は大手より高給が貰えるところもある。 ただいかんせん不安定 プログラマに限らんけど、優秀な人はアメリカにでも行った方がいいね。 日本はいろいろ終わってると思うw そうですね、確かに年収ネタは荒れやすいしすれ違いでした。これでこの話題は終わりにしときましょう。 まあ色々な意味でも終わってるのかもねw この不寛容さの社会を作ってしまった「市民」として責任を少しだけ感じます C言語スレとマルチですが質問がスルーされてるので質問させてください。 コマンドライン引数というのは具体的に何が出来る引数なのでしょうか? WisdomSoftって入門サイトと苦しんで覚えるC言語って本を読んでるのですがイマイチ何が伝えたいか分かりません。 ファイルをダブルクリックされた時に なんのファイルをダブルクリックされたか 知るためなどに使う 関連付けされたファイルをダブルクリックして起動された時などに…だな 言葉が足りなさすぎた >>126 ありがとうございます。 しかしファイルをダブルクリックしても何も起こりません; 読んでるサイトにはD&Dすると白紙のメモ帳にプログラムが書き写されるみたいなこと書いてあるので 試しましたが何もおこらず・・・ 使ってる環境VS2019なのですがそれが駄目なんでしょうか? >>128 その読んでるサイトとやらのURLを見せてみ? >>125 まあなんだ、引数を指定してバッチ起動できるわけよ。 すると引数に応じた処理をすることが出来たりする。 >>125 アプリ実行時に引数で指定した文字列の配列を渡せるだけ それを使って何が出来るかはアプリ次第 >>129 http:ああwisdom.sakura.ne.jpあprogrammingあcあc32.html と https:ああ9cguide.appspot.comあ17-03.html です URL禁止みたいなのでスラッシュを置き換えてます。スイマセン 後者に関してはstdin等なんの説明もなく使ってるので更に分からないです >>130-131 メモ帳とかを使ってそれを実行できたりしないのでしょうか? わかり易く解説してサイトとかあったら教えて頂けると助かります; もしかして実行して一瞬チラッと何か出てすぐ終了する感じ? >>133 関数に引数を渡すのは知ってる? 渡す引数の内容でその関数の動作は変わるよね? コマンドライン引数はmain関数への引数になる その引数はファイル名だったりexeを起動する人が入力する文字列だったりする まずはコマンドライン引数を出力してみて何が入っているか確認しよう 出力先はテキストファイルでもコンソール(stdout)でもいい >>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 >>134 いえ、コードをVS2019で実行して実行画面を出したままデスクトップのメモ帳をD&Dしました >>125 どのスレのどの書き込みがマルチポスト元なの? 質問系のスレならスルーはあまりないと思うけど書き込むスレ間違えてない? ↓のスレあたりで、開発環境やコンパイラー種類、実行している方法などを添えて書き込んで見ればいいんじゃない C言語なら俺に聞け 152 https://mevius.5ch.net/test/read.cgi/tech/1560763630/l50 スレ立てるまでもない質問はここで 149匹目 https://mevius.5ch.net/test/read.cgi/tech/1529199088/l50 >>137 実行画面にドラッグアンドドロップするのではなく実行ファイルにする ファイルの上にファイルをのっけるってこと >>139 あまり深く考えたことないけど、それでドロップしたファイル名がとれるのってどこで仕様化されてるのだろ OSの仕様だね 実行ファイルにファイルをドロップすると ファイルのフルパスが引数になって起動する 複数ファイルドロップするとファイルが全部引数で入る 送る(sendto)フォルダにexeのショートカットを置いて 右クリックして送るとやっても同じ動作をする ダブルクリックとかドラッグ&ドロップよりも dirやpingとかの例から教えてやれよ 説目下手かよw 君は質問者がCUIを知らないとわかった途端に 必死でマウントするタイプっぽいねw まあ文句があるなら君が教えれば良いじゃない OSというかエクスプローラの仕様では? まぁOSみたいなもんだけど macも一緒だっけ? まあコマンドライン引数という言葉は出てるんだからコマンドラインとはこれのことって説明にはコマンドプロンプトを用いる方がわかりやすいかもしれないけどどっちもどっちかなあ プログラミング初心者に PC初心者がいないと思える方が理解に苦しむ >>140 Win32API なら WinMain の LPSTR lpCmdLine 定義なら HKEY_CLASSES_ROOT\exefile OSの仕様とAPIの仕様とC言語の仕様がごっちゃになるから 昔より初心者は大変よな。 ただ質問の仕方はジャンル関係ないから もうちょっと伝わるように書いた方がいいと思うぞw 最も低コストな2点間時間差の測定って何なのでしょうか? 元々DateTime型を利用していましたが、超高精度である必要もなくマシンの長時間稼働で符号が反転することがあるのを承知でEnvironment.TickCountを利用しています。 Environment.TickCountよりも低コストなものはあるのでしょうか? コストの意味によって違う。 プログラム量なのか、費用なのか、所要時間なのか。 C# で無限Undo/Redoが出来るテキストエディタコンポーネントを探してるんですが、 使い勝手がいいものは何でしょうか? >>155 兆円単位の資産持ってる人がスーパーの食材の値段を比較するような話で、 意味ないよそんなのw コストなんかどっちにしろゼロと同じだ >>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プロパティがあって、初期値では無制限になってる >>158 減算のみだとそこまでの差は無いのかもしれませんが現在のタイムを取得する命令もセットで測定した場合に結構な差が出たため乗り換えました。 具体的にはこのような方法で現在時刻を取得し int lastTime = Enviroment.TickCount; DateTime lastTime = DateTime.Now; 下記のようにして指定秒数以上立ったかなどの判定を行っています if (Enviroment.TickCount - lastTime > 10000) {} if ((DateTime.Now - lastTime).TotalMilliseconds > 10000) {} その辺りはDDKの領分だから深入り しない方が吉かも 尚、OSとしての仕様と実際に動作している ハードの仕様の差異もあるし >>159 一定時間経過したかをより正確に判定したい、が本当にやりたかったことか ドキュメントによるとEnvironment.TickCountは「resolutionは通常10〜16ms」とあるけど DateTime.Nowでは「0.5〜15ms」とあるから 判定1回の処理時間ではなくて、精度を測定したほうが良いと思うよ Stopwatchクラスは「high-resolution performance counter」を使えるから精度出るんじゃない? 指定秒数経過の判定で実行パフォーマンスを気にするのが間違ってる そういうのは秒間1万回処理する必要があるとかいう処理で考えるべき OS上で動作するからミリセカンドより細かい粒度での正確性はそもそも無理 stopwatch以上の細かい精度が必要ならC#じゃ厳しい どんな要件か知らんけどそんな細かな精度なくても大丈夫 120FPSのゲームでもフレーム間で80msあるんだから 文章読んでる限りそんな頭悪そうじゃないのに 何でそんな部分の最適化は無意味だっていう簡単な事実が分からないのかねw 昔からそういう人一定数いるけどほんと不思議 >>164 この人が該当するかはわからないけど、発達障害で脳の特性により一般の人よりも拘りが強いという人は珍しくないよ。知能の高低ではなく、引っ掛かるところが普通と異なる。相手に自覚がない場合、いくら理屈で説明しても受け入れてもらえないことが多い。 どうでもいい細部に拘って動けなくなるのは中途半端に知恵がついてきた初心者にありがち 俺も経験あるからわかるわ そこから経験を積んでいくとスケール感がわかってきて「ゴミは無視」ができるようになってくるもんだけど、 そうならずにどんどん偏屈になっていく人も一部存在する 質問者がそうでないことを祈る どうでもいい細部かもしれないんですが、フォーム名やイベント名は、動詞と名詞どっちを先にするのがいいのでしょうか? 例えばユーザー登録フォームの場合、RegisterUserForm と UserRegisterForm ユーザーが選択された時のイベントの場合、 SelectUserEvent と UserSelectEvent どっちがいいでしょうか? >>168 私は旧人なので、まずは Formですよが知りたい(プレフィクス派)ので、 Formユーザー登録 w イベントはイベントハンドラー名そのまま(わざわざ変えない) まあ、全ての時計は独自の時間を刻んでいるので、そもそも一致させるのは不可能だし無駄なんだけどな。 >>168 イベントはUserSelectedが基本じゃないかな >>161 >>162 具体的にはゲームのスキルクールタイム計算なので、数十ms程度の誤差は別に許容範囲であるため高精度である必要はないと書きました 深刻な回答してくれた方が多いようですが、別に今の方法でボトルネックになってる訳でもなく単純にこれよりベストな方法あるのかな?程度の感覚で聞きました ゲームなら共通の世界時計を持っといて各ゲームコンポーネント側でそれに基づいて時間の差分を取るようにするべき 各自が勝手に時間を測るとポーズの実装とかで困ることになるよ 誤差が許容できるんだったらコードから意図が読みとれる奴がベター >>165-166 今朝のテレビでコンビニに苦情入れて出禁になったと訴えていた被害者が まさにそんな感じの人だった (苦情自体は正当でコンビニにミスがあったのは確かだが コンビニが謝ってるのにどうでもいいことで納得しないで文句言い続けてた) ファイルを大量に更新するアプリを作ってるんだけど クラウドストレージ上でやると同期に問題が多くて困ってる 単一のファイルをディレクトリのように扱えて 可変長・不特定多数のデータをファイル名をつけて格納できる ライブラリとかないものだろうか クラウドで同期して別のPCで実行したりするので 環境変数やサーバ構築、DBエンジンのインストールが必要なものは避けて ポータブル系アプリのようにUSBで持ち運べる実装にしたい 理想は仮想ドライブを動的にアプリ内でマウントして 読み書きさせるような感じ なにかいい知恵はないものだろうか… ただの質問から人格攻撃にまで発展してる奴の方が妄想癖ありそうで怖いわ なんかC#スレやVSスレって変な奴増えてきてるな >>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 > 単一のファイルをディレクトリのように扱えて > 可変長・不特定多数のデータをファイル名をつけて格納できる についてもう少し詳しく もっともクラウドで同期の問題があるのなら、どんなライブラリを使おうとも大して変わらない気もするけれど パフォーマンス系の質問に対して無意味系の答えが返ってくるのって質問者も大体織り込み済みな上で質問してるだろうしそれなら返さなくて良いんじゃないかね ガチの初心者ならまだしも質問者のレス内容的にその辺は分かった上で聞いてるだろう まぁ初心者スレでパフォーマンスに関する質問する方が悪いとも言えるが >>177 データベースのblobにファイルを突っ込むのが一番手っ取り早いが、速度や効率はまあ... つか、クラウドストレージでやると同期の問題ってどんな問題か気になる >>177 サーバー型のDBがだめならsqlite使えば? >>183 例えばonedriveだとフォルダ下のファイル数が一定数を超えると フォルダに警告表示が出て同期できなくなったりする あと変更箇所のチェックで異様に時間がかかるようになるんだよね zipだと圧縮されている10万ファイルのうち 1個変更しただけでも再圧縮が必要にならない? あ、ごめん zipって結構柔軟性あるんだね 削除も追加もできそうだしやってみる sqliteも試してみる ありがとね >>177 OLE複合ファイルってのがwindows標準 只、私ならZipで実装するね なんか昨日一日まったく5chにアクセス不能だったけど、 俺の環境固有の問題だったのか普通に書き込んでる人いるなw >>168 UserRegistrationFormとか? Formはサフィックスするなって意見もあるが、これは少数派の意見だと思うので 真に受けない方がいいと思う。 ほとんどの場合は付けた方が結局分かりやすいね。 あと、コントロールの変数名だけはハンガリアンを認める人も結構多い。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる