■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part92 (実質93)
http://echo.2ch.net/test/read.cgi/tech/1485589613/
■次スレは>>970が建てる事
建てられない場合は他を指定する事。
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/04/22(土) 15:36:53.26ID:S+KK7a41
2017/04/24(月) 02:07:44.75ID:zwb7nwH/
ちなみにここにはfalse->trueの順(>>19の通り)と書いてあるが、
これって準仕様書の扱いになる?
(URLは長すぎて切りましたので1行に繋いでください)
https://books.google.co.jp/books?id=sygW0iEw2zkC&pg=PA217&lpg=PA217&dq=.NET+
radiobutton+CheckedChange+event+order&source=bl&ots=A3ndItBpMH&sig=BHLCZLbBQIkAq_Gzq37viy_nGW8&hl=
ja&sa=X&ved=0ahUKEwjTx4zLhrvTAhVLabwKHaQ-AoMQ6AEIYzAH#v=onepage&q=.NET%20radiobutton%20CheckedChange%20event%20order&f=false
これって準仕様書の扱いになる?
(URLは長すぎて切りましたので1行に繋いでください)
https://books.google.co.jp/books?id=sygW0iEw2zkC&pg=PA217&lpg=PA217&dq=.NET+
radiobutton+CheckedChange+event+order&source=bl&ots=A3ndItBpMH&sig=BHLCZLbBQIkAq_Gzq37viy_nGW8&hl=
ja&sa=X&ved=0ahUKEwjTx4zLhrvTAhVLabwKHaQ-AoMQ6AEIYzAH#v=onepage&q=.NET%20radiobutton%20CheckedChange%20event%20order&f=false
2017/04/24(月) 02:17:02.23ID:zwb7nwH/
>>20
いや普通はAutoCheckはtrueで使うだろ。規定値もそうだし。
順に依存しないコードにも出来るが、
これまで順が保証されていたつもりで書いているから
全RadioButtonのハンドラを確認しないといけないんだな。
(というかこのコメントだと逆順のところが大量にありそうな気がして怖い)
とりあえず確認したいのは、「順が保証されているか」「昔からか」だね。
ダメならダメで書き直すけど。
一般的に(他環境でも)RadioButtonのイベント順は保証されている(と俺は思っている)ので、
特に悪い使い方でもないとは思うのだが。
いや普通はAutoCheckはtrueで使うだろ。規定値もそうだし。
順に依存しないコードにも出来るが、
これまで順が保証されていたつもりで書いているから
全RadioButtonのハンドラを確認しないといけないんだな。
(というかこのコメントだと逆順のところが大量にありそうな気がして怖い)
とりあえず確認したいのは、「順が保証されているか」「昔からか」だね。
ダメならダメで書き直すけど。
一般的に(他環境でも)RadioButtonのイベント順は保証されている(と俺は思っている)ので、
特に悪い使い方でもないとは思うのだが。
2017/04/24(月) 02:27:32.36ID:7scL/w5T
>>22
まあ議論するつもりも俺のやり方をごり押しするつもりもないけど、
本来ビューはあくまでモデルの状態を表示する表示器でしかないはずで、
AutoCheckのようにビューがビュー自身でどの項目がcheckされるかを決めるような機能は
ちょっと問題だと思うよ。
まあ議論するつもりも俺のやり方をごり押しするつもりもないけど、
本来ビューはあくまでモデルの状態を表示する表示器でしかないはずで、
AutoCheckのようにビューがビュー自身でどの項目がcheckされるかを決めるような機能は
ちょっと問題だと思うよ。
2017/04/24(月) 03:02:34.76ID:zwb7nwH/
>>23
いやそれは君の方がおかしいよ。
RadioButtonは「一つしか選択されない」というものだから。
というか、UIとしてはそういう使い方しかしてはいけない。
だからそれを自動的にやらせるプロパティがデフォでONになってる。
そして通常はイベント順が決まっているので、
サンプルコードでもCheckedを見ろ、ということになっている。
それを手動でやることも出来るけど、コードの無駄でしょ。
MVC原理主義的には認められないのかもしれないけど。
君はテキストボックスの入力文字も
xterm等のターミナルみたいにモデルと通信すべきだとか言うのかい?
それはいくら何でもやりすぎでしょ。
ラジオボタンのAutoCheckもそれだよ。
多分、AutoCheckを切る使い方の方が少ないと思うよ。
HTML(JavaScript)ではそもそも切れないし。(俺が知らないだけかもしれんが)
.NETは機能が多いけど、使いもしない機能が多いのも事実。
なおJavaも多分AutoCheckに該当する物はないと思うが、
いかんせんドキュメントが見にくくてよく分からん。
https://docs.oracle.com/javase/jp/6/api/javax/swing/JRadioButton.html
ただ、良い悪いはさておき、仕様として順を保証してないんだったら修正するしかない。
.NETの仕様書ってMSDNだよね?
書いてないって事は保証無しなのかな?
まあ知ってる人居たらお願いします。
いやそれは君の方がおかしいよ。
RadioButtonは「一つしか選択されない」というものだから。
というか、UIとしてはそういう使い方しかしてはいけない。
だからそれを自動的にやらせるプロパティがデフォでONになってる。
そして通常はイベント順が決まっているので、
サンプルコードでもCheckedを見ろ、ということになっている。
それを手動でやることも出来るけど、コードの無駄でしょ。
MVC原理主義的には認められないのかもしれないけど。
君はテキストボックスの入力文字も
xterm等のターミナルみたいにモデルと通信すべきだとか言うのかい?
それはいくら何でもやりすぎでしょ。
ラジオボタンのAutoCheckもそれだよ。
多分、AutoCheckを切る使い方の方が少ないと思うよ。
HTML(JavaScript)ではそもそも切れないし。(俺が知らないだけかもしれんが)
.NETは機能が多いけど、使いもしない機能が多いのも事実。
なおJavaも多分AutoCheckに該当する物はないと思うが、
いかんせんドキュメントが見にくくてよく分からん。
https://docs.oracle.com/javase/jp/6/api/javax/swing/JRadioButton.html
ただ、良い悪いはさておき、仕様として順を保証してないんだったら修正するしかない。
.NETの仕様書ってMSDNだよね?
書いてないって事は保証無しなのかな?
まあ知ってる人居たらお願いします。
25デフォルトの名無しさん
2017/04/24(月) 12:45:21.88ID:WhX9zIin >>18
ありがとうございました
ありがとうございました
26デフォルトの名無しさん
2017/04/24(月) 13:30:02.16ID:JE5n6vCM C#2008とIpython2.7を使用しているが、使い分けが不自然
GUI=C#,CUI=Ipython
としておりすが、恩恵を受けている感じがしません
どの様に使えば、もっとも、良いでしょうか?
GUI=C#,CUI=Ipython
としておりすが、恩恵を受けている感じがしません
どの様に使えば、もっとも、良いでしょうか?
2017/04/24(月) 17:26:40.36ID:VzMv01/A
>>19
保障ってどういう意味?
仕様書に明記されていない事は実装依存で保障されてないわけだが
いまだかつてそのような仕様が明記された資料はみたことないけど
そもそもイベントって
発行した順にイベントハンドラが実行される保障や
複数のイベントハンドラを一つのイベントに登録したときにイベントハンドラの
登録順に実行される保障なんてあったか?
保障ってどういう意味?
仕様書に明記されていない事は実装依存で保障されてないわけだが
いまだかつてそのような仕様が明記された資料はみたことないけど
そもそもイベントって
発行した順にイベントハンドラが実行される保障や
複数のイベントハンドラを一つのイベントに登録したときにイベントハンドラの
登録順に実行される保障なんてあったか?
2017/04/24(月) 23:01:32.26ID:aUzRCcRy
>こちらの環境(.NET3.5と.NET2.0の両方)で上記順であることは確認したのだけど
これはあかん
ダメなパターンや
論理的に物事を考えられない思考やで
これはあかん
ダメなパターンや
論理的に物事を考えられない思考やで
2017/04/25(火) 00:46:29.16ID:WJVYNUba
>>27
デバッグビルドとリリースビルドでイベントの前後関係が違ってバグるとかたまにあるな。
デバッグビルドとリリースビルドでイベントの前後関係が違ってバグるとかたまにあるな。
2017/04/25(火) 06:57:14.61ID:I1FtjD3/
まあ痛い目に何度かあえばそのうち改心するでしょ
2017/04/25(火) 07:58:25.82ID:5weZPMgK
2017/04/25(火) 08:10:58.01ID:DkSnRcKc
2017/04/25(火) 08:41:59.71ID:d/fTF244
>>31
ゆとりとかいつの時代だよ
ゆとりとかいつの時代だよ
2017/04/25(火) 08:47:06.56ID:urtDfpDE
仮に現環境で動いても仕様として明記されてないちょっとしたバージョンアップで狂うかもしれん内容に依存した実装なんてしたくない
2017/04/25(火) 09:37:49.02ID:NFildF04
2017/04/25(火) 10:28:03.55ID:sJGMscvy
外野だけど、
RadioButton コントロールは、
同じグループ内の他のオプションボタンと同時にオンにすることはできません。
その上で、RadioButton.CheckedChanged イベントは、
Checked プロパティの値が変更された場合に発生します。
ただ、イベントハンドラ内でイベントハンドラが呼ばれる事を否定していないので、
例えば、RadioButton.CheckedChanged内で意図的にChecked プロパティをtrueに
変更したりすると、
RadioButton.CheckedChangedの処理中に別のRadioButton.CheckedChangedが呼び
出されます。
だから、false→trueのように見えるけど、
この点は注意しろよって事なんでしょう
とエスパ−
RadioButton コントロールは、
同じグループ内の他のオプションボタンと同時にオンにすることはできません。
その上で、RadioButton.CheckedChanged イベントは、
Checked プロパティの値が変更された場合に発生します。
ただ、イベントハンドラ内でイベントハンドラが呼ばれる事を否定していないので、
例えば、RadioButton.CheckedChanged内で意図的にChecked プロパティをtrueに
変更したりすると、
RadioButton.CheckedChangedの処理中に別のRadioButton.CheckedChangedが呼び
出されます。
だから、false→trueのように見えるけど、
この点は注意しろよって事なんでしょう
とエスパ−
2017/04/25(火) 10:32:24.88ID:XjlU4ojX
JSON文字列のDeserializeで時々エラーが出ます。
原因は、JSON文字列の変換後にList<string>になる事を想定しているのですが、
たまに要素が一個だけ持つJSONが来るのでそれはListに出来ないからのようです。
場合を分けるしかないですか?
原因は、JSON文字列の変換後にList<string>になる事を想定しているのですが、
たまに要素が一個だけ持つJSONが来るのでそれはListに出来ないからのようです。
場合を分けるしかないですか?
2017/04/25(火) 11:31:33.17ID:DZfkzF9H
文字列想定してるのに文字が来た。
みたいな事?
じゃあ、文字が来たら一文字の文字列にすればおk。
場合分けしかないですか?って、それで解決するのに何悩んでるの。
みたいな事?
じゃあ、文字が来たら一文字の文字列にすればおk。
場合分けしかないですか?って、それで解決するのに何悩んでるの。
2017/04/25(火) 12:17:43.78ID:Jr/kyMK0
そのJSON出力してる奴を脅してお誂え向きな仕様にしてもらえ
2017/04/25(火) 13:03:26.63ID:XjlU4ojX
>>39
デシリアライザーが気を利かせて要素一個のList<string>に変換してくれれば良いのですが。誰か作ってくれませんか?
デシリアライザーが気を利かせて要素一個のList<string>に変換してくれれば良いのですが。誰か作ってくれませんか?
2017/04/25(火) 13:04:55.01ID:r9UOxgu2
自分で書けずにコピペで作ってんのか
2017/04/25(火) 13:18:46.90ID:DZfkzF9H
JSON使った事ないから知らんが、要素一個(文字列ではなく文字)だったら.toString()ってすりゃ済む話かと思ったんだが、違うのん?
2017/04/25(火) 14:38:56.72ID:5peHc28u
>要素が一個だけ持つJSONが来るのでそれはListに出来ないからのようです。
ここが曖昧、そして重要
そもそもデシリアライザは何を使ってるん?
ここが曖昧、そして重要
そもそもデシリアライザは何を使ってるん?
2017/04/25(火) 16:14:25.09ID:Z3ZAA/Q1
window.client.mouse.pointにアクセスしたい変数があり、その型が
struct Point {int x; int y;} // publicは省略
のとき
c++であれば
Point &p = window.client.mouse.point;
で参照を持ってきてpに代入をするとwindow.client.mouse.pointの値も変わるように出来ますが、c#で同じようなことをするにはどうしたら良いのでしょうか?
struct Point {int x; int y;} // publicは省略
のとき
c++であれば
Point &p = window.client.mouse.point;
で参照を持ってきてpに代入をするとwindow.client.mouse.pointの値も変わるように出来ますが、c#で同じようなことをするにはどうしたら良いのでしょうか?
2017/04/25(火) 17:01:59.12ID:3d41+u/C
>>44
できまふぇん
できまふぇん
2017/04/25(火) 17:06:47.28ID:gy+i7xO9
2017/04/25(火) 17:07:13.97ID:5peHc28u
できません
C#は、関数型言語になりたがっているので、
今後もエイリアスに相当する機能は実装されないでしょう
C#は、関数型言語になりたがっているので、
今後もエイリアスに相当する機能は実装されないでしょう
4844
2017/04/25(火) 20:40:44.01ID:3BEHaskK ありがとうございます
unsafeでやることにします
unsafeでやることにします
2017/04/25(火) 21:29:27.89ID:swVfUf+h
C#7.0で実装されたよ
2017/04/25(火) 22:27:15.84ID:WCmf7fbx
ふつうに
ref Point p = ref window.client.mouse.point;
ref Point p = ref window.client.mouse.point;
2017/04/25(火) 23:50:24.24ID:5weZPMgK
>>36
色々間違ってるぞとだけ言っておく。
色々間違ってるぞとだけ言っておく。
2017/04/26(水) 01:46:46.08ID:gXPydJZJ
>>37
そりゃJSON送ってくる奴がバグってるだろ
その要素は文字配列だって定義してるなら、
JSON配列の中身が
1個なら hoge : ["fuga"]
2個なら hoge : ["fuga","fuga"]
という形になるはず。
1個の時 hoge : "fuga"
で来るならそれは不具合ってやつだ
そりゃJSON送ってくる奴がバグってるだろ
その要素は文字配列だって定義してるなら、
JSON配列の中身が
1個なら hoge : ["fuga"]
2個なら hoge : ["fuga","fuga"]
という形になるはず。
1個の時 hoge : "fuga"
で来るならそれは不具合ってやつだ
2017/04/26(水) 05:49:58.44ID:uOwZ+L6x
>>51
お、おう
お、おう
2017/04/26(水) 09:20:07.34ID:OuCtoXhL
イントラネット上のTCP/IP通信に関する質問なんですが
ネットワーク上に「A,B,C」の3つのPCがあるとして、例えば
「A→B」「B→C」「C→A」「A→B」のようにデータのやり取りをしたいといった場合
(同じデータを渡すのではなく、BはAからの受信があったらある処理を実行させ
その結果をCに渡し、Aに処理内容を返す。CはBから渡された結果で別の処理を実行し
処理内容/完了をAに通知する。Cからの完了通知を受けたAはまたBに処理の実行通知を出すといったような)
それぞれのPCのアプリケーションに実装するのは、どういった感じになるでしょうか。
今までにこういったことをしたことがなく色々調べてはみましたが
この場合はサーバー?クライアント?となったりでいまいちピンとこず理解がなかなか進みません。。
何か解かりやすいアドバイスや今時のやりかたを教えて頂けないでしょうか
ちょっと何言ってるかわからなかったらすみません
ネットワーク上に「A,B,C」の3つのPCがあるとして、例えば
「A→B」「B→C」「C→A」「A→B」のようにデータのやり取りをしたいといった場合
(同じデータを渡すのではなく、BはAからの受信があったらある処理を実行させ
その結果をCに渡し、Aに処理内容を返す。CはBから渡された結果で別の処理を実行し
処理内容/完了をAに通知する。Cからの完了通知を受けたAはまたBに処理の実行通知を出すといったような)
それぞれのPCのアプリケーションに実装するのは、どういった感じになるでしょうか。
今までにこういったことをしたことがなく色々調べてはみましたが
この場合はサーバー?クライアント?となったりでいまいちピンとこず理解がなかなか進みません。。
何か解かりやすいアドバイスや今時のやりかたを教えて頂けないでしょうか
ちょっと何言ってるかわからなかったらすみません
2017/04/26(水) 10:19:19.71ID:LAzkzAvR
>>54
サーバーを1人決めて、仕様を満たすように作るだけ
サーバーを1人決めて、仕様を満たすように作るだけ
2017/04/26(水) 10:43:47.34ID:9smF/Lqp
2017/04/26(水) 10:47:57.13ID:LAzkzAvR
2017/04/26(水) 12:42:38.93ID:vx1v4EP3
2017/04/26(水) 12:49:09.95ID:vx1v4EP3
60デフォルトの名無しさん
2017/04/26(水) 19:45:07.41ID:RLi7Pcio >>54です
レスくださった方々ありがとうございます
頂いたアドバイスでもう一度考えてみたいと思います
ちなみにイントラネット上であれば開いたソケットはアプリを閉じない限りクローズする必要はないでしょうか
あとは仕様的に同期式でいけそうな場合でもポーリングなどはせずに非同期のイベント通知などで設計するのが普通でしょうか
レスくださった方々ありがとうございます
頂いたアドバイスでもう一度考えてみたいと思います
ちなみにイントラネット上であれば開いたソケットはアプリを閉じない限りクローズする必要はないでしょうか
あとは仕様的に同期式でいけそうな場合でもポーリングなどはせずに非同期のイベント通知などで設計するのが普通でしょうか
2017/04/26(水) 21:23:02.37ID:GxL6YYLm
>>60
とりあえずtcpのサンプルでも貼り付けて実行してみなよ
とりあえずtcpのサンプルでも貼り付けて実行してみなよ
2017/04/26(水) 21:36:27.67ID:mlRIWo89
>>60
> ちなみにイントラネット上であれば開いたソケットはアプリを閉じない限りクローズする必要はないでしょうか
当然だけどリッスンポートは待ち受けで開いたまま
コネクトする側は必要なくなったら閉じるのが普通
> ちなみにイントラネット上であれば開いたソケットはアプリを閉じない限りクローズする必要はないでしょうか
当然だけどリッスンポートは待ち受けで開いたまま
コネクトする側は必要なくなったら閉じるのが普通
2017/04/27(木) 00:21:44.79ID:GJNrvvrA
オブザーバー、発行・購読
中央管制塔ありのメディエイター
メッセージキュー
中央管制塔ありのメディエイター
メッセージキュー
64デフォルトの名無しさん
2017/04/27(木) 07:42:43.29ID:fVk5qOLv65デフォルトの名無しさん
2017/05/06(土) 00:24:40.77ID:LiC8gZ+P こっちか
2017/05/17(水) 20:59:26.88ID:Ug4uYIda
C#って言語とランタイムの性能はいいけどエコシステムが貧弱だな
2017/05/17(水) 21:02:34.01ID:rHqwwCfA
最近はNuGetもかなり充実したけどJavaにはさすがに到底敵わない
2017/05/17(水) 21:28:20.78ID:Lj2qZJuK
>>67
なんでNuGetとJava比べてんの?
なんでNuGetとJava比べてんの?
2017/05/17(水) 21:49:09.74ID:OvRO5BGY
>>67
これは恥ずかしい
これは恥ずかしい
7067
2017/05/17(水) 23:19:09.78ID:SKu/yZ4u なんで叩かれてるのか知らないけど、Mavenリポジトリと言えば満足?
2017/05/18(木) 00:04:10.18ID:JYcaMM6T
web系の自動化ツール充実度に嫉妬
2017/05/18(木) 03:52:39.26ID:nv0hNXKv
>>70
具体的に
具体的に
2017/05/18(木) 06:54:17.24ID:Zif2rhHO
>>71
Web系はやっつけだろうが早くリリースするのが至上命題だからテストを自動化しないとカオスになる
Web系はやっつけだろうが早くリリースするのが至上命題だからテストを自動化しないとカオスになる
2017/05/19(金) 23:40:22.50ID:K2XF16mV
クラスのメンバーの型を動的に変更するなどは可能ですか?
例えばMyClassのメンバーに
public string name { get; set; }
が有るとして、それを一時的に
public List<string> name { get; set; }
に変えるなど可能ですか?
例えばMyClassのメンバーに
public string name { get; set; }
が有るとして、それを一時的に
public List<string> name { get; set; }
に変えるなど可能ですか?
2017/05/20(土) 00:19:20.01ID:/WJez+wG
76デフォルトの名無しさん
2017/05/20(土) 00:28:41.92ID:lbI4YU5N public string|List<string> name { get; set; }
じゃ駄目?
じゃ駄目?
2017/05/20(土) 00:44:05.60ID:I6OViHCS
>>74
そのメンバーに色々な型のデータを突っ込みたいなら dynamic 型を調べるがよろし
そのメンバーに色々な型のデータを突っ込みたいなら dynamic 型を調べるがよろし
2017/05/20(土) 01:21:14.87ID:aMCzC0+r
2017/05/20(土) 02:50:37.33ID:/vBlyS11
え、なにそれは
2017/05/20(土) 03:36:45.84ID:XoWVmAv8
>>76
このテクニックなんか名前ついてるの?
このテクニックなんか名前ついてるの?
2017/05/20(土) 04:31:41.03ID:DT+L3BmX
アンカーの付け間違い
2017/05/20(土) 06:41:31.55ID:hBo0eJTZ
コンパイル通らねーよw意味不明
2017/05/20(土) 10:23:12.61ID:wDlYVPvY
素直にgenerics使え
2017/05/20(土) 11:05:10.16ID:NUOkmiRN
nameとnamesの区別がついてないクソPG
2017/05/20(土) 11:05:32.94ID:lbI4YU5N
あっTypeScriptと勘違いしてた
C#じゃ出来なかったわ
すまん
C#じゃ出来なかったわ
すまん
2017/05/20(土) 11:08:01.58ID:NUOkmiRN
いつどこからアクセスするかわからないプロパティの型を可変にする意味は何?
実際バグ出したいだけだろ?
実際バグ出したいだけだろ?
2017/05/20(土) 12:26:52.90ID:pKHKYg56
静的に型付けされてるメンバーを動的に変更することは出来ないに決まってるねw
逆に出来たら困る
なんか静的に型付けされているってことの意味が分からない人が時々いるよね
型Bと型Cの両方を受け入れるプロパティが欲しいならプロパティーの型を共通のベースクラスAにして、
プロパティの値はプログラマの責任で適切にキャストして使うしかない
あとはBとCの間で相互に暗黙変換できるようにするとか
逆に出来たら困る
なんか静的に型付けされているってことの意味が分からない人が時々いるよね
型Bと型Cの両方を受け入れるプロパティが欲しいならプロパティーの型を共通のベースクラスAにして、
プロパティの値はプログラマの責任で適切にキャストして使うしかない
あとはBとCの間で相互に暗黙変換できるようにするとか
2017/05/20(土) 12:28:59.33ID:Lw3rlvDI
初心者は制約があるより自由にかけるほうが良いと思う時期があるものさ
問題があった時にどこからでもさわれたほうが対処しやすいからフィールドは全部publicにしたほうがいいとかね
問題があった時にどこからでもさわれたほうが対処しやすいからフィールドは全部publicにしたほうがいいとかね
2017/05/20(土) 17:55:46.01ID:lhYW/664
ふらっとでやろう
90デフォルトの名無しさん
2017/05/20(土) 22:16:05.31ID:tNlWtPh8 class A
{
public int i;
public virtual void storeNumber(int arg){ i = arg; }
}
class B : A
{
public new int i;
public override void storeNumber(int arg) {
base.storeNumber(arg);
i = arg; }
}
A typeA = new B();
typeA.storeNumber(1);
System.Console.WriteLine(typeA.i); //1
B typeB = (B)typeA;
System.Console.WriteLine(typeB.i); //1
typeB.storeNumber(2);
System.Console.WriteLine(typeA.i); //2
System.Console.WriteLine(typeB.i); //2
new キーワードのメンバは変数の型で参照先が決まると書いてあったんですが
A型の変数から呼び出しても、オーバーライドしたクラスBのメソッドから代入すれば
new が付いてるint i でも値を代入できるということでいいんでしょうか?
{
public int i;
public virtual void storeNumber(int arg){ i = arg; }
}
class B : A
{
public new int i;
public override void storeNumber(int arg) {
base.storeNumber(arg);
i = arg; }
}
A typeA = new B();
typeA.storeNumber(1);
System.Console.WriteLine(typeA.i); //1
B typeB = (B)typeA;
System.Console.WriteLine(typeB.i); //1
typeB.storeNumber(2);
System.Console.WriteLine(typeA.i); //2
System.Console.WriteLine(typeB.i); //2
new キーワードのメンバは変数の型で参照先が決まると書いてあったんですが
A型の変数から呼び出しても、オーバーライドしたクラスBのメソッドから代入すれば
new が付いてるint i でも値を代入できるということでいいんでしょうか?
2017/05/20(土) 22:22:56.23ID:spqPzklw
いまいち言いたいことは分からんがそうだよ
92デフォルトの名無しさん
2017/05/20(土) 22:49:49.46ID:tNlWtPh82017/05/20(土) 23:36:54.63ID:PmwbqNDX
隠蔽した本人から隠蔽後のメンバーじゃなくて
隠蔽したはずのベースクラスのメンバーが見えるなら何のための隠蔽よww
まあでも、どうせ隠蔽なんてまず使わないw
俺が使ったのはたぶんWindows Formのコントロールをカスタマイズするときに
virtualになってないメンバーを苦し紛れになんちゃってオーバーライドする時ぐらいだ
隠蔽したはずのベースクラスのメンバーが見えるなら何のための隠蔽よww
まあでも、どうせ隠蔽なんてまず使わないw
俺が使ったのはたぶんWindows Formのコントロールをカスタマイズするときに
virtualになってないメンバーを苦し紛れになんちゃってオーバーライドする時ぐらいだ
2017/05/20(土) 23:56:17.91ID:/WJez+wG
隠蔽は後から他の奴が基底クラスに同一シグネチャのメンバを追加しやがったときに
派生クラスが壊れないようにするための仕様だよ
積極的に使うものではない
当時のMSは極度の互換性パラノイアに陥っていたため、C#はバージョニングに関しては異常に神経質設計されている
派生クラスが壊れないようにするための仕様だよ
積極的に使うものではない
当時のMSは極度の互換性パラノイアに陥っていたため、C#はバージョニングに関しては異常に神経質設計されている
2017/05/23(火) 12:03:34.57ID:+V9bC4xn
ヌル許容のdatetimeだとyear関数とか使えないんですか?
入力必須じゃない項目なので困っています。
入力必須じゃない項目なので困っています。
2017/05/23(火) 12:15:28.78ID:jI6oRZ6H
>>95
dt?.Year
dt?.Year
2017/05/23(火) 12:17:58.62ID:F7+6VHDt
ヌル許容のdatetimeってわからない。.NETのは構造体なのに
2017/05/23(火) 12:21:51.82ID:3W0XlzKr
大分前からヌルが基本的に無いintとかにヌル入れられるヌル許容型ってのがあるが。。。
int? x = 123;
int? y = null;
int? x = 123;
int? y = null;
2017/05/23(火) 13:22:43.56ID:edjbow2J
100デフォルトの名無しさん
2017/05/23(火) 14:04:03.15ID:A3vGR0ii stringですら?付けてstring?にしようという時代に
細かいことをごちゃごちゃと
細かいことをごちゃごちゃと
101デフォルトの名無しさん
2017/05/23(火) 17:45:15.21ID:PJIONmxy stringは参照型だから元からヌル許容してたのに、なぜヌル許容型をわざわざ?
浦島太郎で申し訳ないが説明頼む。
浦島太郎で申し訳ないが説明頼む。
102デフォルトの名無しさん
2017/05/23(火) 18:27:41.35ID:Ph34uzkO103デフォルトの名無しさん
2017/05/23(火) 18:33:56.97ID:LMlAaHk/ https://gist.github.com/olmobrutall/31d2abafe0b21b017d56
これだろ
string?じゃなくて、nullを許容しないstring!を導入したらどうか?という話
stringをstring!に変換しようとしたときにコンパイラがnullチェックを入れればいいだけだから悪くないアイデアだとと思う
これだろ
string?じゃなくて、nullを許容しないstring!を導入したらどうか?という話
stringをstring!に変換しようとしたときにコンパイラがnullチェックを入れればいいだけだから悪くないアイデアだとと思う
104デフォルトの名無しさん
2017/05/23(火) 18:49:06.30ID:UZ2qE6DF105デフォルトの名無しさん
2017/05/23(火) 18:52:36.71ID:yWN+qtCg106デフォルトの名無しさん
2017/05/23(火) 18:53:40.67ID:LMlAaHk/ >>104
そうじゃなくて逆にnon-nullableが欲しいというのが趣旨だよ
で102で紹介されてるstring?の案は「いっそ参照型もデフォルトでnull非許容にしようぜ」という超過激なトンデモ案
そうじゃなくて逆にnon-nullableが欲しいというのが趣旨だよ
で102で紹介されてるstring?の案は「いっそ参照型もデフォルトでnull非許容にしようぜ」という超過激なトンデモ案
107デフォルトの名無しさん
2017/05/23(火) 18:57:42.54ID:HT5KxiNP 是非そうすべきだ
108デフォルトの名無しさん
2017/05/23(火) 19:06:32.73ID:X2XHKUCb TypeScriptがそういう風に仕様変更されたけどさすがにC#には不可能でしょ
TypeScriptとは違って過去の資産があるし書捨てプロジェクトばかりじゃないんだから
やるならstring!しかないけど!だらけでソースが見苦しくなるのが難点だな
TypeScriptとは違って過去の資産があるし書捨てプロジェクトばかりじゃないんだから
やるならstring!しかないけど!だらけでソースが見苦しくなるのが難点だな
109デフォルトの名無しさん
2017/05/23(火) 19:11:34.18ID:J4QCEXrr110デフォルトの名無しさん
2017/05/23(火) 19:13:26.09ID:HT5KxiNP いつまでもVBを引きずって瞑想していたMicrosoftとは思えないな
ヘジたんは偉大だ
ヘジたんは偉大だ
111デフォルトの名無しさん
2017/05/23(火) 19:19:42.67ID:QProx2es112デフォルトの名無しさん
2017/05/23(火) 19:23:28.74ID:SHq3YOvL またnullの話w
null非許容が欲しいなんて問題の原因を取り違えているだけであって、
そんなもの導入してもnull例外が初期化忘れに置き換わるだけだっていう
簡単な事実が分からんアホが多すぎで呆れるよ
null非許容が欲しいなんて問題の原因を取り違えているだけであって、
そんなもの導入してもnull例外が初期化忘れに置き換わるだけだっていう
簡単な事実が分からんアホが多すぎで呆れるよ
113デフォルトの名無しさん
2017/05/23(火) 19:25:29.82ID:5hEoQuZK114デフォルトの名無しさん
2017/05/23(火) 19:27:51.33ID:5hEoQuZK >>112
そこまで単純化されたら大助かり。
そこまで単純化されたら大助かり。
115デフォルトの名無しさん
2017/05/23(火) 20:14:30.69ID:AM37HZZ1116デフォルトの名無しさん
2017/05/23(火) 20:31:14.27ID:HT5KxiNP またJavaに大きな差を付けてしまうな
あとはエコシステムも充実させてくれ
あとはエコシステムも充実させてくれ
117デフォルトの名無しさん
2017/05/23(火) 20:57:28.99ID:Swob9G4V >>112
null結合演算子も超嫌ってたしね〜君
null結合演算子も超嫌ってたしね〜君
118デフォルトの名無しさん
2017/05/23(火) 21:35:09.71ID:SHq3YOvL >>117
そっちは何も問題ない
そっちは何も問題ない
119デフォルトの名無しさん
2017/05/23(火) 21:48:39.96ID:VdgHftUV varの話してもいいですか?
120デフォルトの名無しさん
2017/05/23(火) 22:57:25.70ID:MQkBzlkR 命が惜しくないならどうぞ
121デフォルトの名無しさん
2017/05/24(水) 02:20:31.18ID:IRME+Rk/ TypeScriptとかSwiftとかKotlinの先例があるのにnull非許容の意味が理解できない>>112 みたいのが社会の進歩を妨げてるんだよなぁ
nullの代わりに空文字を入れることになるみたいな意味不明なことを言ってるやつもいたし、英語の議論が読めないにしても他の言語の例ぐらいは確認してからしゃべってほしい
nullの代わりに空文字を入れることになるみたいな意味不明なことを言ってるやつもいたし、英語の議論が読めないにしても他の言語の例ぐらいは確認してからしゃべってほしい
■ このスレッドは過去ログ倉庫に格納されています
