- 1 名前:デフォルトの名無しさん [2017/09/08(金) 18:12:11.06 ID:Ej7G00WU.net]
- 「どんなにくだらない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 echo.2ch.net/test/read.cgi/tech/1492843013/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/
- 2 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 21:39:46.11 ID:mcCYyLIS.net]
- >>1
乙 ボーリング処理だったか..
- 3 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 21:41:20.91 ID:13cy/HVm.net]
- そうそうw
ボーリング処理ってなんだよ わかるかよ 957 名前:デフォルトの名無しさん (ブーイモ MMba-d5PD)[sage] 投稿日:2017/09/07(木) 16:48:04.48 ID:CjGXGOTyM [2/2] 1秒毎にボーリング処理するなかであるクラスのメソッドを呼び出す場合、毎回newするのは悪手ですか?staticが基本でしょうか?
- 4 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 21:44:51.40 ID:13cy/HVm.net]
- 答え
普通のstaticで済む用途ならstaticで書いたほうがいい 負荷やリソースじゃなくて毎回newする意味がない sin計算するとして毎回Mathインスタンスをnewしなくてはいけない設計だったら糞だなって思う
- 5 名前:前スレ 966 mailto:sage [2017/09/08(金) 21:52:15.93 ID:nZ7nhjDi.net]
- 前スレ >>968 の ID:VpThhHIU0 さん。
助かりました。ありがとう。 その例外メッセージ後半が目に入っていませんでした。。おバカでした。 後半の方法で対応できたのですが。 この方法で派生先クラスをシリアライズすると、クラスの情報も一緒に出力されるんですね。 出力しない方法があったら知りたいです。もっと探せば見つかるかなあ。
- 6 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 22:04:57.94 ID:5liNTHI5.net]
- 前スレ>>975
> 1分以上止まっちゃってたことあるよ その時の.Net Frameworkのバージョンいくつだったんだろ。 今はバックグラウンドGCとか、GCも改良されてて長期間止まり難くなってるけど。
- 7 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 22:10:04.29 ID:5liNTHI5.net]
- 改良されたとは言っても、全く止まらない訳じゃないから、
数100msecでも止まって欲しくない場合は、やっぱり手動でGCを制御する必要があるけどね。
- 8 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 22:45:19.27 ID:Ej7G00WU.net]
- >>4
答になってないよw staticで済む用途ならstaticで書いたほうがいい、ではなくてそれはstaticで書かなきゃだめw 最初から言ってるように、毎回newするのと対立する方法は、 フィールドでインスタンスを持っておこくと。
- 9 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 23:26:37.19 ID:13cy/HVm.net]
- >>8
>普通のstaticで済む用途なら
- 10 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 23:50:16.96 ID:Ej7G00WU.net]
- >>9
意味が分からない 普通であろうがなかろうが、staticで書けるメソッドをインスタンスメソッドで書く意味はないし やってはダメだろうに
- 11 名前:デフォルトの名無しさん mailto:sage [2017/09/08(金) 23:53:51.95 ID:mcCYyLIS.net]
- 気分はstaticになってきたな
- 12 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 02:26:05.00 ID:QZscGhnQ.net]
- staticおじさんがまた大勝利してしまったと聞いて
- 13 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 03:16:09.56 ID:ZyaEKkZw.net]
- 前すれワッチョイとかいうのだったんだな
2chのシステムよく知らんので普通のスレで立てちゃったよ やり方知らんしw 気に入らなかったら別のスレ立ててね
- 14 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 03:27:48.28 ID:Dk6TKP7N.net]
- 1月強で1000行くんだから我慢して使い切れよ
- 15 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 06:30:41.62 ID:mbeKZ08U.net]
- おまいらに真実を話す。ポーリングって確かに打ったんだわ。スマホが勝手にボーリングに変換してたんだわ
ATOKあほすぎんだろ
- 16 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 08:37:40.24 ID:GUslkcWv.net]
- 変換はgoogleのが絶対いいな
流行りのワードも出てくるし これ以外考えられないって性能になっちゃってないか?
- 17 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 10:04:18.06 ID:m2qj4yLN.net]
- インスタンスをキープしたいのなら、ポーリングのクラスにフィールド設定してそこに置けば済むわけでstatic classは有り得ないわな
static classはグローバル参照がどうしても必要な設定値とか、拡張メソッドとか、Mathのようなライブラリで使うもので 不用意に使うとろくな事がない代物だ
- 18 名前:デフォルトの名無しさん [2017/09/09(土) 10:20:42.56 ID:6JP7a1zU.net]
- >>5
DataContractSerializer系じゃ無理なはず 飽くまでシリアライザなんでデシリアライズできなきゃならない 型情報が無くなったら元のどの型にデシリアライズすればいいか分からなくなっちゃう
- 19 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 10:39:45.84 ID:IbIBfPO7.net]
- それでも書いた処理によってガベコレまでの一時メモリリークは起こるので強制ガベコレの管理はどうせ必要になる
誰かのライブラリ使ってて中がブラックボックスだったときにガベコレまでの一時メモリリークは気づけない staticで変数用意してもそれがすべてと言い切れないなら意味がない 無駄な努力じゃねーかな?
- 20 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 10:42:06.00 ID:bgDvHBVU.net]
- >>17
だいたいあっているけどstaticにしようとしていたのはメソッド
- 21 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 11:56:12.29 ID:usm4kYFG.net]
- ライブラリだったら内部の構造は考えられずガンガン使われるから
ポーリングクラスが1000個とか作られてつかえねーなって言われる だったらstaticな要素にしといたほうがいい
- 22 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 13:29:46.77 ID:WZb5jfgG.net]
- なんか昨日から変なところでstatic使えとか意味不明なこと言ってる人がいるけど、
Cのstatic付きのローカル変数と勘違いしてないか?w それC#にはないよ VBにはあるけどねw
- 23 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 13:49:42.28 ID:mQdlpUO1.net]
- >>22
何の話をしているんだ 元の質問が別のclass内のメソッドを呼びたいが1秒ごとに呼び出すのに毎回インスタンスを作りたくないので そのメソッドをstaticにしてインスタンス作らずに呼べるようにした方がいいかってものだった だから上の方でそのインスタンスをフィールドで持っておけば済むって話になってんの
- 24 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 14:06:55.82 ID:WZb5jfgG.net]
- >>23
だから、(これは質問者の質問のせいでもあるけど)話の最初からstaticなんて まったく関係ない。そんなことは機能かれ俺自身が言ってるのよ それとは別に、>>19とか>>21とか読むと、C#にもCのstaticなローカル変数が存在すると 勘違いしてるんじゃないかと
- 25 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 14:17:10.91 ID:yizOjyJK.net]
- 質問でも回答でもない雑談なら他でやれよ
- 26 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 15:31:26.30 ID:mbeKZ08U.net]
- >>23
わかりやすい
- 27 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 15:55:44.10 ID:usm4kYFG.net]
- >>24
誰もそんなことは言ってないのに 勝手にそう思ってるのはよくわかった 質問はstaticメソッドの話をしてるのはみんなわかってる
- 28 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 17:51:48.60 ID:f8+hvMV6.net]
- >>27
じゃあ何の話をしてるの? 率直に言って>>21は何を言ってるのかさっぱり分からん 昨日から言ってるし>>23も言ってるように、そももも元の質問者の話とstaticは何の関係もない。 恐らく質問者は何か勘違いしてstaticと書いてるだけ
- 29 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:18:19.52 ID:usm4kYFG.net]
- >>28
え? 憶測だけど イベント内で毎回生成される var a=new ClassA(); a.Do(b); を staticメソッドのClassA.Do(b)にしようかということじゃないのか? ;初心者の質問なんてその程度だろ どこからc++のstaticと勘違いしてるなんて変な主張が出てくるのかわからない
- 30 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:24:38.82 ID:usm4kYFG.net]
- インスタンスのフィールドでaを持てって話も出てるけど
そもそもインスタンス作る必要もないものをわざわざ保存しておく意味はないよ それがなぜだか生成コストの話になりそっちに付き合って話したら妙な揚げ足取りみたいのに 絡まれていいことないわ
- 31 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:28:32.66 ID:f8+hvMV6.net]
- >>29
何周遅れの話をしてるのよ。疲れるわ だから、staticで書けるメソッドならstaticで書くのが当たり前で、 それをあえてインスタンスメソッドとして書くという選択肢は存在しない。 何が「え?」だよ。こっちが言いたいよw
- 32 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:30:13.39 ID:usm4kYFG.net]
- だからそこでおわってんだよ
でなんでc++のstaticが出てきたり 質問者が勘違いしてstaticって言ってるみたいなトンチンカンな話になるのかと もうおとなしくしてればいいのに
- 33 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:32:50.82 ID:usm4kYFG.net]
- >昨日から言ってるし>>23も言ってるように、そももも元の質問者の話とstaticは何の関係もない。
>恐らく質問者は何か勘違いしてstaticと書いてるだけ こういうこと書いててよく言えるな
- 34 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:34:06.78 ID:xrlCaMPb.net]
- 「staticは関係ない」って書いている奴はC#の前に日本語勉強しろよ
- 35 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:34:21.92 ID:f8+hvMV6.net]
- なんか日本語「も」不自由な人みたいだね
何言ってるのかさっぱり分からんw
- 36 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 18:35:50.91 ID:usm4kYFG.net]
- >>35
じゃあ >>28の説明をまともにしてみろ
- 37 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:41:37.58 ID:FYc/xt6+.net]
- 荒れてるので、名のりにくいのですが、私が質問者です。
>>23 この記載で、最適解はこれだと認識しました。 で、質問した時点では >>29の憶測通り。 とりあえず個人的にはもう納得してるので、これで終わりにしてほしい。 皆さんありがとう
- 38 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:47:52.23 ID:m2qj4yLN.net]
- >>31
それは大間違い。staticで書かなくても良いものは極力インスタンスメソッドにするべきだな
- 39 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:52:01.12 ID:GUslkcWv.net]
- >>38
理由を書けよw いったいどういう育ち方したらそんな投げっぱなしのジャーマンなんだ?
- 40 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:55:18.70 ID:G5uGYTR5.net]
- >>38-39
いつまで続けてるの? 質問者が終了を宣言してんだよ
- 41 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 19:59:42.49 ID:GUslkcWv.net]
- >>40
は?お前はどうしたいの?
- 42 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 20:03:34.87 ID:suZLJloi.net]
- ワッチョイが無いとこの一連全部同一人物なんじゃないのと勘ぐっちゃうわ
- 43 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 20:29:10.27 ID:f8+hvMV6.net]
- >>39
>>38は釣りじゃなく本気で言ってるなら(恐らくそうw) 関わっても時間の無駄にしかならないお方だ。暇つぶしにはいいかもしれないけどw 時々対面の世界でもこういうガチで盛大な勘違いをやらかしてる人がいるから困るよ本当w
- 44 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 21:30:45.08 ID:usm4kYFG.net]
- 前に会ったRuby使いはクラスメソッド(c#のstaticメソッド)は極力使わないで
インスタンスメソッドを使うべきだって言ってたのを思い出した 何らかの理由があるんだろうけど無視した
- 45 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 22:09:15.56 ID:wzTKK5fz.net]
- どっちがいいって話じゃないけど、あとで実装を差し替える可能性があるなら
クラスメソッドを直接使わずにシングルトンにするって手法はある。
- 46 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 22:28:01.73 ID:m2qj4yLN.net]
- インスタンスってのは主に多重実行のための仕組みなんだから、ある程度適当に作ってもスレッドセーフな物が出来上がる
staticで作るなら、複数のスレッドから同時多数アクセスが有っても大丈夫なように組まないといけないし それが面倒だから極力スタティックは避けるべきだと思うんだがな
- 47 名前:デフォルトの名無しさん [2017/09/09(土) 23:17:45.56 ID:nwiyZr1T.net]
- Taskでも内部でThreadPoolを使うから
(ThreadPool.SetMinThreads(実行したい数))は必要だけど ThreadPool実行で実行して待ち合わせ とTaskで実行して、Task.WhenAll は何が違いますか? そもそも、ThreadPoolは必要ないですけど気になったので、質問します。
- 48 名前:デフォルトの名無しさん mailto:sage [2017/09/09(土) 23:20:05.29 ID:5C7c1QNW.net]
- 極力staticメソッドを使うという方針を取ると
関数用クラスとデータ用クラスに分かれやすくオブジェクト指向の考え方からは離れやすい OO的にはアンチパターンになる可能性もあるけどトレードオフを理解して方針を決めればいいと思うよ
- 49 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 00:19:09.54 ID:0Cs8J57s.net]
- >>18
そうですね。 今回の場合、相手がアレで。向こうが予期しない要素を含むデータを送ると不正終了するらしく。 最初の質問前に時間がなかったのでデータクラスを完全に2つに分けて作ってしのいでたのですが、そのままにするしかないかも。。
- 50 名前:デフォルトの名無しさん [2017/09/10(日) 00:57:09.14 ID:pV2ta4X5.net]
- >>47
既定ではスレッドプール使うってだけでTaskが後ろで何使うかは規定されてない あとWhenAllはasync/await向けに作られてる
- 51 名前:デフォルトの名無しさん [2017/09/10(日) 01:13:53.87 ID:dSp+Ezdg.net]
- >>50
規定なら同じですか? async/await使わないならthread poolの方が良いのかな?
- 52 名前:デフォルトの名無しさん [2017/09/10(日) 01:40:04.99 ID:pV2ta4X5.net]
- >>49
Json扱うならJson.NET使うのが良いよ 基本ライブラリ以外使っちゃダメとか言われてるならSystem.Web.Script.Serialization名前空間
- 53 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 01:42:59.22 ID:MMSQKBM8.net]
- >>51
いや普通にTask実行Task.WhenAllで良いんじゃね
- 54 名前:デフォルトの名無しさん [2017/09/10(日) 02:11:55.78 ID:dSp+Ezdg.net]
- >> 53
やっぱり、メソッド分けてasync/await使いたくなる気がする。 ThreadPoolの方がメソッド分けしない糞コードでも書きやすい。
- 55 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 03:56:30.01 ID:6GasKA+m.net]
- わざわざ低位のThreadPoolを使うメリット無いだろ。
ちなみにTaskの方は生成時のオプションでThreadPool使わず専用スレッドを割り当てたりも出来る。
- 56 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 04:49:01.84 ID:hdyOlPd+.net]
- 超低レベルな質問ですみません
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(); }
- 57 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 04:49:17.97 ID:hdyOlPd+.net]
- public void Tim_Tick1(object sender, EventArgs e)
{ band++; label01.RenderTransform = new RotateTransform { Angle = band }; } 10ミリ秒毎に1度回転するという作動を希望しています が、トグルボタンを押してRotetを呼び出すたびに、band++での増加量が加算されてしまいます 5回Rotetを呼び出すと10ミリ秒毎に5
- 58 名前:揩ヲます
増加量は常に1であって欲しいのですが、これの根本原因はなんでしょうか? [] - [ここ壊れてます]
- 59 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 05:21:45.40 ID:6GasKA+m.net]
- >>56
Tickイベントのハンドラ登録だけを毎回してるから。 登録は1度だけにするか、毎回解除もするようにしないと。 後、質問とは関係ないけど、タイマーを開始するタイミングもおかしい。
- 60 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 07:49:42.90 ID:hdyOlPd+.net]
- >>58
どうもありがとうございます 今VS立ち上げられないので確認はあとになりますが、教えていただいた内容は把握できました 後、たしかにstartのタイミングおかしかったですね こっちも直してみます どうもありがとうございました
- 61 名前:デフォルトの名無しさん mailto:sage [2017/09/10(日) 08:59:57.01 ID:hdyOlPd+.net]
- >>58
今VS2017C#で修正確認できました ありがとうございました
- 62 名前:デフォルトの名無しさん [2017/09/10(日) 11:02:35.14 ID:u2dcVsCu.net]
- >>55
既存のメソッドに手を加えずtaskにできますか?
- 63 名前:デフォルトの名無しさん [2017/09/10(日) 18:43:13.56 ID:yZp0NmX3.net]
- Macで開発されている方がいましたら環境を教えて欲しいです
visual studio for macはwindowsアプリを作らなければ不便はありませんか?
- 64 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 03:02:17.61 ID:OjrsKbwz.net]
- >>61
TaskでもThreadPoolでもThreadでも同じだけど、 既存メソッドがスレッドセーフでないなら、一般的なマルチスレッド対策は必要。
- 65 名前:デフォルトの名無しさん [2017/09/11(月) 04:22:03.43 ID:xOd8/hnB.net]
- インターフェイス(ICollection)を実装しています。
例えば、.Clear() メソッドを実装するときに、 public void ICollection<String[]>.Clear() { のように、public を付けると、怒られます。 修飾子 public がこの項目に対して有効ではありません。 合理的な理由でもあるのでしょうか。
- 66 名前:デフォルトの名無しさん [2017/09/11(月) 06:00:48.58 ID:dDtMImyT.net]
- >>63
ThreadPoolが長時間処理に向かないって書いてあったけど、それも嘘だと思う。 GUIアプリとかゲームなら表示を妨げるけど、データ処理だけやるなら変わらない。
- 67 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 08:29:53.19 ID:qHOAMFMh.net]
- >>65
何言ってるのかさっぱりわからんね
- 68 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 08:52:59.26 ID:OjrsKbwz.net]
- >>65
それはThreadPoolは実行されるスレッド数を少なく抑えて処理を順番にこなすための仕組みだから。 長時間の処理だとThreadPoolの少ない実行スレッドの1つを占有してしまう。 ThreadPoolの実行スレッド数の上限を増やしても良いけど、それより専用のスレッドを割り当てたら方が良いだろう。 Taskの場合は、LongRunningオプションを付ければ、ThreadPoolではなく専用スレッドになる。
- 69 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 09:22:14.90 ID:/+/7clo/.net]
- >>64
publicを付けたければICollection<>.を外せばいい。 インターフェイス名.メソッド名 の形のメソッド定義はインターフェイスメンバの明示的実装といって、 クラスとして見ると不可視だけどインターフェイスを通せばアクセスできるメソッド定義方式。 なのでpublicでもprivateでもないということでアクセスレベルを指定できない。
- 70 名前:デフォルトの名無しさん [2017/09/11(月) 10:29:45.93 ID:dDtMImyT.net]
- >>67
その処理以外やらないなら、どうでもよくね?
- 71 名前:デフォルトの名無しさん [2017/09/11(月) 10:44:26.27 ID:pmpZkIs4.net]
- まあ小さいプログラムで全部把握できて問題ないと判断できるなら好きにすればいいだろ
- 72 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 11:38:40.59 ID:8iugXZk3.net]
- 書いてあった
これ馬鹿の証な
- 73 名前:デフォルトの名無しさん [2017/09/11(月) 12:59:45.47 ID:dDtMImyT.net]
- 馬鹿でも使えるってのは重要
async/awaitなんて頭の良い奴しか使えない しかも必要のない簡単なレベルの処理もある
- 74 名前:デフォルトの名無しさん [2017/09/11(月) 15:25:28.66 ID:4atU11H8.net]
- C#は馬鹿でもできちゃうけど
逆引きサンプルを適当に見つけてきてコピペするだけで完了 でもVC#使わないとGUIが作れない VC#が作る雛形何なのかすら知らない 一からテキストエディタだけで作れるのはコマンドラインツールぐらいしかできない
- 75 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 15:41:22.50 ID:n0q9WWLR.net]
- label内に複数行を表示すると、表示領域外にまで改行された行が表示されず、上部の行だけが表示されます
最下行基準で、入り切らない部分は上部の行をスクロールアウトさせて表示させたいのですがやり方が検索しても上手く探せませんでした どういう方法がありますか?
- 76 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 16:01:55.79 ID:D2XcMjyP.net]
- >>73
お前CLIでWebアプリ作れねーのかよ
- 77 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 16:17:45.12 ID:1TpoY8sm.net]
- >>74
OnPaintをオーバーライドしてDrawString使って自分で実装するしかないでしょう
- 78 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 17:37:45.41 ID:n0q9WWLR.net]
- >>76
ありがとうございます 自分にはかなり無理なんでtextboxの方でどうにかしてみます
- 79 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 18:57:43.16 ID:JSNADtu1.net]
- リファクタリングしてくれるサービスないかな?
糞長いコード書いて可読性やばいんだわ
- 80 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 19:02:47.03 ID:McMCGXVu.net]
- githubに上げてここにURL晒せばみんながボコボコに叩いてくれるよ
- 81 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 19:10:16.26 ID:JSNADtu1.net]
- >>79
優しくしてくれないと発狂しそう
- 82 名前:デフォルトの名無しさん [2017/09/11(月) 21:03:26.89 ID:9wMrToxf.net]
- class A{ public virtual void test(){} }
class B : A{ public override void test(){} } var b = new B(); b.test(); bからAのtestを呼びたい場合はどうすればいいでしょうか。
- 83 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:11:05.30 ID:McMCGXVu.net]
- >>81
まっとうな方法はない MethodInfo使っても無理 ILGeneratorなどで(callvirtでなく)call命令を発行する必要がある
- 84 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:12:50.19 ID:1TpoY8sm.net]
- >>81
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/base
- 85 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:26:34.21 ID:wRb7h9Km.net]
- >>81
これを実現したいのって、具体的にどういうケースなの? 差し支えない範囲で用途を教えて
- 86 名前:デフォルトの名無しさん [2017/09/11(月) 21:31:06.84 ID:9wMrToxf.net]
- >>84
状況によって派生された処理ではなくオリジナルの処理をしたいだけです
- 87 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:35:23.53 ID:wRb7h9Km.net]
- >>85
それはわかってるよー その中身を聞いてるんだ
- 88 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:36:40.45 ID:zUMWcZ3H.net]
- 日本語で無駄なやり取りするより>>83みたいにURL1つ貼ってコレ見ろでいいじゃないの
設計がどうのとか言ってもしゃーないし
- 89 名前:デフォルトの名無しさん [2017/09/11(月) 21:41:05.67 ID:9wMrToxf.net]
- >>83
これを見てもよくわかりません。 メソッドの内部からbaseで基底クラスのメソッドにアクセスできる方法はしっています。 質問は変数bからAのtestを呼ぶ方法です。
- 90 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:45:55.36 ID:mdk6iQ5T.net]
- できねえから考え方を改めろ
- 91 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 21:56:12.41 ID:1TpoY8sm.net]
- >>88
Bにベースクラスのtestを呼ぶメソッドが用意されていなければ普通の方法では不可能でしょう
- 92 名前:デフォルトの名無しさん [2017/09/11(月) 21:58:07.40 ID:9wMrToxf.net]
- >>90
その方法にすることにします
- 93 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 22:04:35.15 ID:S1tKpOaB.net]
- >>52
それだ! < System.Web.Script.Serialization ありがとう。
- 94 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 22:23:45.62 ID:wRb7h9Km.net]
- overrideをnewに変えてBaseクラスにキャストしてから使えば
同じメソッド名でBaseクラスのを呼び出せる
- 95 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 23:37:21.39 ID:adY5bmZu.net]
- overrideしなきゃいいだけじゃないの?
- 96 名前:デフォルトの名無しさん [2017/09/11(月) 23:48:23.10 ID:xOd8/hnB.net]
- >>68
とてもわかりやすく有難うございました! インターフェイスに実装方法が二種類あるとは知りませんでした。 明示的ではない方で実装したいと思います。 結構ぐぐったんですが、それについて述べられたページが見つからなかったし、 C#のハンドブックにも載っていなかったことなのでとてもためになりました。
- 97 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 09:00:44.91 ID:EOOe72TQ.net]
- ○次受けが多いほど退場率が早くなる。高くなる
直受けの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) クラウドテック プログラマーズ
- 98 名前:デフォルトの名無しさん [2017/09/12(火) 09:41:27.60 ID:BNnArjmm.net]
- 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]); こんな感じで入力された値に応じて返す方法を知りたいです
- 99 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 10:57:43.00 ID:3hDQXbkU.net]
- >>97
お前何なの? 初心者じゃねーなら自分で勝手にやれよ
- 100 名前:デフォルトの名無しさん mailto:sage [2017/09/12(火) 11:24:21.98 ID:0auESU8x.net]
- >>98
答えられないなら黙ってればいいのに
- 101 名前:デフォルトの名無しさん [2017/09/12(火) 11:26:42.14 ID:FDETfUWp.net]
- >>97
Dictionaryは?
|

|