「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/
■関連スレ
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/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん
2017/05/02(火) 22:05:40.13ID:OPFlvhxj814デフォルトの名無しさん
2017/06/02(金) 15:39:57.73ID:89fS7Hhn 2020年って事かな
815デフォルトの名無しさん
2017/06/02(金) 15:50:00.22ID:PwRFjZu6 あ、2010は2020のタイポ。
失礼。
失礼。
816デフォルトの名無しさん
2017/06/02(金) 16:40:53.25ID:IXIbWrVF silverlightの代わりの話ですが
817デフォルトの名無しさん
2017/06/02(金) 18:42:49.51ID:S/qmGr4o Win7以前のフォームアプリすべて切り捨てたら4Kディスプレイでスケーリングがまともに使えるようになるんだがな
818デフォルトの名無しさん
2017/06/02(金) 19:00:32.02ID:vakza0ST >>817
スケなんかできたところで金になんねーだろ
誰が喜ぶんだよ?
入出庫管理アプリ作ったとしてピンチインピンチアウトなんてお客がやると思ってるの?
オメーがエロ画像見てるときぐらいだろそんなの必要なのは
スケなんかできたところで金になんねーだろ
誰が喜ぶんだよ?
入出庫管理アプリ作ったとしてピンチインピンチアウトなんてお客がやると思ってるの?
オメーがエロ画像見てるときぐらいだろそんなの必要なのは
819デフォルトの名無しさん
2017/06/02(金) 19:14:55.03ID:DJo44r8c 横からだがスケーリングは高解像度でもフォントが綺麗な方向だと思うぞ。
入出庫管理ならAndroidなりWinなりの8型タブにバーコードリーダー繋げてた方が便利だろ。
今時タブのが高解像度だが、Formsのままだと高解像度だと文字が読みにくい。
入出庫管理ならAndroidなりWinなりの8型タブにバーコードリーダー繋げてた方が便利だろ。
今時タブのが高解像度だが、Formsのままだと高解像度だと文字が読みにくい。
820デフォルトの名無しさん
2017/06/02(金) 19:21:18.48ID:8OnrstJc 入出庫管理なんかどうせ固定画面なんだからどうでもいい
フォントをでかくすりゃいいだけ
フォントをでかくすりゃいいだけ
821デフォルトの名無しさん
2017/06/02(金) 19:24:01.65ID:o92K2+Vm >>817
そんなくだらねーもんのためにフォームアプリの全廃を願ってるってのが狂気だよね
そんなくだらねーもんのためにフォームアプリの全廃を願ってるってのが狂気だよね
822デフォルトの名無しさん
2017/06/02(金) 19:37:19.56ID:C+qIFQhN UWPはC#でありながらC++並の表示速度が有って、
更にソース丸見え問題が仕組み上解決されている
windows10専用が問題なくなる3年後には、
C++を上書きするポテンシャルが有るよ
更にソース丸見え問題が仕組み上解決されている
windows10専用が問題なくなる3年後には、
C++を上書きするポテンシャルが有るよ
823デフォルトの名無しさん
2017/06/02(金) 19:47:25.36ID:ZAKDk1cn テンがなくなるとポシャルだと
824デフォルトの名無しさん
2017/06/02(金) 19:48:08.14ID:NXEMQO7P 0点
825デフォルトの名無しさん
2017/06/02(金) 20:03:40.45ID:xUiVlsMK >>819
.NET4.7
.NET4.7
826デフォルトの名無しさん
2017/06/02(金) 20:18:17.15ID:bsjc0qn7 高dpiモニターは医療とヲタ向け以外あんまり需要なさそうな気はするね
コモディティー化したらどうだかわからんが
UWPって現状所詮ストアアプリと同じサブセットじゃん
標準の.NETの方がUWPの要素を取り入れることはあってもUWPが
デスクチップアプリを置き換えるとか100%ないわ
コモディティー化したらどうだかわからんが
UWPって現状所詮ストアアプリと同じサブセットじゃん
標準の.NETの方がUWPの要素を取り入れることはあってもUWPが
デスクチップアプリを置き換えるとか100%ないわ
827デフォルトの名無しさん
2017/06/02(金) 20:30:24.81ID:C+qIFQhN828デフォルトの名無しさん
2017/06/02(金) 20:35:26.14ID:bsjc0qn7829デフォルトの名無しさん
2017/06/02(金) 20:37:39.62ID:8OnrstJc データグリッド使うようなアプリはWebへ行くわな
今更またいつ投げ出すか分からん新技術に賭けるリスクをペイできない
今更またいつ投げ出すか分からん新技術に賭けるリスクをペイできない
830デフォルトの名無しさん
2017/06/02(金) 20:52:27.48ID:SPpZD+rV UWPってスタンドアロンなアプリはゲームくらいのもんで、
基本的にはWebサービスのフロントエンドを作ることを想定したプラットフォームだよ
今の時代バックエンドとしてWeb APIがあるのは当然で、
その上で薄い薄い上っ面をUWPで作るかWebブラウザで作るかという程度のどうでもいい話でしかない
WinForms対WPFとかやってた頃とはもうアプリの概念そのものが全然違うのよ
基本的にはWebサービスのフロントエンドを作ることを想定したプラットフォームだよ
今の時代バックエンドとしてWeb APIがあるのは当然で、
その上で薄い薄い上っ面をUWPで作るかWebブラウザで作るかという程度のどうでもいい話でしかない
WinForms対WPFとかやってた頃とはもうアプリの概念そのものが全然違うのよ
831デフォルトの名無しさん
2017/06/02(金) 20:57:45.41ID:bsjc0qn7 なるほどこれからは電卓アプリも端末は画面だけ用意して
実際の演算はネットの向こうに投げるようになるのか胸熱だな
実際の演算はネットの向こうに投げるようになるのか胸熱だな
832デフォルトの名無しさん
2017/06/02(金) 21:00:17.94ID:SPpZD+rV833デフォルトの名無しさん
2017/06/02(金) 21:09:03.94ID:9KYQXn4X >>830
uwpにwinformやwpfの代わりはできるの?
uwpにwinformやwpfの代わりはできるの?
834デフォルトの名無しさん
2017/06/02(金) 21:11:24.79ID:v1YzyP4O フロントエンドはブラウザのHTML5で決まりみたいなもんだろ
どうしようもないぐらい差がついてる
もう終局してもいいレベルだからな
グラフコントロールすらないUWPに何ができるんだか
どうしようもないぐらい差がついてる
もう終局してもいいレベルだからな
グラフコントロールすらないUWPに何ができるんだか
835デフォルトの名無しさん
2017/06/02(金) 21:13:01.76ID:9KYQXn4X >>834
いや、なんかmsがuwpで統一みたいなこと言い出したんよ
いや、なんかmsがuwpで統一みたいなこと言い出したんよ
836デフォルトの名無しさん
2017/06/02(金) 21:14:14.05ID:v1YzyP4O >>835
VB6 winforms webをWPFで統一って言ってたくせに実現できなかったMSが偉そうに
VB6 winforms webをWPFで統一って言ってたくせに実現できなかったMSが偉そうに
837デフォルトの名無しさん
2017/06/02(金) 21:14:44.53ID:lDAi9ezd 雑談は他でやれよ
ここは初心者の質問スレ
ここは初心者の質問スレ
838デフォルトの名無しさん
2017/06/02(金) 21:31:11.62ID:8GOk0sXV いやだってこれアプリの製作方針すべてに関わるで
勉強してることが無駄になりかねない
勉強してることが無駄になりかねない
839デフォルトの名無しさん
2017/06/02(金) 21:38:59.98ID:8GOk0sXV 【マイクロソフト研究所】Win32からUWPへ――、アプリケーションの移行を進めるMicrosoft - クラウド Watch
http://cloud.watch.impress.co.jp/docs/column/microsoft/1056615.html
問答無用だぞ
http://cloud.watch.impress.co.jp/docs/column/microsoft/1056615.html
問答無用だぞ
840デフォルトの名無しさん
2017/06/02(金) 21:41:14.55ID:6KzFniyW841デフォルトの名無しさん
2017/06/02(金) 21:56:03.88ID:xX8a8TPA 今後OFFICEの言語もC#になったりするの?
842デフォルトの名無しさん
2017/06/02(金) 22:02:54.58ID:xUiVlsMK >>841
さすがに書き換えるコストに見合わないだろ
さすがに書き換えるコストに見合わないだろ
843デフォルトの名無しさん
2017/06/02(金) 22:16:44.11ID:8BngMUPO Officeのモバイル版はC#でしょうね
844デフォルトの名無しさん
2017/06/02(金) 23:56:38.72ID:puUBGw4G Officeもなんだかんだでクロスプラットフォームなもんでコア部分のC++実装の共通化に注力してるって話だし
モバイル版も普通にC++ベースなんじゃねのん
モバイル版も普通にC++ベースなんじゃねのん
845デフォルトの名無しさん
2017/06/03(土) 01:14:28.52ID:QRerHNeF C#勉強してるんだけど、デリケートがいまいち理解出来ない。。デリケート使えば便利なのは分かるけどこれを使わないと実現出来ない場面ってどういう時?
846デフォルトの名無しさん
2017/06/03(土) 01:16:00.34ID:Uw5Qf9Wo847デフォルトの名無しさん
2017/06/03(土) 01:22:29.37ID:E49aIv1k848デフォルトの名無しさん
2017/06/03(土) 01:38:57.02ID:sppp5Hjm 言うなれば過渡期の技術だからなあ
849デフォルトの名無しさん
2017/06/03(土) 01:41:40.44ID:4eBaDiw2 どういう時にメソッドを変数に入れる処理するの?
850デフォルトの名無しさん
2017/06/03(土) 02:10:31.71ID:viAzPl9Z >>849
それはどういう時に引数に値(例えば整数)を入れてメソッドに渡したいか、と同じこと
それと、なんか上でトンチンカンなこと言ってる奴がいるけど、ラムダ式はデリゲート型の値を
記述する方法のひとつだから、勘違いしない方がいいよw
それはどういう時に引数に値(例えば整数)を入れてメソッドに渡したいか、と同じこと
それと、なんか上でトンチンカンなこと言ってる奴がいるけど、ラムダ式はデリゲート型の値を
記述する方法のひとつだから、勘違いしない方がいいよw
851デフォルトの名無しさん
2017/06/03(土) 07:08:50.92ID:9ojaDA+2 >>845
汎用的に使用できる定義済みのデリゲート型は?[C#、VB] − @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/730dlgttype/dlgttype.html
↑こういう便利なものがあるので、自分で直接delegateを宣言して使う必要はめったにないけど
Action だの Func だの使ってるときはデリゲートを使ってることになる
汎用的に使用できる定義済みのデリゲート型は?[C#、VB] − @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/730dlgttype/dlgttype.html
↑こういう便利なものがあるので、自分で直接delegateを宣言して使う必要はめったにないけど
Action だの Func だの使ってるときはデリゲートを使ってることになる
852デフォルトの名無しさん
2017/06/03(土) 07:58:02.94ID:E49aIv1k ICallable的なジェネリックインターフェースと匿名クラス自動実装の糖衣構文ではダメだったのかな
デリゲートを言語機能で用意する必要はあったのか
デリゲートを言語機能で用意する必要はあったのか
853デフォルトの名無しさん
2017/06/03(土) 08:28:12.96ID:Z3mRcKD7 >>852
最初から有ったデリゲートを、後から出来た糖衣構文で代用って
最初から有ったデリゲートを、後から出来た糖衣構文で代用って
854デフォルトの名無しさん
2017/06/03(土) 08:36:18.21ID:SbbN/AwM デリゲート自体を勉強せんでも
LINQにラムダ式放り込んでたら理解できるよになると思う
LINQにラムダ式放り込んでたら理解できるよになると思う
855デフォルトの名無しさん
2017/06/03(土) 08:44:14.00ID:3mPJPhLT はぁ?
856デフォルトの名無しさん
2017/06/03(土) 08:46:13.26ID:LJI8Y72V SchooにC#のデリゲートビデオ講座がある
857デフォルトの名無しさん
2017/06/03(土) 08:52:49.76ID:LJI8Y72V858デフォルトの名無しさん
2017/06/03(土) 08:56:21.99ID:KrDw7qP6 linq to sqlって廃止になったの?
859デフォルトの名無しさん
2017/06/03(土) 09:10:40.15ID:qpif0RbK >>858
Visual Studio 2017のインストールオプションで見かけたけど
Visual Studio 2017のインストールオプションで見かけたけど
860デフォルトの名無しさん
2017/06/03(土) 09:12:11.24ID:os85wqX+ >>852
Javaのアレは@FunctionalInterfaceをコンパイラが直接認識してたり
メソッドハンドルを使った実装をランタイムが自動生成してたりして正真正銘の言語機能だよ
キーワード増やしたくないのと既存コードとの互換性のためにああなっただけ
まあマルチキャストとデリゲート型宣言は失敗だったけど
Javaのアレは@FunctionalInterfaceをコンパイラが直接認識してたり
メソッドハンドルを使った実装をランタイムが自動生成してたりして正真正銘の言語機能だよ
キーワード増やしたくないのと既存コードとの互換性のためにああなっただけ
まあマルチキャストとデリゲート型宣言は失敗だったけど
861デフォルトの名無しさん
2017/06/03(土) 09:34:48.42ID:iRt4UFxT862デフォルトの名無しさん
2017/06/03(土) 09:35:42.69ID:p/yrhdra 個人的にはラムダ式よりデリゲートの方が理解しやすかった
ラムダ式はまだまだわかった気になってるところがある
ラムダ式はまだまだわかった気になってるところがある
863デフォルトの名無しさん
2017/06/03(土) 09:52:25.31ID:5itNX5+j >>845です
皆さんありがとう。
デリケートって書いてた。これは恥ずかしい。。
formアプリの場合、invokeメソッドを使うときはデリゲートを使わないといけない。それ以外は必要に応じて。という認識で大丈夫ですか?
task内で呼びだすメソッドをデリゲートで行う必要はべつにないですよね?
皆さんありがとう。
デリケートって書いてた。これは恥ずかしい。。
formアプリの場合、invokeメソッドを使うときはデリゲートを使わないといけない。それ以外は必要に応じて。という認識で大丈夫ですか?
task内で呼びだすメソッドをデリゲートで行う必要はべつにないですよね?
864デフォルトの名無しさん
2017/06/03(土) 10:37:05.10ID:4DDVr3y5 delegateって、cやc++で例えると何?
865デフォルトの名無しさん
2017/06/03(土) 10:45:49.34ID:clZaKS42 関数ポインタ
866デフォルトの名無しさん
2017/06/03(土) 10:59:41.75ID:os85wqX+ >>864
直接当てはまるものはない
デリゲートは単なる関数ポインタではなく、ターゲットのオブジェクト参照を持っていて
インスタンスメソッドを呼び出すことができる
元ネタはDelphiのメソッドポインタ
直接当てはまるものはない
デリゲートは単なる関数ポインタではなく、ターゲットのオブジェクト参照を持っていて
インスタンスメソッドを呼び出すことができる
元ネタはDelphiのメソッドポインタ
867デフォルトの名無しさん
2017/06/03(土) 11:16:23.86ID:oD9emiaJ868デフォルトの名無しさん
2017/06/03(土) 11:27:20.05ID:X1r1Xqdt >>863
formsアプリ云々は関係ない
formsアプリ云々は関係ない
869デフォルトの名無しさん
2017/06/03(土) 11:33:01.98ID:F8KVXb5q >>863
(説明が100%正しいか自信はないけど)つーか、デリゲート自体は変数と同じようなもので、
値を格納するんじゃなくてメソッドを格納するための型。C#のイベント機能もデリゲートを
使ってるし、意識する・しないに関わらず、デリゲートはあちらこちらで使われ、色々使える
メソッドを変数のように引き渡せるなら、クラス内の特定の処理を自由に差し替えたりできる
でしょ?たとえばあるクラスで、そのインスタンスを作った際に外部からメソッドを渡してやる
事で、インスタンス毎に異なる処理をさせる事ができたりする訳
ただし今はラムダ式など新しい記述方法が出てきていて、コード中でdelegateというキーワードを
使ってデリゲートを定義する機会は少ない
(説明が100%正しいか自信はないけど)つーか、デリゲート自体は変数と同じようなもので、
値を格納するんじゃなくてメソッドを格納するための型。C#のイベント機能もデリゲートを
使ってるし、意識する・しないに関わらず、デリゲートはあちらこちらで使われ、色々使える
メソッドを変数のように引き渡せるなら、クラス内の特定の処理を自由に差し替えたりできる
でしょ?たとえばあるクラスで、そのインスタンスを作った際に外部からメソッドを渡してやる
事で、インスタンス毎に異なる処理をさせる事ができたりする訳
ただし今はラムダ式など新しい記述方法が出てきていて、コード中でdelegateというキーワードを
使ってデリゲートを定義する機会は少ない
870デフォルトの名無しさん
2017/06/03(土) 11:46:13.55ID:pwJoSF0V ありがとうございます
まぁこんな状態なので継承やインターフェースもうまい使いどころが分かっていないんですが。。要はまず習うより慣れろですかね
プログラムを作っててこういうことが出来れば便利なのに!を感じた時に使いどころを覚えていきます
まぁこんな状態なので継承やインターフェースもうまい使いどころが分かっていないんですが。。要はまず習うより慣れろですかね
プログラムを作っててこういうことが出来れば便利なのに!を感じた時に使いどころを覚えていきます
871デフォルトの名無しさん
2017/06/03(土) 11:52:54.38ID:l/gF2KNd872デフォルトの名無しさん
2017/06/03(土) 12:04:32.36ID:pwJoSF0V >>871
ありがとうございます
まさにその通りです
まだそういった場面になってないからそう思うだけだとは思うんですが使いどころがいまいちピンとこない感じです。。
サンプルプログラムを見ても、ん?普通にメソッド呼びだしたほうが分かりやすくね?みたいな
ありがとうございます
まさにその通りです
まだそういった場面になってないからそう思うだけだとは思うんですが使いどころがいまいちピンとこない感じです。。
サンプルプログラムを見ても、ん?普通にメソッド呼びだしたほうが分かりやすくね?みたいな
873デフォルトの名無しさん
2017/06/03(土) 12:13:05.71ID:oD9emiaJ >>872
クラス作成側と使用側が別れてる場面に当たらないと難しい
先頭ノードのみ公開されてるツリー構造のデータの
ノードのすべてを辿るメソッドの引数はデリゲートだと楽そうじゃない?
って言ってわからないならとりあえずまだいいんじゃね?的な
クラス作成側と使用側が別れてる場面に当たらないと難しい
先頭ノードのみ公開されてるツリー構造のデータの
ノードのすべてを辿るメソッドの引数はデリゲートだと楽そうじゃない?
って言ってわからないならとりあえずまだいいんじゃね?的な
874デフォルトの名無しさん
2017/06/03(土) 12:19:50.70ID:ytyChNwU 変数なんて使わないで直接数字を書けば良くない?
みたいな
みたいな
875デフォルトの名無しさん
2017/06/03(土) 12:29:55.38ID:F8KVXb5q まあ、Formの中に全部の部品ぶちこんで、すべてのコードもぶちこんで、それですんでるうちは
継承だのインターフェースだのデリゲートだの小難しい事はあまり意識しないでもすむよな
ただ、プログラムの規模が大きくなって、だんだんスパゲティ化してきて処理をすっきりさせたい、
分けられる所は別のクラスに分けたいとか考え始めた頃に、ありがたみがわかってくる
継承だのインターフェースだのデリゲートだの小難しい事はあまり意識しないでもすむよな
ただ、プログラムの規模が大きくなって、だんだんスパゲティ化してきて処理をすっきりさせたい、
分けられる所は別のクラスに分けたいとか考え始めた頃に、ありがたみがわかってくる
876デフォルトの名無しさん
2017/06/03(土) 12:32:52.42ID:l/gF2KNd >>872
いきなり「この技術を自分のコードにどう取り入れるか」から入ってるからイメージ湧かないんじゃないかな
LINQは知らないの?
あれは初心者でも小手先で使えて、しかも便利な上に
「処理内容を渡す」という仕組みの便利さも実感出来ると思うんだけど
ラムダ式も、直接ラムダ式を調べるんじゃなくて(デリゲート知ってる人向けの説明ばっか出てくる気がする)
LINQのサンプルから入った方がイメージしやすいかも
継承やインターフェースなんかは「使う側」としてはもうすでに使いこないしてるはず
ListでもArrayでも、違うクラスなのにForEachで同じ書き方して列挙できるってのはまさに
インターフェースの機能だし
他にも無意識にインターフェースや継承の機能を使ってる場面はあるはず
つまり、.NETのライブラリで実際にその技術を使って設計されてるクラス使ってみて
「それがどういう仕組で動いてて、なんで便利に使えるのか」からアプローチした方がイメージ湧きやすいかも
同じ機能を持つクラスを自分で実装しようとしたらどうなるか、とかね
いきなり「この技術を自分のコードにどう取り入れるか」から入ってるからイメージ湧かないんじゃないかな
LINQは知らないの?
あれは初心者でも小手先で使えて、しかも便利な上に
「処理内容を渡す」という仕組みの便利さも実感出来ると思うんだけど
ラムダ式も、直接ラムダ式を調べるんじゃなくて(デリゲート知ってる人向けの説明ばっか出てくる気がする)
LINQのサンプルから入った方がイメージしやすいかも
継承やインターフェースなんかは「使う側」としてはもうすでに使いこないしてるはず
ListでもArrayでも、違うクラスなのにForEachで同じ書き方して列挙できるってのはまさに
インターフェースの機能だし
他にも無意識にインターフェースや継承の機能を使ってる場面はあるはず
つまり、.NETのライブラリで実際にその技術を使って設計されてるクラス使ってみて
「それがどういう仕組で動いてて、なんで便利に使えるのか」からアプローチした方がイメージ湧きやすいかも
同じ機能を持つクラスを自分で実装しようとしたらどうなるか、とかね
877デフォルトの名無しさん
2017/06/03(土) 12:35:38.91ID:HOlIYUlS 関数を変数として扱えると、関数やクラスに引数とかメンバ変数として渡せるんだよ
たとえば朝6時になると何かアクションを実行してくれるクラスがあるとして、
そのクラスにアラームを鳴らすって関数を渡しておけば目覚ましになるし、
録画開始する関数を渡しておけば予約録画機能になる
元のクラスは変更せずに、渡す関数によってあとからいくらでも簡単に機能が追加できるから便利でしょ
たとえば朝6時になると何かアクションを実行してくれるクラスがあるとして、
そのクラスにアラームを鳴らすって関数を渡しておけば目覚ましになるし、
録画開始する関数を渡しておけば予約録画機能になる
元のクラスは変更せずに、渡す関数によってあとからいくらでも簡単に機能が追加できるから便利でしょ
878デフォルトの名無しさん
2017/06/03(土) 12:36:02.80ID:Z3mRcKD7 >>872
例えば親フォームのメソッドを小フォームのダイアログなんかのデリゲートに突っ込んでやる
そうすると、メソッドは親フォームのクラス所属だから普通に親フォームのコントロールやプロバティーに簡単にアクセスできるが
小フォームから簡単に呼び出せる
ダイアログで親フォームのデータ更新するときなど便利に使えるよ
例えば親フォームのメソッドを小フォームのダイアログなんかのデリゲートに突っ込んでやる
そうすると、メソッドは親フォームのクラス所属だから普通に親フォームのコントロールやプロバティーに簡単にアクセスできるが
小フォームから簡単に呼び出せる
ダイアログで親フォームのデータ更新するときなど便利に使えるよ
879デフォルトの名無しさん
2017/06/03(土) 12:53:59.79ID:wtE6TEU1 一般的に「制御の反転(IoC)」と呼ばれる考え方だよ
構造化プログラミングでは通常、呼び出す側が何を呼び出すかを決めており、呼び出す側は呼び出される側に依存する
これをボタンのクリックイベントに置き換えると、
ボタンがフォームの特定のイベントハンドラに依存することになる
これだとフォームごとに別のボタンクラスを作らなきゃいけなくなるだろ?
それを避けるために「移譲」と呼ばれるテクニックを使い、呼び出す側(ボタン)に呼び出される側(ハンドラ)を渡す形になるように制御を「反転」させる
これでボタン側は共通にできる
構造化プログラミングでは通常、呼び出す側が何を呼び出すかを決めており、呼び出す側は呼び出される側に依存する
これをボタンのクリックイベントに置き換えると、
ボタンがフォームの特定のイベントハンドラに依存することになる
これだとフォームごとに別のボタンクラスを作らなきゃいけなくなるだろ?
それを避けるために「移譲」と呼ばれるテクニックを使い、呼び出す側(ボタン)に呼び出される側(ハンドラ)を渡す形になるように制御を「反転」させる
これでボタン側は共通にできる
880デフォルトの名無しさん
2017/06/03(土) 12:56:39.87ID:Gn01LBfK >>875
俺社環の話になるけどユニットテスト義務付ければ、糞長い何でもぶち込みコードを撲滅できるのかな
俺社環の話になるけどユニットテスト義務付ければ、糞長い何でもぶち込みコードを撲滅できるのかな
881デフォルトの名無しさん
2017/06/03(土) 12:56:47.90ID:dUUYIXlx882デフォルトの名無しさん
2017/06/03(土) 13:03:32.92ID:dUUYIXlx883デフォルトの名無しさん
2017/06/03(土) 13:06:54.90ID:IVM+622+ >>881
もちろん、ライブラリの呼び出しもこういうスタイル
もちろん、ライブラリの呼び出しもこういうスタイル
884デフォルトの名無しさん
2017/06/03(土) 13:55:14.07ID:ep62Y9tf 配列.sort(compareFunction)
ここで引数に、ソートのやり方を渡せば、色々な順番で、ソートできる
例えば、abcd など文字の順番とか、
文字列の文字数が少ない順番とか、
様々な定義ができる
関数も関数オブジェクトに出来るし、
ラムダ式・クロージャも、オブジェクトだから、
これらはすべて同じで、引数にはクラスを渡していると考えればよい
ここで引数に、ソートのやり方を渡せば、色々な順番で、ソートできる
例えば、abcd など文字の順番とか、
文字列の文字数が少ない順番とか、
様々な定義ができる
関数も関数オブジェクトに出来るし、
ラムダ式・クロージャも、オブジェクトだから、
これらはすべて同じで、引数にはクラスを渡していると考えればよい
885デフォルトの名無しさん
2017/06/03(土) 13:57:09.06ID:dUUYIXlx だからマイクロソフトが提供するapiなんかでこう使うんですってのじゃないとお目にかかる場面は少ないと思う
自社のソースだと作業者毎の縄張りとかないからこんなの作ったらドキュメント必須だね
面倒なので誰もやらんと思う
自社のソースだと作業者毎の縄張りとかないからこんなの作ったらドキュメント必須だね
面倒なので誰もやらんと思う
886デフォルトの名無しさん
2017/06/03(土) 15:31:04.45ID:aGpIaogF >デリゲートの質問者
だから、デリゲート型の変数が使えるメリットは
例えばint型の変数が使えるメリットと同じだってば
もしintがリテラルしか使えなかったら、任意の自然数を引数にとって素数か判定するメソッドは書けない。
同じようにデリゲート型の変数が使えなかったら、例えばLINQのWhereみたいに
要素をフィルターする条件を引数に取るメソッドも、ListなんかのSortみたいに
2つの要素の大小関係を決める方法を引数に取るメソッドも書けない
だから、デリゲート型の変数が使えるメリットは
例えばint型の変数が使えるメリットと同じだってば
もしintがリテラルしか使えなかったら、任意の自然数を引数にとって素数か判定するメソッドは書けない。
同じようにデリゲート型の変数が使えなかったら、例えばLINQのWhereみたいに
要素をフィルターする条件を引数に取るメソッドも、ListなんかのSortみたいに
2つの要素の大小関係を決める方法を引数に取るメソッドも書けない
887デフォルトの名無しさん
2017/06/03(土) 16:01:31.05ID:4DDVr3y5888デフォルトの名無しさん
2017/06/03(土) 16:37:00.32ID:U3W11ZZJ >>845です
皆さんありがとうございます
指導頂いた見解として、ある箇所で必ず何かしらの処理をする(コールバック?)時に、その処理が確定的でないならデリゲートを利用して行う処理を渡してあげる
その処理が確定していて後々の拡張を考えないなら直接呼びだすメソッドを書けばいい(こう思ってる場合でもデリゲートを利用するメリットがあるのか??)
ってところでいいですか?
LINQはまだ使ったことないので今から勉強してみます。
皆さんありがとうございます
指導頂いた見解として、ある箇所で必ず何かしらの処理をする(コールバック?)時に、その処理が確定的でないならデリゲートを利用して行う処理を渡してあげる
その処理が確定していて後々の拡張を考えないなら直接呼びだすメソッドを書けばいい(こう思ってる場合でもデリゲートを利用するメリットがあるのか??)
ってところでいいですか?
LINQはまだ使ったことないので今から勉強してみます。
889デフォルトの名無しさん
2017/06/03(土) 16:41:07.68ID:MUswBLEo890デフォルトの名無しさん
2017/06/03(土) 21:53:10.11ID:4eBaDiw2 そういや戻り値複数返せるんだっけか
忘れてた
忘れてた
891デフォルトの名無しさん
2017/06/03(土) 22:18:31.97ID:FqrvzZFP 一定時間ごとにテキストボックスにメッセージを表示する方法が分かりません。
textBox1.Text = "";(空状態)
Thread.Sleep(1000);
textBox1.Text = "A";
Thread.Sleep(1000);
textBox1.Text = "B";
ThreadSleep(1000);
textBox1.Text = "C";
とすると、空の状態から一気にCになります。
順番に表示するにはどうしたらいいでしょうか。
textBox1.Text = "";(空状態)
Thread.Sleep(1000);
textBox1.Text = "A";
Thread.Sleep(1000);
textBox1.Text = "B";
ThreadSleep(1000);
textBox1.Text = "C";
とすると、空の状態から一気にCになります。
順番に表示するにはどうしたらいいでしょうか。
892デフォルトの名無しさん
2017/06/03(土) 22:22:06.54ID:n3tRmqXX >>891
C#固有のやり方は知らなくてすまないが一般的にそういう処理は別スレッドでスリープしながらUIスレッドにメッセージを投げて処理する
C#固有のやり方は知らなくてすまないが一般的にそういう処理は別スレッドでスリープしながらUIスレッドにメッセージを投げて処理する
893デフォルトの名無しさん
2017/06/03(土) 22:34:45.76ID:/NycxzQH894デフォルトの名無しさん
2017/06/03(土) 22:37:24.60ID:wtE6TEU1 >>891
Thread.Sleepをawait Task.Delay に置き換えるだけ
Thread.Sleepをawait Task.Delay に置き換えるだけ
895デフォルトの名無しさん
2017/06/03(土) 22:40:00.95ID:ytyChNwU それ途中でユーザーがウィンドゥ閉じたらどうなるの?
896デフォルトの名無しさん
2017/06/03(土) 22:57:52.94ID:/NycxzQH897デフォルトの名無しさん
2017/06/04(日) 03:41:26.92ID:P6gj5FUv ログ表示で俺もやったことあんな
textbox1のメンバにappendなんたらってあったような希ガス
textbox1のメンバにappendなんたらってあったような希ガス
898デフォルトの名無しさん
2017/06/04(日) 03:43:19.28ID:P6gj5FUv メソッドだった
AppendTextだった
AppendTextだった
899デフォルトの名無しさん
2017/06/04(日) 08:39:53.30ID:K3h7l1/2 >>880
全てのユニットテストを義務化すれば撲滅出来ると思うが、コード側を相当修正しなければならないハズなんで、かなり大変だよ。
全てのユニットテストを義務化すれば撲滅出来ると思うが、コード側を相当修正しなければならないハズなんで、かなり大変だよ。
900デフォルトの名無しさん
2017/06/05(月) 01:03:05.89ID:SN6Ncnlv varの話ししてもいいですか?
901デフォルトの名無しさん
2017/06/05(月) 01:06:48.60ID:cwM+8VET しつこい
902デフォルトの名無しさん
2017/06/05(月) 02:19:59.90ID:SHynnf8E 好きにすれvar?(激寒オヤジギャグ)
903デフォルトの名無しさん
2017/06/05(月) 07:19:09.40ID:RlDx2o4h >>902
4年ぶりに笑った
4年ぶりに笑った
904デフォルトの名無しさん
2017/06/05(月) 15:33:56.56ID:hFu+7Z6c C#6から構造体のコンストラクタの中もでプロパティを初期化できるように
なってたんだな(VBは昔から可能だった)
ついさっき初めて知ったよ。
どうでもいい独り言でした
なってたんだな(VBは昔から可能だった)
ついさっき初めて知ったよ。
どうでもいい独り言でした
905デフォルトの名無しさん
2017/06/05(月) 15:40:58.72ID:hFu+7Z6c 突っ込まれる前に
C#5まででもデフォルトコンストラクタを呼べば一応可能だった
C#5まででもデフォルトコンストラクタを呼べば一応可能だった
906デフォルトの名無しさん
2017/06/05(月) 23:30:17.53ID:iyAPDj0t WindowsFomアプリのUIに使うフォントって何がオススメ?
ちなWindows7機で
ちなWindows7機で
907デフォルトの名無しさん
2017/06/05(月) 23:31:35.57ID:+rdFUdav MSゴシック or MSPゴシック
908デフォルトの名無しさん
2017/06/05(月) 23:34:59.63ID:W/kcYLNq 必ず入っているフォントなら見込み違いの表示崩れとか無いしな
909デフォルトの名無しさん
2017/06/05(月) 23:37:32.63ID:hFu+7Z6c 普通に日本語ならUIゴシック、英語圏ならTahomaでいいでしょ。
910デフォルトの名無しさん
2017/06/05(月) 23:56:15.74ID:iyAPDj0t ありがとう
意外にも普通な回答にびっくりだけど
よくオススメのフォントにあるメイリオはなんかUIにはたるんだ感じがしてしっくりこなかったのよね
意外にも普通な回答にびっくりだけど
よくオススメのフォントにあるメイリオはなんかUIにはたるんだ感じがしてしっくりこなかったのよね
911デフォルトの名無しさん
2017/06/06(火) 00:03:48.51ID:RaNlh7mb XP切り捨てでよければ(さすがにもういいかもしれん)メイリオでもいいかもしれんけど、
さすがにメニューやドロップダウンやグリッド系には使いづらいね
さすがにメニューやドロップダウンやグリッド系には使いづらいね
912デフォルトの名無しさん
2017/06/06(火) 05:31:03.84ID:HK40XdCV913デフォルトの名無しさん
2017/06/06(火) 15:20:56.58ID:0R6Od0VL UWP使えよ
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 [蚤の市★]
- クリスマスの「予定なし」54% [少考さん★]
- 地震 [Hitzeschleier★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪
- J( 'ー`)し「で、アンタなんで働かないの?」 ワイ👶「理由は2つありまして~」🏡
- おさかなさんあつまれえ
- 茶ぁしばこうや···
- 【お漏らし】日銀、0.25%利上げへ [256556981]
- 【悲報】人気女性落語家、気づいてしまう…「将棋をみてたら女性にのみ女流棋士などと"女"をつけられる、くだんな笑」 [339712612]
