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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 8b75-uWnk)
垢版 |
2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part134
http://mevius.5ch.net/test/read.cgi/tech/1511951038/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/

■コードを貼る場合は↓を使いましょう。
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: default:vvvvv:1000:512:----: EXT was configured
2デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/04(日) 22:10:08.05ID:HudK1GnQ0
>他のスレッドでは書き込めないような低レベルな質問、

public class cdata
{
public double Ampea ;
public double Volt ;
public double Temp ;
public double Activity ;
public double Flow ;
}

cdata cdt;
double[] ddt;
cdt.Temp をddt[2]としても扱いたいのだが、どういうように定義したらいい?
2018/02/04(日) 22:20:34.73ID:rXp7+rpAa
>>2
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/indexers/index

あれ、インデクサーって伸ばす表記になったんだっけ?
2018/02/04(日) 22:35:51.61ID:nSH8cPbn0
>>2
俺ならenumかな?
2018/02/04(日) 22:38:34.24ID:88eIJAAv0
>>3
もう10年近く前の話だぞ...
http://itpro.nikkeibp.co.jp/article/NEWS/20080725/311532
2018/02/04(日) 22:41:47.38ID:rXp7+rpAa
>>5
それは知ってるけど、結局定着してないでしょ
インデクサって表記されることが多かったような気がしたけど、記憶違いか
2018/02/04(日) 22:53:41.57ID:88eIJAAv0
知ってたら>>3みたいなこと言わないと思うが...
まあ定着とか言ってるぐらいだからちゃんと理解してないんだろうな
2018/02/04(日) 22:56:13.03ID:2Op5wSnjM
>>2
cdataをstructに変えた上で、
cdata cdt;
double* ddt = &cdt;
ddt[2] = 100;
もしくは、FieldOffset(0)で fixed double[5] をcdtのフィールドに定義する
2018/02/04(日) 22:59:20.28ID:nSH8cPbn0
まあ、でも、言語がそういう仕様になってないのにそんな書き方するな
ってのは一言言っておきたいね
2018/02/04(日) 23:04:11.15ID:rXp7+rpAa
>>7
しょうもないことで絡む奴。アホか
君がべき論と現実の区別がつかないだけ。

例えば政府の勧告に従えば破綻は「破たん」と書かなければならないが、
現実には新聞とTVの字幕以外のほとんどのメディアでは相変わらず破綻と表記される。

>>5も同じこと
2018/02/04(日) 23:07:02.75ID:rXp7+rpAa
これはたぶん政府じゃなくて日経あたりが震源地だろうけど、
「ファストフード」表記のごり押しも結局定着しなかったね
2018/02/04(日) 23:11:50.23ID:zMXPgQ7i0
必死だな
2018/02/04(日) 23:20:40.41ID:88eIJAAv0
>>10
>>5のリンク先読んでないのか?
それとも理解できないのか?
MSの社内ルールの話だから世間で定着してるかどうかとは関係なくMSの公式ドキュメントでは伸ばすって話な
2018/02/04(日) 23:22:59.94ID:rXp7+rpAa
>>13
アホだねえ
だからそのMSのルールは政府の勧告に従ったもの。
Vistaが出る時にそういう触れ込みだったでしょ
2018/02/04(日) 23:26:08.61ID:rXp7+rpAa
だいたい、インデクサなんて一般的じゃない用語がどう発音されるかなんて
その業界次第だ
2018/02/04(日) 23:35:04.27ID:rXp7+rpAa
しかし、人を無知だと思い込まないと死ぬ病の奴、
いちいち他人に絡まないと死ぬ病の奴って何なの

こっちが>>5みたいな動きがあったことを意地でも知らなかったと思いたいらしいけど、
むしろ知ってるから>>3みたいな疑問が出てくるんであって、
知らなきゃよくあるカタカナ用語の表記の揺れかなで終わり。
2018/02/04(日) 23:38:51.63ID:p5zvJFKF0
まあそう気になさらないで…
2018/02/04(日) 23:40:56.72ID:zMXPgQ7i0
キチガイに触った方が負けやな
2018/02/04(日) 23:47:19.81ID:88eIJAAv0
>>14-16
政府からの圧力があったのか世間の動向を見たのかは知らんがMSが社内ルールを改訂したと言う事実は変わらない
その事実を知ってて>>3みたいな疑問を持つとかどんだけ理解力がないんだよ w
2018/02/04(日) 23:51:14.32ID:RXHjrV0B0
一時活字関係の業界で、文字を沢山詰め込むためにーで終わるカタカナ語の最後を切るのが流行ったのさ
その名残で伸ばさない人の勢力が弱まったのかね?
2018/02/05(月) 00:02:48.36ID:qmixRvcQ0
俺はお前らのためにランダムで「ー」を
付けたり付けなかったりするよ
たまに「-」だったり「―」だったり
「一」だったりもしてみるよ
2018/02/05(月) 00:06:57.92ID:BWargw5G0
活字業界?
単にJISでそう決まってただけやで...
23愛恥人
垢版 |
2018/02/05(月) 00:33:45.47
これは>>7が悪い
2018/02/05(月) 00:49:08.59ID:BWargw5G0
まあ>>18の言う通りキチガイに触った奴が負けって言われりゃ返す言葉はないけど... w
2018/02/05(月) 00:51:50.23ID:ACPBMebm0
テンプレ読めない人たちは消えて
2018/02/05(月) 09:13:58.24ID:2ki6mM3n0
DirectXや他のフレームワークを使わずに
VSYNCを待つ方法があったら教えてください
2018/02/05(月) 09:56:49.64ID:qXocenM+0
>>26
無いと思うけど
IDXGIOutput::WaitForVBlankが嫌な理由は?
28デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:22:45.29ID:GlpP/XMd0
enum enDispNum { min = 2, max = 5 };

int[] dispno = new int[] {(int)enDispNum.min , (int)enDispNum.max }; //エラー
int[] dispno = new int[] {2,5}; //OK
int aa = (int)enDispNum.max; //OK

enumの挙動がわからん。なんで?
29デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:26:30.78ID:GlpP/XMd0
enum enDispNum {dumy, min = 2, max = 5 };
ダミーいれたら動いた。w 笑かす。
2018/02/05(月) 12:26:34.45ID:Bh+ceQwrM
エラーメッセージ読めば? うちでは再現しないけど
31デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:31:57.15ID:GlpP/XMd0
enum enDispNum:int {dumy, min = 2, max = 5 };
宣言で int 明示してもcastしないとエラーする。 Dumyがないとエラーするし
キャストしないと駄目だし、なんか使いにくいな。
32デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:35:37.13ID:GlpP/XMd0
>30
エラー 1 型 'elRemoteControl.enDispNum' を 'int' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
33デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:40:51.97ID:GlpP/XMd0
>30
同じように2,5で数値していをしてごらん。きっと笑えると思う。

dumyがなくても min=0なら動作するんだろう。おそらく。
例文みたらどれもこれも、数値していがないか、0は一つある。この場合は
dumy=0が暗黙定義されると見た。
2018/02/05(月) 12:42:14.26ID:fj9fHmyPa
>>32
これはどうでしょう?

int[] dispno = new int[] {(int)(enDispNum.min) , (int)(enDispNum.max) };
35デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:47:43.95ID:GlpP/XMd0
それだとdummyがなくても動く。不思議な、、、
2018/02/05(月) 12:51:23.30ID:Bh+ceQwrM
VS2010でもVS2013でもVS2017でも再現しない
https://ideone.com/glor7T
ideoneでも再現しない
37デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 12:55:22.36ID:GlpP/XMd0
そうか。再現する物もあれば、しないものもある。()でくくるといけるものもある。
しかしenumを使う時は
1. dummyを入れる。
2.宣言でキャストしても 個別に必ずキャストすること。
というのを守った方がいいかも。
2018/02/05(月) 12:58:14.07ID:GhnQpqxTa
なんでそうなるw
確実の君が何か変な勘違いしてるだけだってww
39デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 13:02:01.82ID:GlpP/XMd0
「dummy を入れたらコンパイルエラーが止まる。正常にコンパイルされて
動作も正常に動作する。」
この理由を説明してごらんよ。
dummyを入れる以外にはなにも変更していない。
40デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 13:08:04.86ID:GlpP/XMd0
やっぱ想像したとおりだ。min=0にしたら

enum enDispNum:int {min = 0, max = 5 };
これなら
int[] dispno = new int[] {(int)enDispNum.min , (int)enDispNum.max }; //OK
これでもOKだ。コンパイルエラーしない。
2018/02/05(月) 13:40:21.31ID:Bh+ceQwrM
まあ特殊なコンパイラ使っててそれがバグってるんだろう
とりあえず.NET Framework向けのMS製csc.exeは
> エラー 1 型 'elRemoteControl.enDispNum' を 'int' に暗黙的に変換できません。
このエラーが出た場合「エラー 1」じゃなくて「error CS0266」って出すし
42デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 14:18:42.87ID:GlpP/XMd0
VS2013(Pro)だよ。Update5 .NETは4.7
因みにエラー1は一覧の番号だろ。一覧をコピペしただけだから。最初のエラーって意味だ。
2番目のエラーはない。
2018/02/05(月) 14:22:50.07ID:mbLKcWnpd
>>42
コンパイラの話題じゃないの?
44デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 14:25:03.58ID:GlpP/XMd0
どういう意味、VSで別のコンパイラーを動かすってこと? そんな高度なこと知りません。
標準のWindowsFormアプリケーションだよ。
45デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 14:25:56.59ID:GlpP/XMd0
       List<List<Label>> ccValueSetLabel = new List<List<Label>>();
      private void DataRefresh(List<List<double>> datasc)
       {
           int colcount = 0;
           foreach (var dev in ccValueSetLabel)
           {
               var datas = datasc[colcount++];
               List<string> strdt = new List<string> ();
               int count=0;
               par.GetInstance().ElDataList.ForEach(x => strdt.Add(string_format(x.format, datas[count++])));
               count = 0; dev.ForEach(x => x.Text = strdt[count++]);
           }
       }
こういう場合に折角foreachを使っているのに、countを使うのはなんだかなーと思う。foreachを2重かするとか
addみたいにドンドンgetできる方法ってないの?
46愛恥人
垢版 |
2018/02/05(月) 14:35:35.29
>>42 エラー出てる画面うp
>>45 http://d.hatena.ne.jp/chiheisen/20111031/1320068429 の結合のところにある関数を使うとか
47デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 14:41:33.37ID:GlpP/XMd0
もうEnumはいいよ。原因はわかったし、そんなものだろ。
48愛恥人
垢版 |
2018/02/05(月) 14:42:47.42
俺も見たいからうpして(>_<)
49デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 15:04:28.59ID:GlpP/XMd0
エラー 1 型 'elRemoteControl.enDispNum' を 'int' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)

これだよ。だから41が言ってたerror番号だよ。エラー一覧をコピペしたけど
出力一覧の方にはエラー番号がでてた。
2018/02/05(月) 16:39:11.49ID:3nUubkW+0
こちらでは再現しないので、そのエラーが本当に出ると信じられない
本当なら今後のために原因をきちんと把握しておきたいので、とりあえず件のコードとエラーのスクリーンショットを提示してほしい
51デフォルトの名無しさん (ワッチョイ 179d-jn1r)
垢版 |
2018/02/05(月) 17:19:51.66ID:GlpP/XMd0
 一寸聞きたいんだがキャストをかませないとエラーする件もそちらでは、出てないの?
 キャストなしでも動く? とすると俺のpCがおかしいな。 
でもキャストがいるとかDumyがいるとかだとやっぱり笑ってこらえる不具合含みでしょ。
俺のPCはDELLのディスクトップだからそこそこ早いやつだよ。(ゲーム用じゃないけど)
52愛恥人
垢版 |
2018/02/05(月) 17:23:06.32
キャストをかませないとエラーとは?
2018/02/05(月) 17:25:57.56ID:GhnQpqxTa
意地悪だなあw
こんなの確認するまでもないでしょ

まず間違いなく、この質問者さんは、問題に遭遇したのとは
別のコードをここに書いてる。

要するに、彼の問題の原因は彼が思い込んでいるのとは別のところにある。

こんなところに書き込んでる時間があるなら
その間に彼の仮設を検証する最小限のコードを書いて確認すりゃいいのにと思うんだけど、
なぜかそれをしないんだよねこういうあわてんぼうさんは。
2018/02/05(月) 17:28:42.66ID:XmQ50b1K0
列挙型を数値型に代入するには明示的なキャストが必要なのは言語仕様
int[]の初期化子で全部intへ明示的にキャストしてるのにエラーが出るのはおかしい
まあそんなgdgdはいいからスクリーンショットはよ
2018/02/05(月) 17:34:20.84ID:HpRDRToC0
別な何かを int にキャストしようとしてるんでないの?
■ このスレッドは過去ログ倉庫に格納されています