1 名前:デフォルトの名無しさん mailto:sage [2018/04/06(金) 17:40:19.48 ID:oKXVP34zM.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part95 mevius.5ch.net/test/read.cgi/tech/1508180530/ C#, C♯, C#相談室 Part93 https://mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part136 mevius.5ch.net/test/read.cgi/tech/1520057345/ ■コードを貼る場合は↓を使いましょう。 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 referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
21 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 23:41:29.92 ID:XPDmd+wz0.net] C#というよりクラスタイプoop全般の話だと思うのですが、クラスを呼んだ
22 名前:時のパラメータは、コンストラクタに与えるのが良いのでしょうか、メソッドに与えるのが良いのでしょうか 両方できるので無造作に使ってるのですがOO的に間違った事をしていそうで よろしくお願いします [] [ここ壊れてます]
23 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 23:43:55.56 ID:fSLWGn340.net] クラスを呼ぶってなに?
24 名前:デフォルトの名無しさん mailto:sage [2018/04/09(月) 23:44:42.97 ID:MCzflE3YM.net] 場合によるのでその都度考えてください
25 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 06:59:42.37 ID:EnsNk18IM.net] >>22 インスタンスを作るのとメソッドをコールすることと意識が混ざっている素人で失礼しました インスタンスを作る時にパラメータを渡すのと、メソッドの引数にパラメータを渡すの、oo的にはどちらが正しいのかお聞きしたかったです
26 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 07:04:03.54 ID:EnsNk18IM.net] >>23 oo的にはこう、というのは無く、スマートに記述できる方で良いという感じでしょうか? 今自分は気分や雰囲気で使い分けてるのですが、実はルールがあるのではと心配しておりました
27 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 12:42:18.35 ID:KG4vxU3va.net] >>25 正直何が聞きたいのかよく分からんけど、 いろいろ想像してみると、たぶん本当に聞きたいことはコンストラクタ云々じゃなくて あるデータをプロパティとしてオブジェクトに持たせるかどうかをどういう基準で決めるか、 じゃないのかな。 例えばSystem.Timers.TimerにはpublicなプロパティIntervalがあるけど、 これをprivateかprotectedにしてユーザーからアクセスできないようにして、 Startメソッドの引数として与える仕様でも同じじゃないのかと
28 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 20:54:09.92 ID:i+408CBT0.net] >>26 理解が浅く説明が拙くすみません そのような事です どちらでも出来てしまいますが、使い分けのルールや指標はあるのかなと
29 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 23:02:10.41 ID:IMFDPHVza.net] そのパラメーターが変更可能なのかどうかでやり方がいろいろある インスタンスを作るときに最初に決めたパラメーターを変える必要がないもしくは変えたくないなら コンストラクタで渡してしまえばいい 毎回変えるかもしれないならメソッドで渡せばいい
30 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 23:36:50.93 ID:v03YChI+M.net] >>27 そんなもの無い その時々で苦悩して答えを出すしかない プログラミングってそういう仕事
31 名前:デフォルトの名無しさん mailto:sage [2018/04/10(火) 23:44:32.77 ID:yYP5pHxz0.net] >>21 教科書的にはメソッドの引数しかありえない
32 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 00:46:06.20 ID:qa2FEnRqa.net] >>27 基本的には全部引数でも間違いではない あくまで関数が主であって、オブジェクトは関数のコンテキストに過ぎない、と考えるのが今時のプログラミング 端的に言えば、毎回同じ引数を渡すのが面倒だと思うならクラスにすることを検討するというだけの簡単な話
33 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 00:50:03.90 ID:mkq9MyW9a.net] >>27 いや、プロパティとして持つべきデータかの判断は一般的にはそんなに難しくないはず。 上に例に挙げたTimerだって、Startの引数でIntervalを指定する方式だと 問題や不自然さがあることはちょっと考えれば分かるはず
34 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 01:12:44.96 ID:KJoDibHNM.net] >>32 別に問題も不自然さも無いよ System.Timers.TimerやSystem.Windows.Forms.Timerのインターバルがプロパティなのは、デザイナで設定できる必要があるからだ 実際、デザイナに貼れないSystem.Threading.Timerはコンストラクタかメソッドで周期を設定する (ライブラリではなく)アプリケーションの開発に関して言えば、データクラス以外でプロパティを使う必要があるケースは稀だよ データクラスを除けば、一度設定した値を取り出したくなるのは殆どの場合設計が間違っている
35 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 01:25:13.83 ID:nomvJ3n3M.net] >>21 ・コンストラクタで渡す var a = new Test(1, "A"); ・メソッドで渡す var b = new Test().SetId(2).SetName("B"); ・オブジェクト初期化子で渡す var c = new Test{ id = 3, name = "C", }; 通常はコンストラクタで、メソッドチェーンはファクトリパターンでよく使う オブジェクト初期化子は閉じてるクラスの可読性を上げたいときに使う まあ統一性さえ確保出来ていればどれを選んでも大差ないよ
36 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 01:44:35.49 ID:mkq9MyW9a.net] >>33 System.Threading.Timerがプロパティを持たないのは何か意図があると思うが 使ったことがないのでよくわからない。(軽量であることが「コンセンプトだから? あるいんた単に設計者の頭が古いだけかもしれない} TimerのIntervalをプロパティとして実装しなかった場合。 (1) タイマー動作時にIntervallを変更するためにはStartを実行することになるが、 OOP的に不自然 (2) そもそもTimerオブジェクトは、少なくとも動作時にはIntervalの値を保持している。 だったらこれをプロパティとして公開する方が自然
37 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 02:01:15.23 ID:nomvJ3n3M.net] >>35 動作中にIntervalの値を変えられると困る場合、 Start時のみ設定可能にするのは別に不自然でもないよ OOPの目的はメンテナンス性と事前の徹底したバグ潰しだから、値を変更できるルートを予め絞っておくことは理に適ってる
38 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 02:46:11.71 ID:mkq9MyW9a.net] >>36 現実と違う仮定を置いたら何でも言える
39 名前:20 mailto:sage [2018/04/11(水) 07:04:30.38 ID:Q5HB2TyRM.net] 色々とアドバイスありがとうございます 統一性があれば、後はデザパタに従うか等で決定するのが一般的と解釈しました 田舎の中小1人情シスでコードレビューもされないので世間の動向が分からず参考になります 都会の大手の人は切磋琢磨し洗練されたコードを書くんだろうなと憧れます
40 名前:20 mailto:sage [2018/04/11(水) 07:52:53.54 ID:Q5HB2TyRM.net] >>29 あまり我流過ぎるとチーム開発の時に混乱するという心配がありまして
41 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 11:00:26.66 ID:uvPDHOSBM.net] >>39 対象を無視してオレオレナントナク基準で決めるほうが我流 物事にはそれぞれ特性があり最適な答えはいつも違う それを導き出すには都度考えて議論を重ね実験を繰り返すしかないんだよ
42 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 20:03:06.85 ID:XQKU/nO90.net] 見積り終わってるのに時間かけても無駄 一円の利益にもならない 今回の開発で黒字でなければ2回目はない よって一番時間がかからない方法が正義
43 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 20:52:33.85 ID:bR5mzWUWM.net] 業務系はそれでいいのかもね 保守するのは自分でも自社でもない ならどんなに汚いコードでも早くしあげたほうが勝ち ただし納品された顧客はとんでもない借金を背負うことになる 罪悪感ってないのかね
44 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 21:50:50.18 ID:XQKU/nO90.net] >>42 いや 君のやり方だって怪しいもんじゃない? 具体的に○○さんのコードは見易くてわかりやすいですねって言われた実績あるの? 無いのに勝手な妄想で自分のコードを保守しやすいと思い込んでない?
45 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 21:55:35.29 ID:kW0JyjC+0.net] まーた始まった
46 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 21:57:30.18 ID:XQKU/nO90.net] >>44 お前なんか全身elseで強化した俺の敵じゃねぇ
47 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 22:06:57.86 ID:kW0JyjC+0.net] >>45 ナマ言ってすみませんでした
48 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 01:45:08.04 ID:JNl7+QPK0.net] VisualStrudioのC#でPS4を入力を表示するソフトを作りたいんだけども、 どんなライブラリが便利かな?
49 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 06:13:51.49 ID:Om81X5Te0.net] >>47 PS4の入力ってなに? コントローラの事?
50 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 07:25:42.50 ID:ko86uHhA0.net] 日本語でOK
51 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 18:47:05.89 ID:GNeQyvWjM.net] PS4を窓の外に出力する 入力すならまずはアマゾンで注文
52 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 14:59:27.41 ID:x6wpDOBa0.net] 作画ソフトを作成したいのですが 解像度より大きな領域を扱うことになりそうです 10%〜800%まで拡大縮小ができて 編集操作を行う必要があるのですが どのような造りにしたら良いのでしょうか? 自分でスクロールバーを置いて編集領域は自前で描画するのでしょうか? PictureBoxのようなコントロールでスクロール操作までできてしまうのでしょうか?
53 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:03:33.67 ID:A6JgIv/D0.net] ドロー系? ペイント系?
54 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:08:53.93 ID:x6wpDOBa0.net] >>52 具体的には印刷すると模造紙ぐらいの大きさのでっかい回路図を作成します 保存するファイル形式はXmlです
55 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:26:50.36 ID:whWbsAFN0.net] >>50 入力酢?
56 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:20:27.70 ID:411sIKLXa.net] >>51 自分でスクロールの機能まで実装してもいいけど、 特に理由がないならコンテナ(例えばPanel)の中にPictureBoxを入れて使うのが 普通じゃないですか
57 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:09:28.19 ID:D8vt8UcC0.net] >>51 PictureBoxにスクロールバー表示するのは https://dobon.net/vb/dotnet/graphics/scrollimage.html 例ではコードでプロパティ設定しているけどデザイナで設定しても同じようにできる
58 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:16:13.98 ID:A7r7eR+xa.net] 模造紙レベルのでっかいpitureboxで画像のまま編集は現実的じゃないけどね 実際は表示部分だけ都度計算して描画することになる ドロー系にしてもまあ普通は向いてない C++でやるような内容だよ
59 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 18:55:16.11 ID:A6JgIv/D0.net] 論理座標とワールド座標、デバイス座標をよく理解すべき
60 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 19:31:26.26 ID:x6wpDOBa0.net] >>55-58 ありがとうございます 頑張って見ます
61 名前:46 mailto:sage [2018/04/14(土) 20:40:54.18 ID:iGVhaI1m0.net] すいません、PS4のコントローラをPCに接続して、 入力ボタンを表示したいのです。
62 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 21:18:11.42 ID:whWbsAFN0.net] >>60 https://game.watch.impress.co.jp/docs/series/ggl/637329.html
63 名前:46 mailto:sage [2018/04/14(土) 23:01:59.31 ID:iGVhaI1m0.net] 配置が違うだけなのか。 でも認識させるにはDirectXのラッパーとか使うしか無さそうなのね。
64 名前:46 mailto:sage [2018/04/17(火) 01:46:03.23 ID:kRrGnVcd0.net] 出来ましたー、ありがとうございます。 DirectInput nanoappli.com/blog/archives/4772 Xinput https://gist.github.com/kb10uy/7368358
65 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 13:28:00.94 ID:NEdohK8t0.net] Task.Factory.StartNew(またはTask.Run)で生成したスレッドの優先度を変える方法はあるのでしょうか。
66 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 14:11:36.85 ID:NEdohK8t0.net] 63ですがスレッドプールを使わず、スレッドで対応することにしました。
67 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 16:42:17.15 ID:joazaAE7M.net] なぜレガシィな方向へ走るw
68 名前:デフォルトの名無しさん [2018/04/17(火) 17:42:06.89 ID:NEdohK8t0.net] >>66 Taskだと処理中に割り込み?が割と入ってきて、処理時間が遅延してしまうのです。 スレッドレベルで優先度を上げたいと思いまして。 結局Threadにして優先度を上げても割り込みは入ってくるのですが、多少マシになったような気がします。
69 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 18:11:29.55 ID:xGjbcgxza.net] どんだけタイムクリティカルな要件なのよww
70 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 21:11:51.39 ID:kHPr9dOS0.net] パソコンぶん投げてPLCにしよう
71 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 23:58:42.15 ID:zXGef27d0.net] picでも使えよ
72 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 00:12:24.46 ID:WXSfEMqB0.net] >>67 それ単にスレッド生成で遅延しているなんてオチじゃないよな?
73 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 10:23:12.22 ID:+D/RfByR0.net] 受託案件なのでC#で作らざるを得ないのです。 自分自身はファーム屋なので、マイコンでやりたいんですけどね。 >>71 まだ遅延の原因はわかってませんです 生成時だけの遅延じゃないので、違うとは思いますが・・・
74 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 12:14:14.43 ID:wyULW0oVM.net] プロセスの優先度もあげるといいらしいぞ
75 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 12:31:04.61 ID:WeKuLBkMM.net] 糞多い要素群にlinqで遅延実行+ループとか?
76 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 18:10:56.40 ID:jY7uFFSia.net] >>72 Win32で作る
77 名前:デフォルトの名無しさん [2018/04/18(水) 21:09:40.32 ID:unjr58vW0.net] >>72 GCやJITは対策してる?
78 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 18:59:16.22 ID:Yr3hu/ey0.net] ユーザーコントロールのプロパティをデザイン時のプロパティウィンドウでコンボボックスにしたく 人様のサイトで恐縮なのですが、以下をほぼコピペしました。 blog.okazuki.jp/entry/20070207/1170820895 が、テキストボックスのままで選択肢になりません。 公開プロパティに、なにか別の宣言が要りましたでしょうか?
79 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 19:15:06.26 ID:Yr3hu/ey0.net] 継承ユーザーコントロールだったのですが、継承元にも [System.ComponentModel.TypeConverter(typeof(〜 が必要だっただけみたいです。 すみませんでした。
80 名前:デフォルトの名無しさん mailto:sage [2018/04/19(木) 19:48:23.98 ID:Yr3hu/ey0.net] 引き続きすみません。 たとえばユーザーコントロールに Folder File という2つのstring型の公開プロパティを用意します。 IDEのプロパティウィンドウからFolderを設定(通常のテキストボックス)すると そのフォルダ内のファイルを舐めてFileの選択肢にしたいのです。 TypeConverterで、静的な候補が出て選択できるところまでは出来たんですが 動的に候補を変更する場合、どうするんでしょうか。 IDEのプロパティウィンドウに、どうアクセスしたらいいのか、そこが分かれば何とかなる気がしてるんですが。
81 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 01:01:44.37 ID:xYBhqDqu0.net] >>79 Visual Studio .NET プロパティ ブラウザによるコンポーネントの本格的な RAD 化 https://msdn.microsoft.com/ja-jp/library/aa302334.aspx#vsnetpropbrow_topic04 このドロップダウンでできると思う
82 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 05:10:41.06 ID:OZAtcLZg0.net] 初歩的な質問で申し訳ないのですが、 戻り値なしのメソッドと、引数なしのメソッドはどういう状況で使用するのでしょうか? 戻り値なしのメソッドは その後にどこかに代入したりする予定はなく出力が目的の場合に使用すると 読んだのですがその通りですか? 万が一、後で代入したくなった場合に備えて取り敢えず戻り値は設定しておいたりしないのでしょうか? 引数なしのメソッドは 引数がない(=変数宣言がない?)とそのメソッド自体、動いてくれないイメージがあるのですが、実際は動きますよね 何も値を与えられていないのに動くのはどうしてですか? 宜しくお願いします・・・
83 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 05:52:22.55 ID:6mS8vUfV0.net] >>81 オーバーロードで検索してみると良い
84 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 06:02:00.71 ID:OZAtcLZg0.net] >>81 例えば int Add(int a, int b) { int c; c = a + b; return c; } というメソッドですと、Add(3, 5)ならaとbにそれぞれ3、5が入りc=8となると思うのですが、 abc = xyz,Add()といった風に使用しても、cの値も何も返ってこないのに、 引数なしのコードを見かける様な・・・
85 名前:デフォルトの名無しさん mailto:sage釣 [2018/04/20(金) 06:29:51.46 ID:wjKqEKEv0.net] >>81 デフォルト引数で統合しなされ
86 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 09:05:47.03 ID:3LwLCVWq0.net] >>81 メソッドってのは別に数値の計算だけするわけじゃない 何かの処理なので、その処理に引数が必要なら引数を渡すし その処理に結果があるなら戻り値がある
87 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 09:40:55.97 ID:9jg3Q7S00.net] >>85 横からごめん 処理に結果がないならそれはもう何も処理してないのと同じじゃないの?
88 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 09:50:08.64 ID:3LwLCVWq0.net] >>86 君がうまい説明してあげてね
89 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 10:06:30.92 ID:9jg3Q7S00.net] >>87 >>85 の説明が間違ってると言いたいんじゃなくて 単純に理解できなかったんだけど誤解させたならごめん とはいえせっかくだから自分なりに説明を考えてみたんだけど プログラムを動かすことが目的じゃなくて人間に読ませてアルゴリズムを 分からせることが目的の場合は最終的な結果は必要ないって感じかな?
90 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 11:57:10.77 ID:DKeEixVwd.net] >>81 メソッドは外注さんへの作業手順書みたいなもん 引数は、その作業に必要な情報がある場合に外部から渡すための窓口 情報不要なら省略できる 引数なし=こっちから情報渡さなくても作業できるよね?みたいな感じ メソッド内で作業が完了したあと、なんか返事してほしい場合は戻り値をつかう 返事不要の場合void 戻り値なし=作業さえしてくれたら結果レポートいらね! メソッドコール(外注さんへ仕事依頼)したら作業はちゃんとされるので、結果のレポートを使って、さらになんか作業をしたいなら戻り値よこせよ!って作業手順書に書いておけばいいし、仕事さえしてくれたら、返事不要なら戻り値いらない
91 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 11:59:20.85 ID:o6RSJKQdd.net] >>81 コントロールにupdateってメソッドがあるだろ? これは自身の再描画をするだけのメソッドなんだから引数を取りようがない また再描画するだけなのに失敗するわけないんだから戻り値もいらない 無理やり成否を返すこともできるが、失敗する可能性があるメソッドに様変わりし、呼び出し元で失敗を意識した実装にしなきゃいけないから負担を強いることになる って感じかな
92 名前:デフォルトの名無しさん [2018/04/20(金) 12:23:49.11 ID:9v7e203Yr.net] 引数のとりようも戻り値の返しようもなんぼでもあるわ へんな忖度みたいな真似すんなボケ
93 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 12:38:55.75 ID:9jg3Q7S00.net] >>89 作業が行われればレポートは要らないというのは例えば殺し屋みたいな? でもコンピューター上でそれを再現するならターゲットもターゲットの生死も0と1のデータなんじゃないの? だとしたらそのデータはどこに消えるの??? >>90 同じようなことばっかり聞いて悪いんだけど再描画の結果も0と1のデータなんじゃないの? それがメモリに残らないのに再描画は成功という意味がわからない >>91 戻り値の返しようがあるというのは返さない選択肢もあるということ??? 戻り値を返さないプログラムに人間に読ませる以上の価値があるとすればそれを教えて欲しい
94 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 12:44:06.99 ID:yZlfbYWOM.net] オブジェクトとは何かね
95 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 12:52:07.95 ID:wBOVlPyYM.net] >>92 横からで悪いけどたとえ話がおかしいし 言ってることが伝わらない もっとまとめてから書くべき
96 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 12:58:41.12 ID:luJyaFhBa.net] >>81 まあ、一言でいうと愚問だねw そんなこと考えても時間のムダ。 真面目な話、その疑問はそのまま放置して前に進む方がいいと思う。
97 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 13:08:12.31 ID:9jg3Q7S00.net] >>93 オブジェクト指向ってやつか! オブジェクトを使うと結果がない処理にも意味があるってこと? >>94 まとめるなら「結果がない処理の価値がわからない」って感じかなあ >>95 詰め込み教育への皮肉だと思うけど正直分かりにくいかも もし本気で言ってるならさすがに時代遅れだから考え直したほうがいいよ
98 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 13:26:58.95 ID:luJyaFhBa.net] >>96 経験が足りないために起こる疑問は経験を詰むことでしか解決しない。 構造化プログラミングの意義もOOPの意義も、体感できるのは 実際にコードを自分でコードが書けるようになってから。 本で読んだだけで最初からそれが分かるのは一部の天才だけ。 逆にいえば、>>81 の疑問は頭の良い人が考えた難しい理論を理解しないと 解決しないような問題じゃなく、誰でも体験すれば自然と分かる程度の話ってこと
99 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 13:48:46.74 ID:o6RSJKQdd.net] >>92 0と1?何を言ってるのかわからん 14時に集合ってメール出して、全員からわかったみたいな返信きてもうざいだろ? だから、14時集合(返信不要)ってメールをおくる方が受け取る側も返信しなくていいし、送る側も無駄な受信を減らせるしでwinwin この辺りは経験だったりセンスだろうな
100 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 14:03:32.43 ID:0EVFmTU60.net] >>96 成否の観点では単にフィールドの値を設定するメソッドを鑑みても メモリに書き込み失敗の概念があっても、代入に失敗の概念はない 設定前の値を返すにしても、わざわざ退避する処理を強制するのか? 想定外の発生は基本的に例外をぶん投げるものだし 常人が気にしない様な事を考えて躓いてそうである
101 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 19:05:49.61 ID:W6WTRmLV0.net] 関数型プログラミングの才能があるな
102 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 20:30:59.54 ID:kti4nAgp0.net] >>96 戻り値がないのは常に「成功」を返す関数と考えて良い C#では失敗した場合は例外を投げるので、成否を戻り値で判定することはない C言語とかgoみたいに例外という概念がない言語は、成功したかどうかが戻り値に入ってることが多い それでも絶対に失敗しないか、失敗したらプログラムが強制終了するような処理は戻り値がない場合もある
103 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:05:01.73 ID:Yi5F0BBw0.net] >C#では失敗した場合は例外を投げるので、成否を戻り値で判定することはない えぇ…
104 名前:デフォルトの名無しさん [2018/04/20(金) 21:14:39.58 ID:7WlEIf700.net] >>101 > C#では失敗した場合は例外を投げるので、成否を戻り値で判定することはない ケースバイケース。何でもかんでも例外にしちゃ駄目。
105 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:42:51.61 ID:9jg3Q7S00.net] >>97 とりあえず>>95 が本気なのとそれが思考停止の詰め込み教育信奉じゃないのは分かったよ 偉そうなこと言ってごめん >>98 自分もちゃんとは理解してないけどコンピューターは0と1だけで動いてるらしい でも初心者用スレで
106 名前:出す話ではなかったと反省 メール送信の例は分かりやすい!と思ったけど本当に結果が何もないと送信済みマークも付かないのでは・・・? >>99-103 詳しい人でも意見が割れるくらい難しい問題なのね >>100 は皮肉なんだろうけど意味どころか自分に向けられた言葉なのかも分からないから反応に困る・・・ [] [ここ壊れてます]
107 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 21:52:31.13 ID:7WlEIf700.net] >>104 元の発言の「結果が無い」って言葉を勘違いしてる。 関数で処理した結果を返り値と言う形で関数の呼び出し元に伝える必要が無いって意味だ。 ちゃんと意味のある結果は発生している。
108 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 22:00:49.23 ID:kti4nAgp0.net] >>102-103 書き方が変だった C言語やgoと比べて成否を例外で処理することが多いから戻り値がなくても良い場合が多い程度の意味で言った >>104 メール送信の結果は戻り値ではない方法で返しているというだけ C#には例外やイベントのように色々な機構があるから、とりあえず細かいことは気にせず先に進んだ方がいい
109 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 22:22:51.74 ID:UaVetxYYM.net] 関数という言葉に惑わされてるということかな メソッドは数学で言う関数そのものじゃない (y=x+1とかそういうのじゃない) やることを順番に書いてあるもの サブルーチン 戻り値が定義されてたそれを返すだけ ほかの言語で戻り値がないものは関数と区別してる言語もあるけど わざわざ二種類つくるより戻り値なしで共通にしてある
110 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 23:07:04.14 ID:0EVFmTU60.net] >>104 その辺は想定外と書いたように>>103 よろしくケースバイケースだよ 十分想定され例外情報すら要らんなら戻り値で成否を返す事もあるし InvalidProgramExceptionみたいに言語レベルでは処理できない物もある 話が逸れたけどOSレベルでは例外を発生させる余地などが有ったとしても プラットフォーム次第になったりと言語レベルで突き詰めない場合は多い
111 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 23:38:50.80 ID:iIb0CR1w0.net] いろいろ調べたり考えたりしたのですが、解決出来ないので質問します。 https://dotnetfiddle.net/SoCII1 このようなコードがあって List<ITest>にいれていったときに ListのXだけを全て足して返す関数は出来たのですが、今後ITestのプロパティは増える予定で、それぞれに足して返す関数をつけたいです。 そのときに似たようなコードになるので一つに纏めようとしたのですが中々できず困っています。どのような書き方をすればいいでしょうか?
112 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 02:21:21.95 ID:lHgu/nQp0.net] >>109 基本的にはプロパティを動的に指定するのはリフレクションとかDictionaryを駆使とか、何らかの形でコストを払うことになると思う 状況にもよるけど、コンパイル時に確定してるならT4テンプレートとかコード生成とかで対応するのが一番正しいんじゃないかな
113 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 02:34:40.78 ID:m0t/bmNLa.net] >>109 そんなものは自作しなくてもList自身(正確にはIEnumerable<T>だけど)が持ってるw 名前もそのまんまSumだからよくMSDNを見てみ https://msdn.microsoft.com/ja-jp/library/6sh2ey19.aspx
114 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 03:42:29.63 ID:MaG6OThU0.net] >>111 んー、エスパーだけど、質問者はプロパティをforeachみたいに回して全てにsumするようなのをプロパティの数に限らず1行で書きたいってことじゃね?
115 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 07:59:48.29 ID:z4AHgN+yd.net] >>104 メソッドの戻り値とコンピュータの世界は全く関係がない 低級のマシン語をわかりやすくするための高級言語なんで初心者用スレで〜というよりは見当違いなことを言ってる っで、結果とは低級レベルでの結果とメソッドレベルの結果のどちらをさしている? 低級レベルでの結果が表に出てこないのは普通のこと メソッドレベルで見てもメールの送信済マークを含めてないのでメソッド戻り値の返さない
116 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 08:37:04.35 ID:i7kmKmol0.net] >>110 リフレクションについて調べて何とか出来ました!ありがとうございます! >>111 ,>>112 もう少し具体的に書いていれば良かったですよね・・・今後質問するときはもっと詳しく書くので、そのときはよろしくお願いします!
117 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 10:09:06.82 ID:XwcbmKc5a.net] 連続時間的な関数ってあります?
118 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 10:52:04.99 ID:WnG+wEwt0.net] 連続時間 is 何
119 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 11:00:42.32 ID:k3YYD8ov0.net] エポック秒のことかなぁ
120 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 12:09:05.27 ID:Y1+gKOzZa.net] アナログメーター的なやつです
121 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 12:39:56.06 ID:k3YYD8ov0.net] >>118 プログレスバーでググってみてはどうか