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
0091デフォルトの名無しさん (ワッチョイ 1eda-X7My)
垢版 |
2019/07/31(水) 23:27:27.06ID:9TaORHsg0
申し訳ない、コードを見直したら質問の前提を間違えてました

やりたかったのは
List<T> というリストがあった場合に
リストに入っているかわからないオブジェクトaを
リストに入っているオブジェクトbの1つ後に挿入する
…というメソッドを作りたかったんです

List<T>.MoveAfter(T b,T a) //リスト内bの後ろにaを挿入、aがList内にある場合は元の位置から移動させる

で、このメソッド自体の実装はできているんですが
いただいたサンプルのextensionsの記述がよくわからず質問しました
おかげでうまく実装できました、ありがとうございます!
0095デフォルトの名無しさん (アウアウウー Sa09-Mtrx)
垢版 |
2019/08/02(金) 00:52:16.45ID:80wMhccea
最低限IDEで自動ビルドなら慣れれば貧弱な環境も楽しいよ

インテリセンスなんかないから長い識別子をダブルクリック & Ctrl + C ⇒ Ctrl + V
ばっかりしてたら左手が腱鞘炎になっちゃったけどw
0098デフォルトの名無しさん (アウアウウー Sa09-Mtrx)
垢版 |
2019/08/02(金) 14:01:07.04ID:ktX3qXN3a
大昔試用したことあるけどまだ存在するんだw
いい加減タブ化とかしたのかな

しかし、日本人も真面目に作者に金払って使う人結構いるんだね
0099デフォルトの名無しさん (ワッチョイ 6588-n/pF)
垢版 |
2019/08/02(金) 14:48:47.26ID:NmFjjWZQ0
いや秀丸はすげーと思うけど言語解析までするIDEと比較してテキストエディタですら入力補完あるのにコピペ頑張らんでもええやん、って話
タブ化は10年前くらいには対応してたはず

vscodeも良いけど軽さはやっぱ秀丸のほうが良いから今でもちょいちょい起動するよ
0100デフォルトの名無しさん (アウウィフ FF09-ONUK)
垢版 |
2019/08/02(金) 15:14:57.86ID:e58H0HHKF
Nif●y の決済システムってまだ稼働してるんか
最近使ってないから知らんけど
0102デフォルトの名無しさん (アウアウウー Sa09-Mtrx)
垢版 |
2019/08/02(金) 15:47:38.91ID:ktX3qXN3a
xyzzyなら一時期使ってたなあ
道具にこだわるたちじゃないんで、金払ってまで禿丸さんを使う気にはなれなかった
0106デフォルトの名無しさん (アウアウカー Sa91-LmKu)
垢版 |
2019/08/02(金) 22:46:17.18ID:UiHNxeJXa
ここにいる人は趣味プログラマーが多いんかな
本業なんだけど経験ないC#開発もやらないといけなくなったって人も結構いたりする?
0110デフォルトの名無しさん (ワッチョイ 85d2-X2my)
垢版 |
2019/08/03(土) 00:28:08.22ID:3YKHpYYf0
同じく本業。
事前に経験ってほどのものがあったことなんかほとんどないような気がするけどなあ。
最近なら python をやってみたり。これ ruby っぽくてそんなに好きになれそうにないや。C# は大好き。
0113デフォルトの名無しさん (ワッチョイ 1be9-PeK1)
垢版 |
2019/08/03(土) 10:25:21.86ID:QMMl7Yx90
聞きたいこと
ライブラリ内の数値を、メインのプログラムで参照した。

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};
}
のように、代入したいんですけど、うまくいきません。
どうすれば参照できるんでしょうか。
そもそも概念的に間違ってるのかもしれませんが、、、
0114デフォルトの名無しさん (アウウィフ FF09-ONUK)
垢版 |
2019/08/03(土) 10:27:40.91ID:3ia1GLNcF
書き込むスレが間違ってる
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はサフィックスするなって意見もあるが、これは少数派の意見だと思うので
真に受けない方がいいと思う。

ほとんどの場合は付けた方が結局分かりやすいね。
あと、コントロールの変数名だけはハンガリアンを認める人も結構多い。
■ このスレッドは過去ログ倉庫に格納されています

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