「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part137
https://mevius.5ch.net/test/read.cgi/tech/1523004019/
■コードを貼る場合は↓を使いましょう。
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: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part138
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 369a-msj4)
2018/06/05(火) 19:32:42.28ID:70UTtyrn0 >>55
if (cond) {
}
と書くのだったら、関数の場合も
int func(int arg) {
}
とするのが統一がとれていいんじゃない?なぜ関数と if 文とで書き分けるのか、その理由がわからない
if (cond) {
}
と書くのだったら、関数の場合も
int func(int arg) {
}
とするのが統一がとれていいんじゃない?なぜ関数と if 文とで書き分けるのか、その理由がわからない
57デフォルトの名無しさん (ワッチョイ 81b3-9mJg)
2018/06/09(土) 11:40:22.30ID:kOHnqaQt0 その自己主張要る?
58デフォルトの名無しさん (ワッチョイ 81b3-9mJg)
2018/06/09(土) 11:41:04.90ID:kOHnqaQt059デフォルトの名無しさん (ワッチョイ ebc9-LHz9)
2018/06/09(土) 11:42:25.58ID:4y2IVpvw0 メソッドとif文に差付けなくてもインデント違う時点で判別付くんじゃないのか
と思ったが、ローカル関数出てきたんだっけか
と思ったが、ローカル関数出てきたんだっけか
60デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/09(土) 12:02:32.41ID:54mp5fzVM if (cond) statement;
if (cond) call();
if (notcond) return;
statement;
statement;
statement;
{}がなくても見やすいね
if (cond) call();
if (notcond) return;
statement;
statement;
statement;
{}がなくても見やすいね
61デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 12:03:48.88ID:3S5Pjg6F062デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 12:05:40.33ID:3S5Pjg6F0 >>60
1行if文は否定しないし、自分自身も割とよく使うよ。
1行if文は否定しないし、自分自身も割とよく使うよ。
>>61
pascal に習う必要はないと思いますが…なぜ pascal を持ち出してきたのでしょうか?
私は関数と if/for/while を別にする必要性はないと思っています
{
}
とかスペースの無駄にみえてしまいます
pascal に習う必要はないと思いますが…なぜ pascal を持ち出してきたのでしょうか?
私は関数と if/for/while を別にする必要性はないと思っています
{
}
とかスペースの無駄にみえてしまいます
64デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/09(土) 12:23:56.94ID:54mp5fzVM 構造がクリーンなコードを心がければ自然と{}を使わないコードになる
まあ俺から言わせてもらうと{}は綺麗なコードが浮かばない時に仕方なく使う苦肉の策ってところだね
まあ俺から言わせてもらうと{}は綺麗なコードが浮かばない時に仕方なく使う苦肉の策ってところだね
65デフォルトの名無しさん (ワッチョイ 13b3-3s1o)
2018/06/09(土) 12:43:14.79ID:3S5Pjg6F0 >>63
Pascalの悪い所、例えば条件を ( ) で囲まないので条件が目立たないのは真似する
必要はないが、良い所は参考にすべきだろう。C#は開発主導者がTurbo Pascalの
作者だったこともあり、Pascalからもいくらかの影響を受けていて、赤の他人ではない。
関数と制御文は機能が違うし、関数の方がより大きなブロックだから、書き分けた方が
すんなり読める。自然言語で小さな区切りには , を、大きな区切りには ; を使って
書き分けるのに似ている。あるいは章や節の見出しのスタイルに視覚的な差を
つけるようなもの。
Pascalの悪い所、例えば条件を ( ) で囲まないので条件が目立たないのは真似する
必要はないが、良い所は参考にすべきだろう。C#は開発主導者がTurbo Pascalの
作者だったこともあり、Pascalからもいくらかの影響を受けていて、赤の他人ではない。
関数と制御文は機能が違うし、関数の方がより大きなブロックだから、書き分けた方が
すんなり読める。自然言語で小さな区切りには , を、大きな区切りには ; を使って
書き分けるのに似ている。あるいは章や節の見出しのスタイルに視覚的な差を
つけるようなもの。
67デフォルトの名無しさん (ワッチョイ 13d2-fSec)
2018/06/09(土) 13:02:16.97ID:ufdIEzvk068デフォルトの名無しさん (ワッチョイ b1b5-pwhw)
2018/06/09(土) 13:06:52.76ID:oQlrsJoz0 改行コードが構文に影響を与えない言語仕様なんだから、好きにすればいいんだよ。
69デフォルトの名無しさん (ワッチョイ 0b33-T1fc)
2018/06/09(土) 13:12:22.07ID:Tjb3C0On0 pascal流はマジキモイな
func() {
}
if () {
}
else {
}
が一番利に適ってる
func() {
}
if () {
}
else {
}
が一番利に適ってる
70デフォルトの名無しさん (ブーイモ MM33-EqDK)
2018/06/09(土) 13:27:36.34ID:VOfp/P7BM これ以上続けても宗教の違いみたいな話で
なにも建設的なハナシにはならないからここらで終わりにしておけば?
なにも建設的なハナシにはならないからここらで終わりにしておけば?
71デフォルトの名無しさん (ワッチョイ ebc9-LHz9)
2018/06/09(土) 13:29:19.91ID:4y2IVpvw0 いくら議論したところで、お仕事なら我が社のコーディング規約で終わっちゃう話だしな
72デフォルトの名無しさん (オッペケ Srdd-HQUw)
2018/06/09(土) 14:24:17.49ID:fpkuA4ugr どうでもいいしキモい
73デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/09(土) 14:27:26.20ID:DBY1R4Jva この手の嗜好がただの慣れと思い込みにすぎないっていい歳こいて気付かない人は
プログラマとしてかなり筋が悪いと思うw
たぶん知能もあんまり高くないw
2週間も違う書式で作業してたらすっかりそっちが「普通」になるw
人間なんてそんなもの。
これフォントにも言えるね
プログラマとしてかなり筋が悪いと思うw
たぶん知能もあんまり高くないw
2週間も違う書式で作業してたらすっかりそっちが「普通」になるw
人間なんてそんなもの。
これフォントにも言えるね
>>70
泥仕合にならないかぎり、意義があると思っています、これから泥仕合になるのかもしれませんが…
泥仕合にならないかぎり、意義があると思っています、これから泥仕合になるのかもしれませんが…
75デフォルトの名無しさん (ワッチョイ 13b3-Chll)
2018/06/09(土) 14:28:44.98ID:d5fCz/GJ0 エディタとコーディングスタイルの話はしないのが紳士のたしなみ
76デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/09(土) 14:39:18.62ID:54mp5fzVM77デフォルトの名無しさん (ワッチョイ 137f-6+Fv)
2018/06/09(土) 15:20:12.02ID:JwKFPqLV078デフォルトの名無しさん (ワッチョイ eb81-XZeD)
2018/06/09(土) 15:35:33.03ID:a58WBe6r0 >>75
よい習慣をお持ちですね。素晴らしい
よい習慣をお持ちですね。素晴らしい
79デフォルトの名無しさん (ワッチョイ 1981-DGJA)
2018/06/11(月) 12:25:35.64ID:6xD/x26k0 VisualStudio2017 でコンソールアプリケーションを作っています。
System.Windows.Forms.Clipboardクラスを使いたいのですが
ビルドの設定をReleaseにしているとエラーはでないのに
Debugにすると FormsがSystem.Windowsに存在しないといわれてしまいます。
(アセンブリ参照はしています)
どなたか原因分かる方いないでしょうか。
https://i.imgur.com/sgkx4HK.png
https://i.imgur.com/Tr2VkYB.png
System.Windows.Forms.Clipboardクラスを使いたいのですが
ビルドの設定をReleaseにしているとエラーはでないのに
Debugにすると FormsがSystem.Windowsに存在しないといわれてしまいます。
(アセンブリ参照はしています)
どなたか原因分かる方いないでしょうか。
https://i.imgur.com/sgkx4HK.png
https://i.imgur.com/Tr2VkYB.png
80デフォルトの名無しさん (スッップ Sd33-fSec)
2018/06/11(月) 12:35:57.40ID:bN46fGFrd >>79
csprojファイル晒して
csprojファイル晒して
8179 (ワッチョイ 1981-DGJA)
2018/06/11(月) 13:13:19.40ID:6xD/x26k082デフォルトの名無しさん (ワッチョイ eb96-LHz9)
2018/06/11(月) 21:03:57.62ID:TLX2q1MD0 フォームアプリで画面の真ん中に線を引きたいと思って単純に
(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)/2
のところに線を挽けばいいと思ったんですが、モニタのピクセルの半分のところに線を引くと
フォームの上の -□× のあるバーの下から0ピクセルになるから20ピクセルほどが下にずれてしまいます。
フォームの中央に線を引く方法ってないでしょうか?
(System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)/2
のところに線を挽けばいいと思ったんですが、モニタのピクセルの半分のところに線を引くと
フォームの上の -□× のあるバーの下から0ピクセルになるから20ピクセルほどが下にずれてしまいます。
フォームの中央に線を引く方法ってないでしょうか?
83デフォルトの名無しさん (ササクッテロラ Spdd-pwhw)
2018/06/11(月) 21:10:24.16ID:hXpDig4+p 枠無しフォームでやれ。
84デフォルトの名無しさん (ワッチョイ eb9a-DGJA)
2018/06/11(月) 21:11:16.03ID:R9cSput30 >>82
フォームの中央なのか画面の中央なのかまずはっきりしてくれ
スクリーン座標←→クライアント座標の変換を行うには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/377screentoclient/screentoclient.html
フォームの中央なのか画面の中央なのかまずはっきりしてくれ
スクリーン座標←→クライアント座標の変換を行うには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/377screentoclient/screentoclient.html
85デフォルトの名無しさん (ワッチョイ 8917-LHz9)
2018/06/11(月) 21:12:11.98ID:aKalcs2L0 フォームの中央なのかディスプレイの中央なのかどっちだよ
86デフォルトの名無しさん (ワッチョイ eb96-LHz9)
2018/06/11(月) 21:44:14.69ID:TLX2q1MD0 自分でもどっちでいいかわからなくなったw
最初単純にフォーム最大化してるんだから、モニタの真ん中が真ん中だろと思ったら、
windowsって下にタスクバーあるわ、モニタの下に非表示領域20ピクセルほど隠れてるわ、フォームにフォームバーあるわで、
モニタの真ん中が真ん中に見えない。
たぶん無意識化でフォームの真ん中が人は真ん中と認識しているので気持ち悪い。
ということでフォームの真ん中にしました。
最初単純にフォーム最大化してるんだから、モニタの真ん中が真ん中だろと思ったら、
windowsって下にタスクバーあるわ、モニタの下に非表示領域20ピクセルほど隠れてるわ、フォームにフォームバーあるわで、
モニタの真ん中が真ん中に見えない。
たぶん無意識化でフォームの真ん中が人は真ん中と認識しているので気持ち悪い。
ということでフォームの真ん中にしました。
87デフォルトの名無しさん (ワッチョイ 13d2-fSec)
2018/06/11(月) 22:15:41.36ID:kexbIBuK0 >>86
タスクバーの位置なんて自由に変えられるんだけど
タスクバーの位置なんて自由に変えられるんだけど
88デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/11(月) 22:24:08.10ID:xa0hP702a >モニタの下に非表示領域20ピクセルほど隠れてるわ
そんなものはないと思うけど...
今時CRT使っててオーバースキャン表示でもやってるなら別かもしれんけどw
そんなものはないと思うけど...
今時CRT使っててオーバースキャン表示でもやってるなら別かもしれんけどw
89デフォルトの名無しさん (ワッチョイ 0b33-T1fc)
2018/06/11(月) 22:37:51.73ID:VLKc0T550 フォームバーってタイトルバーのことかな
非クライアント領域もあるぞ
非クライアント領域もあるぞ
90前スレ976 (ブーイモ MMeb-tDoJ)
2018/06/12(火) 07:25:05.60ID:qsxFIdydM どうにかイベントを発生させることができました。ここから5バイトの受信データを分解して処理を分岐したいんですが、どのような手法、便利な関数がありますでしょうか。
オペコード1バイト+データ4バイトという形式です。データは4バイトで表現する数値だったり、1ビットごとのフラグだったりします。
昔ながらのswich~caseで分岐って使うんでしょうか
オペコードが増えたり、データの予約ビットが変わると変更が大変そうです
オペコード1バイト+データ4バイトという形式です。データは4バイトで表現する数値だったり、1ビットごとのフラグだったりします。
昔ながらのswich~caseで分岐って使うんでしょうか
オペコードが増えたり、データの予約ビットが変わると変更が大変そうです
91デフォルトの名無しさん (アウアウウー Sad5-BJSQ)
2018/06/12(火) 08:46:58.51ID:awfOgDQGa switchでいいよ
たかがイベント一個作るのに何日もかかるようなレベルで今どんな凝った設計しようが、結局後で全部やり直しになる
今は余計な手間をかけないこと、シンプルに保つこと、それだけ考えてりゃいい
たかがイベント一個作るのに何日もかかるようなレベルで今どんな凝った設計しようが、結局後で全部やり直しになる
今は余計な手間をかけないこと、シンプルに保つこと、それだけ考えてりゃいい
92デフォルトの名無しさん (ワッチョイ a98a-Duqg)
2018/06/12(火) 08:51:11.88ID:l+dIOx6V0 デバイスドライバーみたいに処理をチェーンさせるってのもあり
93デフォルトの名無しさん (ブーイモ MM05-BJSQ)
2018/06/12(火) 09:12:16.14ID:HMj9ZmCFM スクリプト言語のインタプリタなんかでも巨大switchが普通だぞ
断言するが、先を見通せない状況でヘタにコマンドパターンとか入れても、後で横断的な変更が多発して
すべてのコマンドクラスに手を入れて回るアホみたいな作業に追われることになるだけ
断言するが、先を見通せない状況でヘタにコマンドパターンとか入れても、後で横断的な変更が多発して
すべてのコマンドクラスに手を入れて回るアホみたいな作業に追われることになるだけ
94デフォルトの名無しさん (ワッチョイ 1311-V68u)
2018/06/12(火) 10:49:11.67ID:Blmm4zE90 コード増加はともかく予約を変更すんな・・・
95デフォルトの名無しさん (アウアウエー Sa23-SCrG)
2018/06/12(火) 11:04:17.10ID:O2DKnY7ra >>90
どっちにしろ「便利な関数なんかないでしょうw
ちっとも汎用的じゃない処理をエレガントに書く方法なんか用意されてるはずがないw
泥臭い物は泥臭く書くしかないかと
オペコードがそれ以上分解できない前提で
(1) オペコードをenumにキャストしてswith、でも
(2) ジャンプテーブル(デリゲートの配列)を使う、でもお好みで
もし仮に受信するデータが常にこちらから要求したデータである、
つまり、どういうデータが送信されてくることをこちら側が期待しているか事前に分かっている場合は
別の方法論もあると思う
その場合はこちらがリクエストを出す段階で、期待する種類のデータだけを読解できるオブジェクトを
生成してタイムアウト付きで待機させればいい
どっちにしろ「便利な関数なんかないでしょうw
ちっとも汎用的じゃない処理をエレガントに書く方法なんか用意されてるはずがないw
泥臭い物は泥臭く書くしかないかと
オペコードがそれ以上分解できない前提で
(1) オペコードをenumにキャストしてswith、でも
(2) ジャンプテーブル(デリゲートの配列)を使う、でもお好みで
もし仮に受信するデータが常にこちらから要求したデータである、
つまり、どういうデータが送信されてくることをこちら側が期待しているか事前に分かっている場合は
別の方法論もあると思う
その場合はこちらがリクエストを出す段階で、期待する種類のデータだけを読解できるオブジェクトを
生成してタイムアウト付きで待機させればいい
96デフォルトの名無しさん (ワントンキン MM53-7qxP)
2018/06/12(火) 12:12:37.91ID:yJ6G/fgzM97デフォルトの名無しさん (ササクッテロ Spdd-rXIk)
2018/06/12(火) 14:41:16.06ID:dH3jUIiRp それより、データの先頭を識別できるフォーマットにしたか?
98デフォルトの名無しさん (ワッチョイ 53c3-jpFx)
2018/06/12(火) 15:40:05.30ID:wFgJsw9E0 固定長なら先頭コード種類分のデリゲートを割り付けるってのもあるが、こればっかしは好みだな。
99前スレ976 (ブーイモ MMeb-tDoJ)
2018/06/12(火) 20:18:08.93ID:qsxFIdydM ありがとうございます。
ベタベタに書いてみます。
1バイトが1ビットごとのフラグになっている場合はビットマスクで一つずつ抽出するのが一般的でしょうか?
ベタベタに書いてみます。
1バイトが1ビットごとのフラグになっている場合はビットマスクで一つずつ抽出するのが一般的でしょうか?
100デフォルトの名無しさん (ワッチョイ 9361-6Jh4)
2018/06/13(水) 22:29:58.82ID:T96Fk9Se0 SQLについて質問ですが
INSERT INTO T_USER (
ID, PASSWORD
) VALUES (
@ID, @PASSWORD
);
のINSERT分を
INSERT INTO T_USER (
ID = @ID,
PASSWORD = @PASSWORD
);
のように書く場合はどのようにしたらよいでしょうか。
INSERT INTO T_USER (
ID, PASSWORD
) VALUES (
@ID, @PASSWORD
);
のINSERT分を
INSERT INTO T_USER (
ID = @ID,
PASSWORD = @PASSWORD
);
のように書く場合はどのようにしたらよいでしょうか。
101デフォルトの名無しさん (ワッチョイ 8917-LHz9)
2018/06/13(水) 22:33:15.48ID:8SXHgjst0 スレチ
102デフォルトの名無しさん (ワッチョイ e9e3-HWv4)
2018/06/13(水) 22:40:13.78ID:dwe0uTDh0 そういうメソッド作ったらいいじゃん
setInsert(new dictionary略);
みたいなの
setInsert(new dictionary略);
みたいなの
103デフォルトの名無しさん (ワッチョイ c68a-3+MO)
2018/06/14(木) 08:40:57.01ID:tUkyOm+Z0 クラスの構造体(ただint型のデータが複数個しかない)をXMLに変換したいのだが
XMLSerializer以外に何かないかな?
XMLSerializerは以前にバグを起こしたことがあって使いたくないんだ
XMLSerializer以外に何かないかな?
XMLSerializerは以前にバグを起こしたことがあって使いたくないんだ
104デフォルトの名無しさん (ワッチョイ c211-jgxh)
2018/06/14(木) 09:14:05.32ID:o3acK5Uh0 >>100
UPDATEじゃないんだから・・・
UPDATEじゃないんだから・・・
105デフォルトの名無しさん (ラクッペ MM61-h/p3)
2018/06/14(木) 09:54:39.43ID:A8NrLUZ4M クラスの構造体…?
106デフォルトの名無しさん (ワッチョイ 42a4-/RsH)
2018/06/14(木) 11:31:35.89ID:/+f4Bre90 >>103
全手動
全手動
107デフォルトの名無しさん (ワッチョイ 2260-BQKd)
2018/06/14(木) 12:02:09.33ID:cv0ACSdK0 最終的に配列を書きだしたいのですが
それまでに色んなクラスのインスタンスからその配列の読み書きがされるのですが
どういうふうにクラスを作ればいいですか?
その配列はグローバルでstaticで宣言するか、インスタンス作るごとに参照を引き渡すのですか?
それまでに色んなクラスのインスタンスからその配列の読み書きがされるのですが
どういうふうにクラスを作ればいいですか?
その配列はグローバルでstaticで宣言するか、インスタンス作るごとに参照を引き渡すのですか?
108デフォルトの名無しさん (ブーイモ MMb6-OAOp)
2018/06/14(木) 13:20:39.46ID:NMzxKZ+IM >>107
日本語でおk
日本語でおk
109デフォルトの名無しさん (ブーイモ MM62-l11B)
2018/06/14(木) 14:19:07.38ID:KBTpBKAkM110デフォルトの名無しさん (ササクッテロ Spf1-8opj)
2018/06/14(木) 15:31:16.28ID:fa4YRdZnp アクセス関数を作ってインスタンス取得用に一つスタティック関数を用意するだけ。
アクセス関数介さないと、排他処理とかいちいち入れるの面倒だぞ。
アクセス関数介さないと、排他処理とかいちいち入れるの面倒だぞ。
111デフォルトの名無しさん (スプッッ Sd61-3+MO)
2018/06/14(木) 17:22:37.66ID:Omv9hEYDd 初歩的な質問なんだけど
プロパティ?(get;set;)ついてるやつと、ついていないやつの差がわからないから教えてほしい
プロパティつけててもprivateはアクセスできないみたいだから
結局、両方ともpublicになって何が違うん?ってなってる
プロパティ?(get;set;)ついてるやつと、ついていないやつの差がわからないから教えてほしい
プロパティつけててもprivateはアクセスできないみたいだから
結局、両方ともpublicになって何が違うん?ってなってる
112デフォルトの名無しさん (ワッチョイ 2e9a-gvEZ)
2018/06/14(木) 17:40:33.14ID:T0JMmz9y0 >>111
プロパティにするとメソッドを組み込めたりgetとsetでアクセスレベル変えられたり
あと取りあえずこの辺とか
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/properties
特定のソースで何が変わるの?って言う話なら書いた人に聞かないと分からない
プロパティにするとメソッドを組み込めたりgetとsetでアクセスレベル変えられたり
あと取りあえずこの辺とか
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/properties
特定のソースで何が変わるの?って言う話なら書いた人に聞かないと分からない
113デフォルトの名無しさん (アウアウウー Saa5-m0US)
2018/06/14(木) 17:41:27.02ID:im2Z0uooa クラスのメンバーでプロパティじゃない変数はフィールドと言う
フィールド (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/fields
プロパティ (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/properties
フィールドは代入も参照も同じ制限になる
プロパティは別々に設定できる
しかもgetだけ setだけというのも可能
フィールド (メンバ変数) とプロパティはここが違う
https://code.msdn.microsoft.com/windowsdesktop/5-5f828cde
フィールド (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/fields
プロパティ (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/properties
フィールドは代入も参照も同じ制限になる
プロパティは別々に設定できる
しかもgetだけ setだけというのも可能
フィールド (メンバ変数) とプロパティはここが違う
https://code.msdn.microsoft.com/windowsdesktop/5-5f828cde
114デフォルトの名無しさん (ワッチョイ d2eb-hrcC)
2018/06/14(木) 18:59:14.79ID:UejGuppF0 クラスのプロパティに「型」を変数みたいにおけますか?
外部から「型」をセットして、クラスの中でその型を使って new して実体を作って利用したいのです。
外部から「型」をセットして、クラスの中でその型を使って new して実体を作って利用したいのです。
115デフォルトの名無しさん (ワッチョイ d2eb-hrcC)
2018/06/14(木) 19:03:10.93ID:UejGuppF0 気持ちをコードで表すと
public class Test
{
public <T> PersonClass;
public void Unko()
{
var p = new PersonClass();
p.unko();
}
}
ってな感じです。
※PersonClass にメソッド unko() がある前提
public class Test
{
public <T> PersonClass;
public void Unko()
{
var p = new PersonClass();
p.unko();
}
}
ってな感じです。
※PersonClass にメソッド unko() がある前提
116デフォルトの名無しさん (スップ Sdc2-bwM/)
2018/06/14(木) 19:09:01.39ID:Cyktia16d117デフォルトの名無しさん (ワッチョイ 0699-pByW)
2018/06/14(木) 19:15:40.41ID:5YiZsxt70118デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/14(木) 19:19:58.23ID:w+8RUA83a119デフォルトの名無しさん (ワッチョイ 41da-4dYe)
2018/06/14(木) 19:26:49.09ID:dsNhKni40 >>99
enumにFlagsAttributeを付ける
[Flags]
enum Hoge : byte
{
Bit0 = 1 << 0,
Bit1 = 1 << 1,
Bit2 = 1 << 2,
Bit3 = 1 << 3,
Bit4 = 1 << 4,
Bit5 = 1 << 5,
Bit6 = 1 << 6,
Bit7 = 1 << 7,
}
var hoge = Hoge.Bit1 | Hoge.Bit4;
if ( hoge.HasFlag( Hoge.Bit3 ) )
{
enumにFlagsAttributeを付ける
[Flags]
enum Hoge : byte
{
Bit0 = 1 << 0,
Bit1 = 1 << 1,
Bit2 = 1 << 2,
Bit3 = 1 << 3,
Bit4 = 1 << 4,
Bit5 = 1 << 5,
Bit6 = 1 << 6,
Bit7 = 1 << 7,
}
var hoge = Hoge.Bit1 | Hoge.Bit4;
if ( hoge.HasFlag( Hoge.Bit3 ) )
{
120デフォルトの名無しさん (アウアウウー Saa5-l11B)
2018/06/14(木) 23:44:33.25ID:rYhQU2t8a >>119
そんな見てて痒くなる書き方しなくても今のC#は2進数リテラル使えるぞ
そんな見てて痒くなる書き方しなくても今のC#は2進数リテラル使えるぞ
121デフォルトの名無しさん (ワッチョイ 31b5-8opj)
2018/06/14(木) 23:56:40.66ID:9S9/LeJo0 1
2
4
8
16
32
64
128
でいいよ。
2
4
8
16
32
64
128
でいいよ。
122デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/15(金) 00:31:01.58ID:UuMD2cf2a >>119みたいなのならHexで書くのが一番だろうねw
少なくとも俺ならそうする
少なくとも俺ならそうする
123デフォルトの名無しさん (ブーイモ MM62-l11B)
2018/06/15(金) 01:23:47.16ID:hh/0fz+KM 10進よりマシだが一番ではない
2進があるならどう考えても2進が一番
2進があるならどう考えても2進が一番
124デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/15(金) 01:34:20.89ID:UuMD2cf2a 書いてみりゃ分かるよw
単に一つのビットだけ立っている値を列挙するなら2進リテラルは冗長過ぎる。
そもそも何のためにHexなんかあると思ってるの
2進リテラルっていうのは、例えば組み込みで7セグのパターンのテーブルを定義する時とか、
bit5-bit7みたいにニブル単位じゃないビット範囲のビットマスクを定義する時とかに使う
単に一つのビットだけ立っている値を列挙するなら2進リテラルは冗長過ぎる。
そもそも何のためにHexなんかあると思ってるの
2進リテラルっていうのは、例えば組み込みで7セグのパターンのテーブルを定義する時とか、
bit5-bit7みたいにニブル単位じゃないビット範囲のビットマスクを定義する時とかに使う
125デフォルトの名無しさん (ブーイモ MM62-l11B)
2018/06/15(金) 02:40:57.81ID:3RK99arqM 君にとってはCが頭に染み付いてるからそうかもしれないけど、
現に>>119にとっては分かりにくいからわざわざこんな書き方をしてるんだろう
今時のプログラマはC経験ない人も多いんだから実情に合わせることも必要
そういう連中を見下すのもいいけど老害呼ばわりされないように気をつけてね
現に>>119にとっては分かりにくいからわざわざこんな書き方をしてるんだろう
今時のプログラマはC経験ない人も多いんだから実情に合わせることも必要
そういう連中を見下すのもいいけど老害呼ばわりされないように気をつけてね
126デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/15(金) 03:02:28.24ID:UuMD2cf2a127デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/15(金) 03:07:31.98ID:UuMD2cf2a どーでもいいけど、こういう自分を客観視できない単細胞な奴がネトウヨとかなるんだろうね
128デフォルトの名無しさん (ワッチョイ ddc3-ttgq)
2018/06/15(金) 03:33:39.61ID:/sL5C1h/0 ネトウヨってつまりどういう定義なんですか
マンコ吸わせてくださいs
マンコ吸わせてくださいs
129デフォルトの名無しさん (ワッチョイ 2e81-h/p3)
2018/06/15(金) 06:19:02.91ID:9gOvrFZ50 5分かけて最後に煽っていくというだけで
自分が嫌ってるゴミと大差なくなっているというね
自分が嫌ってるゴミと大差なくなっているというね
130デフォルトの名無しさん (ドコグロ MM29-1Yxh)
2018/06/15(金) 07:16:26.72ID:Cd+XXhnVM 今どきビット演算なんてしてるやつはゴミ
131デフォルトの名無しさん (ドコグロ MM29-1Yxh)
2018/06/15(金) 07:16:57.07ID:Cd+XXhnVM これまで歩んだ人生がゴミ
132前スレ976 (ブーイモ MM62-C226)
2018/06/15(金) 07:27:20.01ID:A2l2tHW6M >>119
ありがとうございます
bitarrayってのがあるらしいんですけど、これって共用体とかに一括で代入できないんですかね
3バイトデータの内の下位1バイトは1bitごとのフラグなのでbitarrayで分解できそうなんですが
ありがとうございます
bitarrayってのがあるらしいんですけど、これって共用体とかに一括で代入できないんですかね
3バイトデータの内の下位1バイトは1bitごとのフラグなのでbitarrayで分解できそうなんですが
133デフォルトの名無しさん (ワッチョイ c211-jgxh)
2018/06/15(金) 09:16:33.32ID:rymWY0Tx0 そういえばちょっと疑問なんだけど、enum定義する時に>>119みたいにbyteとか指定するのは何か意味があるの?
指定したところでbyte型の変数に代入しようとしたらキャストしなきゃいけないし、やる意味がわからないんだけど
指定したところでbyte型の変数に代入しようとしたらキャストしなきゃいけないし、やる意味がわからないんだけど
134デフォルトの名無しさん (ワッチョイ 31b5-8opj)
2018/06/15(金) 09:22:49.39ID:BTgSia3a0 >>133
え?キャスト?
え?キャスト?
135デフォルトの名無しさん (ワッチョイ c211-jgxh)
2018/06/15(金) 09:45:21.99ID:rymWY0Tx0 >>134
え?
え?
136デフォルトの名無しさん (ワッチョイ 31b5-8opj)
2018/06/15(金) 10:04:23.68ID:BTgSia3a0 ああ、enumで作った型なんだからenum型になってるだろ。
受ける変数も同じ型じゃないとダメなのは当たり前。
受ける変数も同じ型じゃないとダメなのは当たり前。
137デフォルトの名無しさん (ワッチョイ e227-hwPK)
2018/06/15(金) 11:52:41.04ID:jCp8kGwY0 >>133
シリアライズとかネイティブとの相互運用目的
シリアライズとかネイティブとの相互運用目的
138デフォルトの名無しさん (ササクッテロ Spf1-8opj)
2018/06/15(金) 11:58:42.21ID:6Dx/uRsOp 動的にenumで作った型のsizeof求めりゃいいんだが、静的に解決しなきゃならない時は指定するしか無いって話だよな?
139デフォルトの名無しさん (ワッチョイ d2eb-hrcC)
2018/06/15(金) 12:03:59.97ID:AMC7cROI0 >>116-117
コンパイル時点で型が定まらない(実行時に型が決まる)ものを new する手段という風ですよね?
使えそうです。ありがとうございました。
あとは、外部から「型」を受け取って new するまでの間、保管しておきたいのですが
型を変数(プロパティ)に格納するにはどうしたらいいんでしょ
コンパイル時点で型が定まらない(実行時に型が決まる)ものを new する手段という風ですよね?
使えそうです。ありがとうございました。
あとは、外部から「型」を受け取って new するまでの間、保管しておきたいのですが
型を変数(プロパティ)に格納するにはどうしたらいいんでしょ
140デフォルトの名無しさん (スフッ Sd62-pByW)
2018/06/15(金) 12:20:55.24ID:NFN3YtCpd >>139
117はジェネリクスなのでコンパイル時には一応定まってるハズ。
型を変数に入れたいならインスタンス.GetType()か、typeof(型)で、Type型の値が取れるけど…
本当にやりたい事と、実装の方法(型を受け取ってインスタンスを作ってそのメソッドを呼ぶ)がズレてないか心配。
117はジェネリクスなのでコンパイル時には一応定まってるハズ。
型を変数に入れたいならインスタンス.GetType()か、typeof(型)で、Type型の値が取れるけど…
本当にやりたい事と、実装の方法(型を受け取ってインスタンスを作ってそのメソッドを呼ぶ)がズレてないか心配。
141デフォルトの名無しさん (ワッチョイ c211-jgxh)
2018/06/15(金) 12:25:49.54ID:rymWY0Tx0 >>137-138
なるほど、さんくす
なるほど、さんくす
142デフォルトの名無しさん (ワッチョイ d2eb-hrcC)
2018/06/15(金) 12:48:48.68ID:AMC7cROI0 >>140
ありがとうございます。
「型」を格納する変数の型は System.Type なんですね!!
やりたいことが出来ました!!
System.Type t = typeof(××フォーム); ← ここのところを公開して外部からセット
var f = (System.Windows.Forms.Form)System.Activator.CreateInstance(t);
f.ShowDialog();
ありがとうございます。
「型」を格納する変数の型は System.Type なんですね!!
やりたいことが出来ました!!
System.Type t = typeof(××フォーム); ← ここのところを公開して外部からセット
var f = (System.Windows.Forms.Form)System.Activator.CreateInstance(t);
f.ShowDialog();
143デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/15(金) 12:57:15.01ID:PdS4cleJa >>142
それさあ、キャストしてる時点で何の意味があるんだと思わなきゃw
それさあ、キャストしてる時点で何の意味があるんだと思わなきゃw
144デフォルトの名無しさん (ブーイモ MM6d-l11B)
2018/06/15(金) 13:10:18.30ID:VuRl2MkoM >>143
Showなどのフォーム共通の操作をしたいんだろう
基底クラスにキャストする分には意味はある
設計として正しいかどうかは別問題であり今の情報だけでは何とも言えないが、
君は自分の個人的な好みを一般常識であるかのように主張して相手の事情を理解しようとせず人を一方的に批判する傾向があるようだね
Showなどのフォーム共通の操作をしたいんだろう
基底クラスにキャストする分には意味はある
設計として正しいかどうかは別問題であり今の情報だけでは何とも言えないが、
君は自分の個人的な好みを一般常識であるかのように主張して相手の事情を理解しようとせず人を一方的に批判する傾向があるようだね
145デフォルトの名無しさん (ワッチョイ d2eb-hrcC)
2018/06/15(金) 13:16:34.24ID:AMC7cROI0 本当は自作インターフェースを持った「なにか」から派生するクラスなのですが
そこまで書くと行数が凄いことになるので、Form を例にさせてもらいました。
そこまで書くと行数が凄いことになるので、Form を例にさせてもらいました。
146デフォルトの名無しさん (ワッチョイ c2d2-bwM/)
2018/06/15(金) 13:30:43.12ID:/HLz/tc50 >>145
本当は何がしたいの?
本当は何がしたいの?
147デフォルトの名無しさん (アウアウエー Sa4a-jhA2)
2018/06/15(金) 13:36:49.24ID:PdS4cleJa148デフォルトの名無しさん (ワッチョイ d2eb-hrcC)
2018/06/15(金) 14:16:21.09ID:AMC7cROI0 >>146
基底クラスから派生したクラスを動的に生成します。
142 みたいな方法が出来ることを知らなかったので
switch 〜 case でクラスの種類だけ new() やってたところをキレイにします。
基底クラスから派生したクラスを動的に生成します。
142 みたいな方法が出来ることを知らなかったので
switch 〜 case でクラスの種類だけ new() やってたところをキレイにします。
149デフォルトの名無しさん (スフッ Sd62-pByW)
2018/06/15(金) 15:03:37.25ID:NFN3YtCpd >>145
それは自作インターフェイスに「『自作インターフェイスをもった何かのインスタンス』を返す関数」を定義しておいて、
何かの方で「その関数」を実装して、
呼び出す側では普通に「その関数」を使えば良いのではなかろうか。
抽象クラスと静的関数の方がキレイかな。
「その関数」のリストが作りたいなら、そこでやっとリフレクションで取ったらいいし。
いきなりCreateInstanceは宜しくないというか危ないし、後々、各小クラスでコンストラクタがどうしようもない状況に陥ると思うよ。
それは自作インターフェイスに「『自作インターフェイスをもった何かのインスタンス』を返す関数」を定義しておいて、
何かの方で「その関数」を実装して、
呼び出す側では普通に「その関数」を使えば良いのではなかろうか。
抽象クラスと静的関数の方がキレイかな。
「その関数」のリストが作りたいなら、そこでやっとリフレクションで取ったらいいし。
いきなりCreateInstanceは宜しくないというか危ないし、後々、各小クラスでコンストラクタがどうしようもない状況に陥ると思うよ。
150デフォルトの名無しさん (ワッチョイ c29d-zq67)
2018/06/16(土) 00:47:26.32ID:i9Db63x30 Dynamicは黒歴史ですか
151デフォルトの名無しさん (ワッチョイ 9d17-Bw3Y)
2018/06/16(土) 08:04:12.32ID:axPFqDQY0 いいえ
152デフォルトの名無しさん (スップ Sdc2-bwM/)
2018/06/16(土) 08:10:11.50ID:YoGVHqI7d うんにゃ
153デフォルトの名無しさん (ブーイモ MM6d-l11B)
2018/06/16(土) 08:34:15.67ID:eKBdC14eM むしろ.NETのメインストリームがWebに移ってからはdynamic使われまくってる
JSONデータをたくさん扱ってるといちいち型付けてられない場面が多い
JSONデータをたくさん扱ってるといちいち型付けてられない場面が多い
154デフォルトの名無しさん (ワッチョイ 892b-z7gc)
2018/06/16(土) 09:57:30.72ID:fkqp7HMy0 自作のインタプリタ作った時に
Dynamic使った記憶がある
意図は・・忘れたww
Dynamic使った記憶がある
意図は・・忘れたww
155デフォルトの名無しさん (スップ Sdc2-bwM/)
2018/06/16(土) 10:02:21.77ID:v/kjTt9Bd >>153
jsonからクラスへの変換なんてVisualStudio使えば一瞬じゃない?
jsonからクラスへの変換なんてVisualStudio使えば一瞬じゃない?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
