C#, C♯, C#相談室 Part95

レス数が1000を超えています。これ以上書き込みはできません。
2017/10/17(火) 04:02:10.51ID:/jJUZ/t7
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/

■コードを貼る場合はこちら
http://ideone.com/

■前スレ
C#, C♯, C#相談室 Part94
http://mevius.2ch.net/test/read.cgi/tech/1492843013/

■次スレは>>970が建てる事
建てられない場合は他を指定する事。
2018/04/28(土) 19:24:42.35ID:tYpDSl3W
デメリット無いんだからワッチョイ有りでいいよ。
2018/04/28(土) 19:36:02.31ID:Or52BkbK
ワッチョイ有りはもう立っているんだから付けて立てたら重複だ
ふらっとに頭のおかしいやつ行かないようにここで囲っててくれ
2018/04/28(土) 20:08:26.34ID:sp22eYvn
勝海舟は「憂国の士を自称する連中が国を亡ぼす」と言ったそうだけど、スレも同じだね。

荒らしてる奴に限って自分が荒らしだと思ってないどころか、
逆に俺はスレを憂いてるんだとか盛大に勘違いしてるのな

お前がいなくなるのが一番スレのためだってw
2018/04/28(土) 22:25:56.27ID:RM9Dr2N8
>>910
1週間NGに入れられるから便利ってだけだよ
規制ってなんのことさ
2018/04/28(土) 22:27:08.21ID:RM9Dr2N8
何か妙だな
1週間NGの効果が続くから、だ
2018/04/28(土) 22:30:51.56ID:RM9Dr2N8
まあしかしこのスレには要らない気がするぜ
ゴミ棄て場は必要だからな
2018/04/29(日) 07:55:16.57ID:JHpKH8Au
マウスカーソルの位置を0.1sec置きぐらいに全部取得したいんだけど、
終了時刻は決まってないので配列で宣言し難い。
これってDictionaryとかに入れていけばいいのかな?

x,y座標と時間の3変数になるんだけど、
時間をkey noにしてx,yを紐づけるみたいな感じでOK?
time,xとtime,yの二つのDictionaryを作る。

なんかすごく冗長な気がする。
time, x, y
みたいなDictionaryってできないのだろうか・・・。
2018/04/29(日) 08:01:26.21ID:bEJanFfq
最大時間は決めといた方がいいんじゃないか
2018/04/29(日) 08:53:02.78ID:OzeULG5c
イベントそのまま記録すりゃいいじゃん。
2018/04/29(日) 08:59:57.28ID:lPGHHBCx
時間をキーにする意味がないだろ
普通にList<(DateTime time, int x, int y)>でいい
2018/04/29(日) 09:14:45.53ID:hkCcAsD/
>>920と同意見だな
2018/04/29(日) 12:15:32.77ID:ybi7BJyI
>>920を見てC#って匿名型のList<T>を簡単に作れる新しい構文ができたのかと
思ったが、そんなものはなかったw

あと、調べてないがDateTime.Nowの精度は恐らく秒単位だと思う。

だから時間は記録開始かまたは先頭のデータからのオフセットをms単位で
記録するとかの方がいいだろうねたぶん。
2018/04/29(日) 12:21:08.09ID:HygKsgep
イベントを
観測すれば
いいじゃん
2018/04/29(日) 12:23:38.33ID:C1GLMYpS
>>922
DateTimeプロパティにMillisecondあるから。DateTime.Nowでも取り出せる
https://msdn.microsoft.com/ja-jp/library/system.datetime(v=vs.110).aspx
>>917
Dictionary<DateTime,Point>じゃ嫌なのか?
2018/04/29(日) 12:24:11.68ID:jYKkSI/h
そういう場合は構造体に包んで扱うと良いよ

public struct Cursor{
 public float x;
 public float y;
 public int frame;

 public Cursor(float x, float y, int frame){
  this.x = x;
  this.y = y;
  this.frame = frame;
 }
}

// コレクションを生成
var list = new List<Cursor>();

// 追加する
list.Add(new Cursor(x, y, frame));

あとマイクロ秒を後で使う予定がなければフレーム番号で保持するのが妥当だと思う
2018/04/29(日) 12:30:41.68ID:Lyi0qr1Q
>>922
いや今のC#は>>920は通るぞ
タプルだ
2018/04/29(日) 12:41:33.60ID:ybi7BJyI
>>924
データ型にms単位になってるからってHWがその精度を持ってるかどうかは別問題w
RTCは歴史的にそんな精度を持ってないw

>>926
ああ、そうなのか
名前知ってるだけで全然使ったことないから知らんかった
2018/04/29(日) 13:09:54.51ID:OzeULG5c
精度保つ外部dllあったよな?
2018/04/29(日) 16:10:14.56ID:fd7fEVW6
>>927
知ったかさん乙
現在時刻をRTCから取得するOSなんてほぼないぞ
2018/04/29(日) 20:24:15.50ID:eBkQOB0i
>>929
アホだ
2018/04/29(日) 20:38:40.73ID:6lMTeXx2
ほぼw
2018/04/29(日) 21:19:58.30ID:PLWWKE1O
ほぼほぼ警察です
ほぼほぼ言ったら殺します
2018/04/29(日) 22:33:17.87ID:SwdLMJM1
>>928
それはそういう質問?
>>917の質問に関して言えば「0.1sec置きぐらい」って書いてあるからそんなきっちりの時刻精度求めていない気がする
精度に関しては下の記事
https://answers.microsoft.com/ja-jp/windows/forum/windows_10-performance/windows10%E3%81%AE%E6%99%82%E8%A8%88%E7%B2%BE/2cd3c47c-5359-4c1e-a1db-23f24feca338
精度保つ外部dllはわからない。NTPで適度に合わせるくらいしか思いつかない
2018/04/29(日) 23:32:24.12ID:fd7fEVW6
>>930
マジで言ってるの? w
RTCから読み出すのはブート時だけやぞ
2018/04/30(月) 01:56:37.76ID:JUUDfCG9
動画や音声再生するのにより正確なタイムチックが必要なアプリは山ほどあるし、実現してんぞ。
2018/04/30(月) 11:14:45.39ID:pQkdgjal
質問にない事は答えなくて結構です
ありがた迷惑
2018/04/30(月) 11:20:09.20ID:SUgALGkv
ほら、彼ら少し頭おかしいからさ
許してやってくれないか
2018/04/30(月) 11:42:52.93ID:kqITcJnL
RTCは頻繁にアクセスするには遅すぎるデバイスだからOS起動後の時計はタイマー割り込み駆動だよ
2018/04/30(月) 12:09:14.35ID:Y7BLr8PP
いろいろありがとうございます。
終了時刻が決まってないからlistとかかなとおもったんですけど、
構造体の方がよさそうですね。
試してみます。
2018/04/30(月) 12:11:05.06ID:Y7BLr8PP
それとは別にc#で
List<(DateTime time, int x, int y)>
みたいな複数の変数を扱うことってできるのでしょうか?
var list = new List<int>();
みたいに一つの変数だけなのかと思ってました。
これができるといろいろ便利そうなのですが・・・。「

List<(DateTime time, int x, int y)>
って入力してもエラーが返ってくるんすよね。。。
2018/04/30(月) 12:16:44.53ID:qiywFwa+
過去に囚われているとそうなる
2018/04/30(月) 12:18:15.00ID:jCS06HlL
ValueTupleのListじゃないの?
2018/04/30(月) 12:19:53.98ID:DJ94RjpX
>>940
VSのバージョンが古いんだろ
VS2017でないとダメ
2018/04/30(月) 12:22:51.08ID:EoSvsvu6
VS2017かつ、NuGetでSystem.ValueTupleを参照する必要がある
2018/04/30(月) 12:34:43.28ID:GCfeJpPr
タプルの利用には、ValueTuple構造体という型が必要になります。 この型が標準ライブラリに取り込まれるのは .NET Framework 4.7、.NET Standard 1.7を予定しています。 それ以前のバージョンでタプルを使いたい場合には、以下のパッケージを参照する必要があります。

System.ValueTuple
2018/04/30(月) 12:53:56.38ID:Y7BLr8PP
なるほど
System.ValueTuple
ですね。
試してみます。
ありがとうございます。
2018/04/30(月) 12:56:22.44ID:Y7BLr8PP
また初歩的な質問で申し訳ないのですが、
C#のクラスと構造体で、これまで軽量のオブジェクトでもすべてクラスで作成していたんですが、
あまりお作法的には宜しくないんでしょうか?
2018/04/30(月) 12:56:51.66ID:Y7BLr8PP
なんとなく構造体はクラスの下位互換みたいなイメージで使用していませんでした。
2018/04/30(月) 13:48:36.78ID:EYWg1Al3
応用アプリケーションなら全部クラスでいいよ
構造体は構造体のメリット・デメリットを全て把握した上で、構造体のほうが良い選択であり、将来に渡って絶対にクラスに変更したくならない、と確信できる場合に使うもの
そんなケースは滅多にない
あ、PInvokeは例外な
2018/04/30(月) 15:01:14.38ID:JUUDfCG9
C#上の構造体はクラスと等価だ。
つか、構造体で使う共通処理をまとめてそこに突っ込め。
ほら、使い易くなっただろ?
構造体なんか使わずクラス使え。
2018/04/30(月) 15:27:50.05ID:o2UdIGt2
>>950
おばかwww
952デフォルトの名無しさん
垢版 |
2018/04/30(月) 15:59:18.84ID:tgxaKODO
structは値型として扱われるので
参照型であるclassと同じようにコピーするとメモリの内容が丸ごとコピーされる

structを使った方が良い時の条件見たけど
普通はクラスで良いんじゃね?

https://dobon.net/vb/dotnet/beginner/whenusestruct.html
2018/04/30(月) 16:42:40.95ID:o2UdIGt2
ヒープとスタックって知ってる?
2018/04/30(月) 16:54:16.36ID:Y7BLr8PP
ありがとうございます。
ちょっと急ぎでコーディングしてるので、
不慣れな構造体でなくクラスでやってしまおうと思います。

こうやって新しい知識をいれないとあとではまって痛い目あうのかなぁ。
955デフォルトの名無しさん
垢版 |
2018/04/30(月) 17:35:20.19ID:IavhHICM
C#で構造体とか思考から除外してどうぞ
2018/04/30(月) 17:42:54.80ID:1/AvOsQF
>>954
構造体には構造体のメリットもある(だからBCLでも使われてる)んで、
2chネラ的な1bit脳の極端な意見は真に受けない方がいいよw

一つだけ挙げれば、プロパティとして公開するような値は構造体の方が楽。
クラスでもイミュータブルにすれば構造体と同じような感覚で使えるが、
イミュータブルなクラスは使い勝手がよくない
2018/04/30(月) 17:44:39.38ID:EYWg1Al3
>>956
わかってないなら無理してレスしないほうがいいぞ
2018/04/30(月) 18:07:28.59ID:cu1IdH0A
IoTでまだまだJAVAは安泰?
C#もIoTがいける様にならないんですかね・・・
2018/04/30(月) 18:20:41.55ID:5cpGHqyz
>>955
C#では構造体絡みのパフォーマンス改善が最近ホットなのに何言ってんの?
960デフォルトの名無しさん
垢版 |
2018/04/30(月) 19:21:42.03ID:EU4JggNS
素人がテキトーに構造体を扱うと却って遅くなるなどの弊害がある
使うならプロファイリングして本当に速くなっているか見極めるべき
2018/04/30(月) 19:24:02.15ID:8/L7aHzO
>>960
GC pressureって知ってる?
2018/04/30(月) 20:01:02.23ID:EYWg1Al3
>>959
ヴァカ
2018/04/30(月) 20:02:31.93ID:o2UdIGt2
>>962
わかってないなら無理してレスしないほうがいいぞ
2018/04/30(月) 20:02:40.18ID:EYWg1Al3
最近の参照関連の拡張は失敗だった
なんもわかってない奴がドヤ顔でクソコード量産する未来しか見えねぇ
2018/04/30(月) 20:07:52.11ID:o2UdIGt2
>>964
Framework自体のパフォーマンス向上に大きく貢献してるんですが…
2018/04/30(月) 20:08:20.38ID:l2s55f2c
>>964
自己紹介おつ
2018/04/30(月) 20:18:18.75ID:EYWg1Al3
>>965
そこが悪いとは一言も言ってないだろう直近の少しのレスも読めねえのか
2018/04/30(月) 20:19:59.64ID:o2UdIGt2
>>967
自分のレスも読めないのか
2018/04/30(月) 20:21:47.02ID:EYWg1Al3
なんだかわいそうな子か
相手するだけ時間の無駄だなこりゃ
2018/04/30(月) 20:21:58.65ID:d7FGyCzB
>>964
Span
2018/04/30(月) 20:22:31.59ID:o2UdIGt2
>>969
かわいそうに
2018/04/30(月) 20:24:31.99ID:LbKDb6RY
>>958
ゴミ
2018/04/30(月) 20:25:28.02ID:VNEaK4nF
かわいそうな子たちのレスバトル
かわいそうに幕を閉じる
2018/04/30(月) 21:08:37.06ID:fAx3ST52
GWだっつーのに悲しい連中だ
2018/04/30(月) 21:11:39.90ID:hzspnxAs
ここで真っ赤になっている時点で恥ずかしいのに中身が低能の罵り合い
次スレ立てる人がいたらワッチョイは付けるなよ
もうワッチョイ付きの相談室のスレは2つあるから
2018/04/30(月) 21:15:37.43ID:fAx3ST52
ここから外に出てこられても困るからなぁw
2018/04/30(月) 21:19:32.91ID:GCfeJpPr
この2つか
C#, C♯, C#相談室 Part93©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1492818720/

C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508168482/
2018/04/30(月) 22:34:10.34ID:yc2yVR1a
ValueTuple構造体
あるといいなあとは思ってたけど、遂に実装される日が来るのか
2018/04/30(月) 22:38:16.75ID:0WwTeQNU
もう既に
2018/05/01(火) 08:04:16.42ID:uHjvXCWl
カーソル記録のものですが、

class Point { public int X; public int Y; 他必要メンバ変数 }

でwhileループを組んでゲーム終了条件でBreakするまでは
上記クラスのインスタンスを無限生成してカーソルの位置を記録するみたいな感じでおかしくないですよね?
2018/05/01(火) 09:12:48.48ID:97Qx1bhI
それだと際限なくメモリを圧迫するから、保持できる上限を決めておいてそれを超えたら追加時に古いのを消したほうがいい
2018/05/01(火) 09:32:42.75ID:uHjvXCWl
>>981
確かにゲームの終了時刻を決めておかないと、どこかでメモリ破たんするですよね。
2018/05/01(火) 09:36:42.01ID:U3YM3k3b
>>982
もう一回>>981を読め
終端を決めろって書いてあるわけじゃない
あと全体のコンセプトや仕様が見えないんだから、それ抜きでここで聞いても正しい答えが返ってくるとは限らない
2018/05/01(火) 09:41:38.51ID:n2aDkIog
結局こいつは自分のやりたいことが最初から有って、賛成意見が欲しいだけなんだろう
やり方を変えるようなアドバイスはするだけ無駄だぞ
2018/05/01(火) 10:46:07.88ID:DOEaa5oU
>>980
100msごとぐらいの記録でよかったんじゃなかったの?

どっちにしろ、ビジーループが回るごとにマウスポインタ位置の記録を取る(そう言ってるように聞こえる)
なんて無駄過ぎる。

限りなく忠実にマウスポインタの移動を再現したいとしても、常識的に考えて
ポーリング間隔は30ms程度で十分なはずだし、座標だけでなく時刻も記録するのであれば
前回から移動してなければ記録する必要もない

まあ、何にしろ何が聞きたいのかはっきりした方がいいね
そこがさっぱり分からん。
2018/05/01(火) 10:55:40.83ID:abUW6NW1
何が聞きたいのかはっきりしないのになぜかオレオレ方式を語り出すとか w
2018/05/01(火) 11:01:22.55ID:n2aDkIog
相手するだけ無駄
2018/05/01(火) 12:03:06.14ID:KZRIwPvF
>>985
0.1sec = 100msだがお前は何を言ってるの?
2018/05/01(火) 12:10:48.14ID:DOEaa5oU
>>988
何を言ってるんだコイツは
2018/05/01(火) 12:35:06.24ID:Riv3cgGr
画面更新の度にマウスの位置が移動してるんだから、120fpsで回してりゃ将来的にも需要に足るんじゃね?
それ以上細かくしても再生出来ないしな。
2018/05/01(火) 14:07:14.06ID:LR2WXBGb
ところで、ビジーループってどのくらいで回ってて、マウスの分解能ってどのくらいなんだ
マウスって所詮対人間なんでそんなに反応速いデバイスじゃなかったはずだが
2018/05/01(火) 15:58:02.09ID:su7UqXEF
どれぐらいって…
環境よるとしか言えないんじゃない?
2018/05/01(火) 22:44:01.95ID:6E8r2PvI
前回と位置が変わってなかったら
その位置が何回連続しているかというカウンタを+1すればいい
馬鹿正直に記録する必要はない
2018/05/02(水) 00:50:38.28ID:Q1HVmUFb
もうこのスレ馬鹿しかいないからこれからはStackOverflowで相談した方がいい
2018/05/02(水) 01:15:14.25ID:MWI15vwQ
応用アプリケーションって書いちゃう人がドヤ顔するスレだから多めに見ろよw
2018/05/03(木) 02:58:20.55ID:WjaTuBFt
もうめちゃくちゃ。ゆとりはゆとり。使えないな。
2018/05/03(木) 03:25:52.24ID:WY9OnNQR
♭の方が役に立っててワロタ
2018/05/03(木) 08:55:45.46ID:ZbCjoyP1
>>996
ゆとりもオッサンやで
2018/05/03(木) 11:24:42.75ID:9ya+6+xK
2018/05/03(木) 12:27:42.26ID:meIxNv7N
1000
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 198日 8時間 25分 32秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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