「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part130
https://mevius.2ch.net/test/read.cgi/tech/1500327645/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
ふらっと C#,C♯,C#(初心者用) Part131 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/09/08(金) 18:12:11.06ID:Ej7G00WU2017/09/08(金) 22:04:57.94ID:5liNTHI5
前スレ>>975
> 1分以上止まっちゃってたことあるよ
その時の.Net Frameworkのバージョンいくつだったんだろ。
今はバックグラウンドGCとか、GCも改良されてて長期間止まり難くなってるけど。
> 1分以上止まっちゃってたことあるよ
その時の.Net Frameworkのバージョンいくつだったんだろ。
今はバックグラウンドGCとか、GCも改良されてて長期間止まり難くなってるけど。
2017/09/08(金) 22:10:04.29ID:5liNTHI5
改良されたとは言っても、全く止まらない訳じゃないから、
数100msecでも止まって欲しくない場合は、やっぱり手動でGCを制御する必要があるけどね。
数100msecでも止まって欲しくない場合は、やっぱり手動でGCを制御する必要があるけどね。
2017/09/08(金) 22:45:19.27ID:Ej7G00WU
>>4
答になってないよw
staticで済む用途ならstaticで書いたほうがいい、ではなくてそれはstaticで書かなきゃだめw
最初から言ってるように、毎回newするのと対立する方法は、
フィールドでインスタンスを持っておこくと。
答になってないよw
staticで済む用途ならstaticで書いたほうがいい、ではなくてそれはstaticで書かなきゃだめw
最初から言ってるように、毎回newするのと対立する方法は、
フィールドでインスタンスを持っておこくと。
2017/09/08(金) 23:26:37.19ID:13cy/HVm
2017/09/08(金) 23:50:16.96ID:Ej7G00WU
2017/09/08(金) 23:53:51.95ID:mcCYyLIS
気分はstaticになってきたな
2017/09/09(土) 02:26:05.00ID:QZscGhnQ
staticおじさんがまた大勝利してしまったと聞いて
2017/09/09(土) 03:16:09.56ID:ZyaEKkZw
前すれワッチョイとかいうのだったんだな
2chのシステムよく知らんので普通のスレで立てちゃったよ
やり方知らんしw
気に入らなかったら別のスレ立ててね
2chのシステムよく知らんので普通のスレで立てちゃったよ
やり方知らんしw
気に入らなかったら別のスレ立ててね
2017/09/09(土) 03:27:48.28ID:Dk6TKP7N
1月強で1000行くんだから我慢して使い切れよ
2017/09/09(土) 06:30:41.62ID:mbeKZ08U
おまいらに真実を話す。ポーリングって確かに打ったんだわ。スマホが勝手にボーリングに変換してたんだわ
ATOKあほすぎんだろ
ATOKあほすぎんだろ
2017/09/09(土) 08:37:40.24ID:GUslkcWv
変換はgoogleのが絶対いいな
流行りのワードも出てくるし
これ以外考えられないって性能になっちゃってないか?
流行りのワードも出てくるし
これ以外考えられないって性能になっちゃってないか?
2017/09/09(土) 10:04:18.06ID:m2qj4yLN
インスタンスをキープしたいのなら、ポーリングのクラスにフィールド設定してそこに置けば済むわけでstatic classは有り得ないわな
static classはグローバル参照がどうしても必要な設定値とか、拡張メソッドとか、Mathのようなライブラリで使うもので
不用意に使うとろくな事がない代物だ
static classはグローバル参照がどうしても必要な設定値とか、拡張メソッドとか、Mathのようなライブラリで使うもので
不用意に使うとろくな事がない代物だ
18デフォルトの名無しさん
2017/09/09(土) 10:20:42.56ID:6JP7a1zU >>5
DataContractSerializer系じゃ無理なはず
飽くまでシリアライザなんでデシリアライズできなきゃならない
型情報が無くなったら元のどの型にデシリアライズすればいいか分からなくなっちゃう
DataContractSerializer系じゃ無理なはず
飽くまでシリアライザなんでデシリアライズできなきゃならない
型情報が無くなったら元のどの型にデシリアライズすればいいか分からなくなっちゃう
2017/09/09(土) 10:39:45.84ID:IbIBfPO7
それでも書いた処理によってガベコレまでの一時メモリリークは起こるので強制ガベコレの管理はどうせ必要になる
誰かのライブラリ使ってて中がブラックボックスだったときにガベコレまでの一時メモリリークは気づけない
staticで変数用意してもそれがすべてと言い切れないなら意味がない
無駄な努力じゃねーかな?
誰かのライブラリ使ってて中がブラックボックスだったときにガベコレまでの一時メモリリークは気づけない
staticで変数用意してもそれがすべてと言い切れないなら意味がない
無駄な努力じゃねーかな?
2017/09/09(土) 10:42:06.00ID:bgDvHBVU
>>17
だいたいあっているけどstaticにしようとしていたのはメソッド
だいたいあっているけどstaticにしようとしていたのはメソッド
2017/09/09(土) 11:56:12.29ID:usm4kYFG
ライブラリだったら内部の構造は考えられずガンガン使われるから
ポーリングクラスが1000個とか作られてつかえねーなって言われる
だったらstaticな要素にしといたほうがいい
ポーリングクラスが1000個とか作られてつかえねーなって言われる
だったらstaticな要素にしといたほうがいい
2017/09/09(土) 13:29:46.77ID:WZb5jfgG
なんか昨日から変なところでstatic使えとか意味不明なこと言ってる人がいるけど、
Cのstatic付きのローカル変数と勘違いしてないか?w
それC#にはないよ
VBにはあるけどねw
Cのstatic付きのローカル変数と勘違いしてないか?w
それC#にはないよ
VBにはあるけどねw
2017/09/09(土) 13:49:42.28ID:mQdlpUO1
>>22
何の話をしているんだ
元の質問が別のclass内のメソッドを呼びたいが1秒ごとに呼び出すのに毎回インスタンスを作りたくないので
そのメソッドをstaticにしてインスタンス作らずに呼べるようにした方がいいかってものだった
だから上の方でそのインスタンスをフィールドで持っておけば済むって話になってんの
何の話をしているんだ
元の質問が別のclass内のメソッドを呼びたいが1秒ごとに呼び出すのに毎回インスタンスを作りたくないので
そのメソッドをstaticにしてインスタンス作らずに呼べるようにした方がいいかってものだった
だから上の方でそのインスタンスをフィールドで持っておけば済むって話になってんの
2017/09/09(土) 14:06:55.82ID:WZb5jfgG
2017/09/09(土) 14:17:10.91ID:yizOjyJK
質問でも回答でもない雑談なら他でやれよ
2017/09/09(土) 15:31:26.30ID:mbeKZ08U
>>23
わかりやすい
わかりやすい
2017/09/09(土) 15:55:44.10ID:usm4kYFG
2017/09/09(土) 17:51:48.60ID:f8+hvMV6
2017/09/09(土) 18:18:19.52ID:usm4kYFG
>>28
え?
憶測だけど
イベント内で毎回生成される
var a=new ClassA();
a.Do(b);
を
staticメソッドのClassA.Do(b)にしようかということじゃないのか?
;初心者の質問なんてその程度だろ
どこからc++のstaticと勘違いしてるなんて変な主張が出てくるのかわからない
え?
憶測だけど
イベント内で毎回生成される
var a=new ClassA();
a.Do(b);
を
staticメソッドのClassA.Do(b)にしようかということじゃないのか?
;初心者の質問なんてその程度だろ
どこからc++のstaticと勘違いしてるなんて変な主張が出てくるのかわからない
2017/09/09(土) 18:24:38.82ID:usm4kYFG
インスタンスのフィールドでaを持てって話も出てるけど
そもそもインスタンス作る必要もないものをわざわざ保存しておく意味はないよ
それがなぜだか生成コストの話になりそっちに付き合って話したら妙な揚げ足取りみたいのに
絡まれていいことないわ
そもそもインスタンス作る必要もないものをわざわざ保存しておく意味はないよ
それがなぜだか生成コストの話になりそっちに付き合って話したら妙な揚げ足取りみたいのに
絡まれていいことないわ
2017/09/09(土) 18:28:32.66ID:f8+hvMV6
>>29
何周遅れの話をしてるのよ。疲れるわ
だから、staticで書けるメソッドならstaticで書くのが当たり前で、
それをあえてインスタンスメソッドとして書くという選択肢は存在しない。
何が「え?」だよ。こっちが言いたいよw
何周遅れの話をしてるのよ。疲れるわ
だから、staticで書けるメソッドならstaticで書くのが当たり前で、
それをあえてインスタンスメソッドとして書くという選択肢は存在しない。
何が「え?」だよ。こっちが言いたいよw
2017/09/09(土) 18:30:13.39ID:usm4kYFG
だからそこでおわってんだよ
でなんでc++のstaticが出てきたり
質問者が勘違いしてstaticって言ってるみたいなトンチンカンな話になるのかと
もうおとなしくしてればいいのに
でなんでc++のstaticが出てきたり
質問者が勘違いしてstaticって言ってるみたいなトンチンカンな話になるのかと
もうおとなしくしてればいいのに
2017/09/09(土) 18:32:50.82ID:usm4kYFG
2017/09/09(土) 18:34:06.78ID:xrlCaMPb
「staticは関係ない」って書いている奴はC#の前に日本語勉強しろよ
2017/09/09(土) 18:34:21.92ID:f8+hvMV6
なんか日本語「も」不自由な人みたいだね
何言ってるのかさっぱり分からんw
何言ってるのかさっぱり分からんw
2017/09/09(土) 18:35:50.91ID:usm4kYFG
2017/09/09(土) 19:41:37.58ID:FYc/xt6+
2017/09/09(土) 19:47:52.23ID:m2qj4yLN
>>31
それは大間違い。staticで書かなくても良いものは極力インスタンスメソッドにするべきだな
それは大間違い。staticで書かなくても良いものは極力インスタンスメソッドにするべきだな
2017/09/09(土) 19:52:01.12ID:GUslkcWv
2017/09/09(土) 19:55:18.70ID:G5uGYTR5
2017/09/09(土) 19:59:42.49ID:GUslkcWv
>>40
は?お前はどうしたいの?
は?お前はどうしたいの?
2017/09/09(土) 20:03:34.87ID:suZLJloi
ワッチョイが無いとこの一連全部同一人物なんじゃないのと勘ぐっちゃうわ
2017/09/09(土) 20:29:10.27ID:f8+hvMV6
2017/09/09(土) 21:30:45.08ID:usm4kYFG
前に会ったRuby使いはクラスメソッド(c#のstaticメソッド)は極力使わないで
インスタンスメソッドを使うべきだって言ってたのを思い出した
何らかの理由があるんだろうけど無視した
インスタンスメソッドを使うべきだって言ってたのを思い出した
何らかの理由があるんだろうけど無視した
2017/09/09(土) 22:09:15.56ID:wzTKK5fz
どっちがいいって話じゃないけど、あとで実装を差し替える可能性があるなら
クラスメソッドを直接使わずにシングルトンにするって手法はある。
クラスメソッドを直接使わずにシングルトンにするって手法はある。
2017/09/09(土) 22:28:01.73ID:m2qj4yLN
インスタンスってのは主に多重実行のための仕組みなんだから、ある程度適当に作ってもスレッドセーフな物が出来上がる
staticで作るなら、複数のスレッドから同時多数アクセスが有っても大丈夫なように組まないといけないし
それが面倒だから極力スタティックは避けるべきだと思うんだがな
staticで作るなら、複数のスレッドから同時多数アクセスが有っても大丈夫なように組まないといけないし
それが面倒だから極力スタティックは避けるべきだと思うんだがな
47デフォルトの名無しさん
2017/09/09(土) 23:17:45.56ID:nwiyZr1T Taskでも内部でThreadPoolを使うから
(ThreadPool.SetMinThreads(実行したい数))は必要だけど
ThreadPool実行で実行して待ち合わせ
とTaskで実行して、Task.WhenAll
は何が違いますか?
そもそも、ThreadPoolは必要ないですけど気になったので、質問します。
(ThreadPool.SetMinThreads(実行したい数))は必要だけど
ThreadPool実行で実行して待ち合わせ
とTaskで実行して、Task.WhenAll
は何が違いますか?
そもそも、ThreadPoolは必要ないですけど気になったので、質問します。
2017/09/09(土) 23:20:05.29ID:5C7c1QNW
極力staticメソッドを使うという方針を取ると
関数用クラスとデータ用クラスに分かれやすくオブジェクト指向の考え方からは離れやすい
OO的にはアンチパターンになる可能性もあるけどトレードオフを理解して方針を決めればいいと思うよ
関数用クラスとデータ用クラスに分かれやすくオブジェクト指向の考え方からは離れやすい
OO的にはアンチパターンになる可能性もあるけどトレードオフを理解して方針を決めればいいと思うよ
2017/09/10(日) 00:19:09.54ID:0Cs8J57s
>>18
そうですね。
今回の場合、相手がアレで。向こうが予期しない要素を含むデータを送ると不正終了するらしく。
最初の質問前に時間がなかったのでデータクラスを完全に2つに分けて作ってしのいでたのですが、そのままにするしかないかも。。
そうですね。
今回の場合、相手がアレで。向こうが予期しない要素を含むデータを送ると不正終了するらしく。
最初の質問前に時間がなかったのでデータクラスを完全に2つに分けて作ってしのいでたのですが、そのままにするしかないかも。。
50デフォルトの名無しさん
2017/09/10(日) 00:57:09.14ID:pV2ta4X551デフォルトの名無しさん
2017/09/10(日) 01:13:53.87ID:dSp+Ezdg52デフォルトの名無しさん
2017/09/10(日) 01:40:04.99ID:pV2ta4X52017/09/10(日) 01:42:59.22ID:MMSQKBM8
>>51
いや普通にTask実行Task.WhenAllで良いんじゃね
いや普通にTask実行Task.WhenAllで良いんじゃね
54デフォルトの名無しさん
2017/09/10(日) 02:11:55.78ID:dSp+Ezdg >> 53
やっぱり、メソッド分けてasync/await使いたくなる気がする。
ThreadPoolの方がメソッド分けしない糞コードでも書きやすい。
やっぱり、メソッド分けてasync/await使いたくなる気がする。
ThreadPoolの方がメソッド分けしない糞コードでも書きやすい。
2017/09/10(日) 03:56:30.01ID:6GasKA+m
わざわざ低位のThreadPoolを使うメリット無いだろ。
ちなみにTaskの方は生成時のオプションでThreadPool使わず専用スレッドを割り当てたりも出来る。
ちなみにTaskの方は生成時のオプションでThreadPool使わず専用スレッドを割り当てたりも出来る。
2017/09/10(日) 04:49:01.84ID:hdyOlPd+
超低レベルな質問ですみません
wpfで実験しています
ボタンを押すとLabelが回転するというテストです
ボタンはトグル処理してあって押すと回転、もう一度押すと止まっるという作動です
int band = 0;
DispatcherTimer tim = new DispatcherTimer();
public void Rotet()
{
label01.Content = "自動回転";
tim.Start();
tim.Interval = TimeSpan.FromMilliseconds(10);
tim.Tick += Tim_Tick1;
}
public void Rotstop()
{
label01.Content = "自動回転停止";
tim.Stop();
}
wpfで実験しています
ボタンを押すとLabelが回転するというテストです
ボタンはトグル処理してあって押すと回転、もう一度押すと止まっるという作動です
int band = 0;
DispatcherTimer tim = new DispatcherTimer();
public void Rotet()
{
label01.Content = "自動回転";
tim.Start();
tim.Interval = TimeSpan.FromMilliseconds(10);
tim.Tick += Tim_Tick1;
}
public void Rotstop()
{
label01.Content = "自動回転停止";
tim.Stop();
}
2017/09/10(日) 04:49:17.97ID:hdyOlPd+
public void Tim_Tick1(object sender, EventArgs e)
{
band++;
label01.RenderTransform = new RotateTransform
{
Angle = band
};
}
10ミリ秒毎に1度回転するという作動を希望しています
が、トグルボタンを押してRotetを呼び出すたびに、band++での増加量が加算されてしまいます
5回Rotetを呼び出すと10ミリ秒毎に5増えます
増加量は常に1であって欲しいのですが、これの根本原因はなんでしょうか?
{
band++;
label01.RenderTransform = new RotateTransform
{
Angle = band
};
}
10ミリ秒毎に1度回転するという作動を希望しています
が、トグルボタンを押してRotetを呼び出すたびに、band++での増加量が加算されてしまいます
5回Rotetを呼び出すと10ミリ秒毎に5増えます
増加量は常に1であって欲しいのですが、これの根本原因はなんでしょうか?
2017/09/10(日) 05:21:45.40ID:6GasKA+m
2017/09/10(日) 07:49:42.90ID:hdyOlPd+
>>58
どうもありがとうございます
今VS立ち上げられないので確認はあとになりますが、教えていただいた内容は把握できました
後、たしかにstartのタイミングおかしかったですね
こっちも直してみます
どうもありがとうございました
どうもありがとうございます
今VS立ち上げられないので確認はあとになりますが、教えていただいた内容は把握できました
後、たしかにstartのタイミングおかしかったですね
こっちも直してみます
どうもありがとうございました
2017/09/10(日) 08:59:57.01ID:hdyOlPd+
61デフォルトの名無しさん
2017/09/10(日) 11:02:35.14ID:u2dcVsCu >>55
既存のメソッドに手を加えずtaskにできますか?
既存のメソッドに手を加えずtaskにできますか?
62デフォルトの名無しさん
2017/09/10(日) 18:43:13.56ID:yZp0NmX3 Macで開発されている方がいましたら環境を教えて欲しいです
visual studio for macはwindowsアプリを作らなければ不便はありませんか?
visual studio for macはwindowsアプリを作らなければ不便はありませんか?
2017/09/11(月) 03:02:17.61ID:OjrsKbwz
64デフォルトの名無しさん
2017/09/11(月) 04:22:03.43ID:xOd8/hnB インターフェイス(ICollection)を実装しています。
例えば、.Clear() メソッドを実装するときに、
public void ICollection<String[]>.Clear()
{
のように、public を付けると、怒られます。
修飾子 public がこの項目に対して有効ではありません。
合理的な理由でもあるのでしょうか。
例えば、.Clear() メソッドを実装するときに、
public void ICollection<String[]>.Clear()
{
のように、public を付けると、怒られます。
修飾子 public がこの項目に対して有効ではありません。
合理的な理由でもあるのでしょうか。
65デフォルトの名無しさん
2017/09/11(月) 06:00:48.58ID:dDtMImyT2017/09/11(月) 08:29:53.19ID:qHOAMFMh
>>65
何言ってるのかさっぱりわからんね
何言ってるのかさっぱりわからんね
2017/09/11(月) 08:52:59.26ID:OjrsKbwz
>>65
それはThreadPoolは実行されるスレッド数を少なく抑えて処理を順番にこなすための仕組みだから。
長時間の処理だとThreadPoolの少ない実行スレッドの1つを占有してしまう。
ThreadPoolの実行スレッド数の上限を増やしても良いけど、それより専用のスレッドを割り当てたら方が良いだろう。
Taskの場合は、LongRunningオプションを付ければ、ThreadPoolではなく専用スレッドになる。
それはThreadPoolは実行されるスレッド数を少なく抑えて処理を順番にこなすための仕組みだから。
長時間の処理だとThreadPoolの少ない実行スレッドの1つを占有してしまう。
ThreadPoolの実行スレッド数の上限を増やしても良いけど、それより専用のスレッドを割り当てたら方が良いだろう。
Taskの場合は、LongRunningオプションを付ければ、ThreadPoolではなく専用スレッドになる。
2017/09/11(月) 09:22:14.90ID:/+/7clo/
>>64
publicを付けたければICollection<>.を外せばいい。
インターフェイス名.メソッド名 の形のメソッド定義はインターフェイスメンバの明示的実装といって、
クラスとして見ると不可視だけどインターフェイスを通せばアクセスできるメソッド定義方式。
なのでpublicでもprivateでもないということでアクセスレベルを指定できない。
publicを付けたければICollection<>.を外せばいい。
インターフェイス名.メソッド名 の形のメソッド定義はインターフェイスメンバの明示的実装といって、
クラスとして見ると不可視だけどインターフェイスを通せばアクセスできるメソッド定義方式。
なのでpublicでもprivateでもないということでアクセスレベルを指定できない。
69デフォルトの名無しさん
2017/09/11(月) 10:29:45.93ID:dDtMImyT >>67
その処理以外やらないなら、どうでもよくね?
その処理以外やらないなら、どうでもよくね?
70デフォルトの名無しさん
2017/09/11(月) 10:44:26.27ID:pmpZkIs4 まあ小さいプログラムで全部把握できて問題ないと判断できるなら好きにすればいいだろ
2017/09/11(月) 11:38:40.59ID:8iugXZk3
書いてあった
これ馬鹿の証な
これ馬鹿の証な
72デフォルトの名無しさん
2017/09/11(月) 12:59:45.47ID:dDtMImyT 馬鹿でも使えるってのは重要
async/awaitなんて頭の良い奴しか使えない
しかも必要のない簡単なレベルの処理もある
async/awaitなんて頭の良い奴しか使えない
しかも必要のない簡単なレベルの処理もある
73デフォルトの名無しさん
2017/09/11(月) 15:25:28.66ID:4atU11H8 C#は馬鹿でもできちゃうけど
逆引きサンプルを適当に見つけてきてコピペするだけで完了
でもVC#使わないとGUIが作れない
VC#が作る雛形何なのかすら知らない
一からテキストエディタだけで作れるのはコマンドラインツールぐらいしかできない
逆引きサンプルを適当に見つけてきてコピペするだけで完了
でもVC#使わないとGUIが作れない
VC#が作る雛形何なのかすら知らない
一からテキストエディタだけで作れるのはコマンドラインツールぐらいしかできない
2017/09/11(月) 15:41:22.50ID:n0q9WWLR
label内に複数行を表示すると、表示領域外にまで改行された行が表示されず、上部の行だけが表示されます
最下行基準で、入り切らない部分は上部の行をスクロールアウトさせて表示させたいのですがやり方が検索しても上手く探せませんでした
どういう方法がありますか?
最下行基準で、入り切らない部分は上部の行をスクロールアウトさせて表示させたいのですがやり方が検索しても上手く探せませんでした
どういう方法がありますか?
2017/09/11(月) 16:01:55.79ID:D2XcMjyP
>>73
お前CLIでWebアプリ作れねーのかよ
お前CLIでWebアプリ作れねーのかよ
2017/09/11(月) 16:17:45.12ID:1TpoY8sm
>>74
OnPaintをオーバーライドしてDrawString使って自分で実装するしかないでしょう
OnPaintをオーバーライドしてDrawString使って自分で実装するしかないでしょう
2017/09/11(月) 17:37:45.41ID:n0q9WWLR
2017/09/11(月) 18:57:43.16ID:JSNADtu1
リファクタリングしてくれるサービスないかな?
糞長いコード書いて可読性やばいんだわ
糞長いコード書いて可読性やばいんだわ
2017/09/11(月) 19:02:47.03ID:McMCGXVu
githubに上げてここにURL晒せばみんながボコボコに叩いてくれるよ
2017/09/11(月) 19:10:16.26ID:JSNADtu1
>>79
優しくしてくれないと発狂しそう
優しくしてくれないと発狂しそう
81デフォルトの名無しさん
2017/09/11(月) 21:03:26.89ID:9wMrToxf class A{ public virtual void test(){} }
class B : A{ public override void test(){} }
var b = new B();
b.test();
bからAのtestを呼びたい場合はどうすればいいでしょうか。
class B : A{ public override void test(){} }
var b = new B();
b.test();
bからAのtestを呼びたい場合はどうすればいいでしょうか。
2017/09/11(月) 21:11:05.30ID:McMCGXVu
2017/09/11(月) 21:12:50.19ID:1TpoY8sm
2017/09/11(月) 21:26:34.21ID:wRb7h9Km
85デフォルトの名無しさん
2017/09/11(月) 21:31:06.84ID:9wMrToxf >>84
状況によって派生された処理ではなくオリジナルの処理をしたいだけです
状況によって派生された処理ではなくオリジナルの処理をしたいだけです
2017/09/11(月) 21:35:23.53ID:wRb7h9Km
2017/09/11(月) 21:36:40.45ID:zUMWcZ3H
日本語で無駄なやり取りするより>>83みたいにURL1つ貼ってコレ見ろでいいじゃないの
設計がどうのとか言ってもしゃーないし
設計がどうのとか言ってもしゃーないし
88デフォルトの名無しさん
2017/09/11(月) 21:41:05.67ID:9wMrToxf2017/09/11(月) 21:45:55.36ID:mdk6iQ5T
できねえから考え方を改めろ
2017/09/11(月) 21:56:12.41ID:1TpoY8sm
>>88
Bにベースクラスのtestを呼ぶメソッドが用意されていなければ普通の方法では不可能でしょう
Bにベースクラスのtestを呼ぶメソッドが用意されていなければ普通の方法では不可能でしょう
91デフォルトの名無しさん
2017/09/11(月) 21:58:07.40ID:9wMrToxf >>90
その方法にすることにします
その方法にすることにします
2017/09/11(月) 22:04:35.15ID:S1tKpOaB
2017/09/11(月) 22:23:45.62ID:wRb7h9Km
overrideをnewに変えてBaseクラスにキャストしてから使えば
同じメソッド名でBaseクラスのを呼び出せる
同じメソッド名でBaseクラスのを呼び出せる
2017/09/11(月) 23:37:21.39ID:adY5bmZu
overrideしなきゃいいだけじゃないの?
95デフォルトの名無しさん
2017/09/11(月) 23:48:23.10ID:xOd8/hnB >>68
とてもわかりやすく有難うございました!
インターフェイスに実装方法が二種類あるとは知りませんでした。
明示的ではない方で実装したいと思います。
結構ぐぐったんですが、それについて述べられたページが見つからなかったし、
C#のハンドブックにも載っていなかったことなのでとてもためになりました。
とてもわかりやすく有難うございました!
インターフェイスに実装方法が二種類あるとは知りませんでした。
明示的ではない方で実装したいと思います。
結構ぐぐったんですが、それについて述べられたページが見つからなかったし、
C#のハンドブックにも載っていなかったことなのでとてもためになりました。
2017/09/12(火) 09:00:44.91ID:EOOe72TQ
○次受けが多いほど退場率が早くなる。高くなる
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる
eJobgo JIET JISA で検索
優良エージェント・優良サイト
首都圏IT(PE-BANK) クラウドテック プログラマーズ
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ
長時間労働 高稼働 高スキル要求が多い
フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる
eJobgo JIET JISA で検索
優良エージェント・優良サイト
首都圏IT(PE-BANK) クラウドテック プログラマーズ
97デフォルトの名無しさん
2017/09/12(火) 09:41:27.60ID:BNnArjmm Listのselectで入力された値に応じてPropertyを指定したいのですが、もっとスマートなやり方がありそうなので教えてください
今は↓のように手作業で全パターンをチェックしていて、
class Product {
string Field1 ...
string Field2 ...
...
}
List<Product> list = ...
string input = ...
switch (input) {
case "Field1":
result = list.select(p => p.Field1);
break;
case "Field2":
result = list.select(p => p.Field2);
break;
...
と、続いて長いくて見辛いし手間
}
これを
result = list.select(p => p[input]);
こんな感じで入力された値に応じて返す方法を知りたいです
今は↓のように手作業で全パターンをチェックしていて、
class Product {
string Field1 ...
string Field2 ...
...
}
List<Product> list = ...
string input = ...
switch (input) {
case "Field1":
result = list.select(p => p.Field1);
break;
case "Field2":
result = list.select(p => p.Field2);
break;
...
と、続いて長いくて見辛いし手間
}
これを
result = list.select(p => p[input]);
こんな感じで入力された値に応じて返す方法を知りたいです
2017/09/12(火) 10:57:43.00ID:3hDQXbkU
2017/09/12(火) 11:24:21.98ID:0auESU8x
>>98
答えられないなら黙ってればいいのに
答えられないなら黙ってればいいのに
100デフォルトの名無しさん
2017/09/12(火) 11:26:42.14ID:FDETfUWp >>97
Dictionaryは?
Dictionaryは?
101デフォルトの名無しさん
2017/09/12(火) 11:29:54.29ID:FDETfUWp Enum使う手もあるけど
用途次第
用途次第
102デフォルトの名無しさん
2017/09/12(火) 11:42:24.56ID:3hDQXbkU >>97
linqは遅いので使わない方法に直す
linqは遅いので使わない方法に直す
103デフォルトの名無しさん
2017/09/12(火) 12:06:09.15ID:vpJikBX5 >>102
その程度の差が問題になるくらいシビアなパフォーマンスを求められる場合ならばね
その程度の差が問題になるくらいシビアなパフォーマンスを求められる場合ならばね
104デフォルトの名無しさん
2017/09/12(火) 12:23:45.40ID:1FkmH3QI class Product
{
string Field1 ...
string Field2 ...
...
private static Dictionary<string, Func<Product, string>> mSelectorTable
= new Dictionary<string, Func<Product, string>>()
{
{"Field1", p => p.Field1},
{"Field2", p => p.Field2},
...
}
public static Func<Product, string> GetSelector(string key)
{ return mSelectorTable[key]; }
}
...
var s = Product.GetSelector(input);
var result = list.select(s);
{
string Field1 ...
string Field2 ...
...
private static Dictionary<string, Func<Product, string>> mSelectorTable
= new Dictionary<string, Func<Product, string>>()
{
{"Field1", p => p.Field1},
{"Field2", p => p.Field2},
...
}
public static Func<Product, string> GetSelector(string key)
{ return mSelectorTable[key]; }
}
...
var s = Product.GetSelector(input);
var result = list.select(s);
105デフォルトの名無しさん
2017/09/12(火) 12:27:58.67ID:3hDQXbkU >>103
わざわざ遅い方法で書く必要もないだろ
わざわざ遅い方法で書く必要もないだろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★2 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ [蚤の市★]
- 国民 居住目的でない住宅所有者に「空室税」課せる法案を提出 ★3 [少考さん★]
- 「働いて働いて」の流行語大賞に懸念 「言葉が独り歩き」 過労自殺遺族 [尺アジ★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【EV新税】最大2万4千円で検討 28年から、普及妨げると異論も [蚤の市★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★1
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 【悲報】高市内閣、閣議決定後の文書を修正。木原官房長官が謝罪 [834922174]
- 【悲報】高市早苗、被災民に対し「自分の命くらいは自分で守ってくださいね」と切り捨てし大炎上 [339712612]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★2
- 🏡
