ふらっと C#,C♯,C#(初心者用) Part132at TECH
ふらっと C#,C♯,C#(初心者用) Part132 - 暇つぶし2ch2:デフォルトの名無しさん
17/10/09 19:03:51.40 CACjh+QNa.net
いちおつ
これの意味がわからない
998 返信:デフォルトの名無しさん[] 投稿日:2017/10/09(月) 19:02:26.16 ID:qEhozSMZ [18/18]
>>995
だからそれは間違ってるって言ってらだろバカ

3:デフォルトの名無しさん
17/10/09 19:04:21.54 c41RoAYB0.net
>>2
それは議論に不要
無視推奨

4:デフォルトの名無しさん
17/10/09 19:04:46.78 X/uHF4ez0.net
早速だけど、インターフェイスってどんな感じで使ってますか?
抽象化は便利だと思うんですけど、皆さんどんな感じで活用してるのか気になります

5:デフォルトの名無しさん
17/10/09 19:05:41.38 CACjh+QNa.net
>>3
無視していいの?
どう考えても間違ってるのはむこうなんだけど
なにか理由があるのか知れないよ

6:デフォルトの名無しさん
17/10/09 19:06:32.25 qEhozSMZd.net
>>2
言ってる な
ただの誤字だ

7:デフォルトの名無しさん
17/10/09 19:06:42.64 c41RoAYB0.net
>>5
煽り文句なしで指摘して来てるなら付き合えばいい

8:デフォルトの名無しさん
17/10/09 19:07:14.31 3XOsYzsWM.net
オブジェクト指向なコードを見て、驚愕した。どうしたら直列コードから卒業できるのですか?

9:デフォルトの名無しさん
17/10/09 19:08:09.60 qEhozSMZd.net
>>5
内容についてわからないの??
間違ってるって理解出来ないんだ

10:デフォルトの名無しさん
17/10/09 19:08:41.50 c41RoAYB0.net
>>9
>?
>間違ってるって理解出来ないんだ
議論に不要な記述

11:デフォルトの名無しさん
17/10/09 19:08:43.34 CACjh+QNa.net
>>4
普通の使い方と
似たようなクラスがたくさんあってなおかつ継承が利用できない非常にめんどくさい場合
インターフェイスに拡張メソッドをつけたりしてる
本来は使うべきじゃないのかもしれないけど自分でしか使わないからえいやってやってる

12:デフォルトの名無しさん
17/10/09 19:09:49.61 CACjh+QNa.net
>>9
じゃあ
まちがってるじゃなくて説明ヨロ

13:デフォルトの名無しさん
17/10/09 19:12:34.89 qEhozSMZd.net
>>12
何度も利用者側に秘密鍵があれば改変したデータを作ってアプリに使えるって言ってるんだけと??
いい加減自分の間違いを認めましょうね

14:デフォルトの名無しさん
17/10/09 19:16:54.72 ywmo0VPNa.net
>>13
それは説明になってない
秘密鍵は暗号化されたデータを解読するものなんだよ
Bは秘密鍵でAからのデータを解読するんだよ
そもそもそこはあってるだろ?
いつどのタイミングで何を改変するんだ?
AからのデータをBが改変する意味は何だ?

15:デフォルトの名無しさん
17/10/09 19:18:25.46 c41RoAYB0.net
>>13
>いい加減自分の間違いを認めましょうね
議論に必須でない記述

16:デフォルトの名無しさん
17/10/09 19:19:54.84 qEhozSMZd.net
>>14
もしかして秘密鍵から公開鍵が作れるって知らないの??
だとしたら物凄いバカ

17:デフォルトの名無しさん
17/10/09 19:20:42.79 c41RoAYB0.net
>>16
>だとしたら物凄いバカ
議論に不要な記述

18:デフォルトの名無しさん
17/10/09 19:20:57.78 ywmo0VPNa.net
>>16
質問に答えてほしい
まったく意味がない回答はやめてくれ

19:デフォルトの名無しさん
17/10/09 19:21:59.25 qEhozSMZd.net
バカが説明を理解出来ないわけがやっとわかった
秘密鍵から公開鍵を生成するって知らないんだな

20:デフォルトの名無しさん
17/10/09 19:22:38.11 r14Jr9yHa.net
>>4
これ、テンプレのFAQに入れた方がいい気がするw
今年に入ってから3回ぐらい見た気がするけど俺個人のデジャビューかな
叩く意図はないよ念のため。
俺の回答は、結局実際にどう使われているのか実例を見るのが早い。
>NET Framework(BCL)だってインターフェイス多用してるんだから

21:デフォルトの名無しさん
17/10/09 19:23:32.82 X/uHF4ez0.net
>>11
ありがとうございます
似たようなクラスがあって継承ができない場合ってどんな感じかイメージつかないですが、集団でプログラミングやると割りと起こる感じなんでしょうか

22:デフォルトの名無しさん
17/10/09 19:23:34.25 c41RoAYB0.net
>>19
>バカが説明を理解出来ないわけがやっとわかった
議論に不要な記述

23:デフォルトの名無しさん
17/10/09 19:23:53.39 ywmo0VPNa.net
相手がボケだしたんだけど
勝利宣言していいの?これ?

24:デフォルトの名無しさん
17/10/09 19:24:03.79 qEhozSMZd.net
>>18
手元にある秘密鍵から公開鍵作って任意の偽データを作成
それをアプリだで不正使用
わかったかなバカ

25:デフォルトの名無しさん
17/10/09 19:24:32.62 c41RoAYB0.net
>>23
>相手がボケだしたんだけど
>勝利宣言していいの?これ?
議論に不要な記述

26:デフォルトの名無しさん
17/10/09 19:24:46.20 c41RoAYB0.net
>>24
>わかったかなバカ
議論に不要な記述

27:デフォルトの名無しさん
17/10/09 19:25:08.04 A/ZdiVq5a.net
>>4
使ってません

28:デフォルトの名無しさん
17/10/09 19:25:13.83 qEhozSMZd.net
>>23
ボケてるのはお前の頭
はやく反論してみろ

29:デフォルトの名無しさん
17/10/09 19:25:25.88 c41RoAYB0.net
>>28
>ボケてるのはお前の頭
>はやく反論してみろ
議論に不要な記述

30:デフォルトの名無しさん
17/10/09 19:26:15.56 ywmo0VPNa.net
>>24
答えになってないよ
いつどのタイミングで何を改変するんだ?
AからのデータをBが改変する意味は何だ?

31:デフォルトの名無しさん
17/10/09 19:27:15.34 X/uHF4ez0.net
>>20
インターフェイスのメリットをどんな感じに活用してるのか知りたかった感じでした
ありがとうございます

32:デフォルトの名無しさん
17/10/09 19:27:27.03 ywmo0VPNa.net
最初から書いてるけど
公開鍵は公開されてもいいもの世界中の誰が知っててもいい
公開鍵で暗号化されてるからセキュアだと思ってるならレベルが低いよ

33:デフォルトの名無しさん
17/10/09 19:27:41.38 c41RoAYB0.net
>>32
>レベルが低いよ
議論に不要な記述

34:デフォルトの名無しさん
17/10/09 19:28:31.27 4X7PKmK+a.net
まだやっとってワロタ

35:デフォルトの名無しさん
17/10/09 19:29:07.66 c41RoAYB0.net
>>34
>まだやっとってワロタ
議論に不要な記述

36:デフォルトの名無しさん
17/10/09 19:29:09.08 qEhozSMZd.net
>>30
いやお前が理解できてないだけ
タイミングなんてアプリがデータを利用するときに偽のデータをわたすだけだろ
理解しろバカ

37:デフォルトの名無しさん
17/10/09 19:29:34.98 c41RoAYB0.net
>>36
>いやお前が理解できてないだけ
>理解しろバカ
議論に不要な記述

38:デフォルトの名無しさん
17/10/09 19:29:50.26 ywmo0VPNa.net
質問にまともに答えてほしいな

39:デフォルトの名無しさん
17/10/09 19:31:14.43 A2XN0/QV0.net
半分以上あぼーんされてて笑える
ワッチョイが捗るわ

40:デフォルトの名無しさん
17/10/09 19:31:26.33 c41RoAYB0.net
>>39
>半分以上あぼーんされてて笑える
>ワッチョイが捗るわ
議論に不要な記述

41:デフォルトの名無しさん
17/10/09 19:31:35.40 qEhozSMZd.net
>>32
アプリの不正な使用方法を考慮しない頭のお前は最底辺レベル

42:デフォルトの名無しさん
17/10/09 19:32:13.56 c41RoAYB0.net
>>41
>お前は最底辺レベル
議論に不要な記述

43:デフォルトの名無しさん
17/10/09 19:32:52.29 qEhozSMZd.net
>>38
まともに答えてるのに理解できないバカ
そうやって逃げるのかな??

44:デフォルトの名無しさん
17/10/09 19:33:06.52 c41RoAYB0.net
>>43
>まともに答えてるのに理解できないバカ
>そうやって逃げるのかな??
議論に不要な記述

45:デフォルトの名無しさん
17/10/09 19:35:05.92 qEhozSMZd.net
このバカは早く自分の間違いと無知さを認めてごめんなさいしような

46:デフォルトの名無しさん
17/10/09 19:40:36.60 c41RoAYB0.net
>>45
>このバカは早く自分の間違いと無知さを認めてごめんなさいしような
議論に不要な記述

47:デフォルトの名無しさん
17/10/09 19:53:35.93 oNj7uBjL0.net
>>24
暗号化されたデータが例えば有料コンテンツとかなら、利用者(Bを持ってる人)が偽のデータを作る意味はない
利用者が偽のデータを作るのを良しとしないなら、配布者が別に署名すれば良い
ただし、利用者はそもそもアプリBを改造して、任意の動作をするようにすることが可能なので自分が偽データを作る意味はない話

48:デフォルトの名無しさん
17/10/09 20:03:10.67 ywmo0VPNa.net
>>41
前から書いてるけど公開鍵のデータが復号できたからそれが正しいデータとは保障されない
正しいデータかどうかを保証するのは別の段階の話
クライアントで不正なデータを基に何をやってても
サーバサイドの情報と不整合なら不正が起こったと判断されて終わる
クライアントで預金を1億に増やしてもサーバでは元のママ

49:デフォルトの名無しさん
17/10/09 20:04:13.58 qEhozSMZd.net
>>47
一行目はその通り。でも違うケースだって考えららる。なら、それを考慮するのは当然のこと
二行目は質問者への答えてではない
最後についても一行目と同様

50:デフォルトの名無しさん
17/10/09 20:05:03.65 ywmo0VPNa.net
ブラウザに秘密鍵はないって前スレで言い張ってたけど
ブラウザは秘密鍵を持ってる
それとhttpsの認証局の仕組みを使ってそれで安全に通信できてる

51:デフォルトの名無しさん
17/10/09 20:09:33.18 qEhozSMZd.net
>>48
不正な使用をできることが問題になるケースもあるだろバカ

52:デフォルトの名無しさん
17/10/09 20:10:14.80 ywmo0VPNa.net
じゃあ秘密鍵を使わないで生活するんだな
ブラウザも使えないけどいいのか?

53:デフォルトの名無しさん
17/10/09 20:11:15.89 c41RoAYB0.net
>>51
>バカ
議論に不要な記述

54:デフォルトの名無しさん
17/10/09 20:11:59.38 qEhozSMZd.net
>>50
は?
話を理解出来ないバカ
その密鍵

55:デフォルトの名無しさん
17/10/09 20:12:37.98 ywmo0VPNa.net
>>51
そっちの理論通りならこちらはプログラムBとブログラムAの公開鍵をもってるじゃないかw
そっちの理論だと改ざんし放題だねw

56:デフォルトの名無しさん
17/10/09 20:12:46.77 c41RoAYB0.net
>>54
>は?
>話を理解出来ないバカ
>その密鍵
議論に不要な記述

57:デフォルトの名無しさん
17/10/09 20:13:23.30 ywmo0VPNa.net
55で終わり
勝利宣言
もうレスしないw

58:デフォルトの名無しさん
17/10/09 20:14:03.85 c41RoAYB0.net
>>57
>勝利宣言
>もうレスしないw
議論に不要な記述

59:デフォルトの名無しさん
17/10/09 20:14:35.77 qEhozSMZd.net
>>50
その秘密鍵云々は本来サーバーにありばき秘密鍵をブラウザが持ってるという例えて間違ってると言ってるんだけど理解出来ないのバカ

60:デフォルトの名無しさん
17/10/09 20:14:51.13 c41RoAYB0.net
>>59
>理解出来ないのバカ
議論に不要な記述

61:デフォルトの名無しさん
17/10/09 20:15:39.79 c41RoAYB0.net
>>59
typoレベルが高く若干議論に影響あり

62:デフォルトの名無しさん
17/10/09 20:16:52.71 c41RoAYB0.net
注意:
議論に勝ち負けはない
正解があるだけである
その正解に到達したら終了すること

63:デフォルトの名無しさん
17/10/09 20:17:52.25 A/ZdiVq5a.net
道で淫乱鍵見つけた

64:デフォルトの名無しさん
17/10/09 20:18:35.47 c41RoAYB0.net
>>63
>道で淫乱鍵見つけた
意味不明な記述
議論に不要

65:デフォルトの名無しさん
17/10/09 20:20:11.31 qEhozSMZd.net
>>55
はあ?頭悪すぎ
秘密鍵は外部にあって複合化は外部で行う意味も理解出来ないの??

66:デフォルトの名無しさん
17/10/09 20:21:17.11 c41RoAYB0.net
>>65
>はあ?頭悪すぎ
議論に不要な記述

67:デフォルトの名無しさん
17/10/09 20:21:25.58 qEhozSMZd.net
>>61
すみません
そこは適当なもので

68:デフォルトの名無しさん
17/10/09 20:26:38.12 qEhozSMZd.net
バカが逃げたようでスッキリした

69:デフォルトの名無しさん
17/10/09 20:27:41.15 c41RoAYB0.net
>>68
>バカが逃げたようでスッキリした
議論に不要な記述

70:デフォルトの名無しさん
17/10/09 20:28:14.08 KtpP5XlMM.net
公開鍵暗号方式の話題は荒らせると学習してしまったな

71:デフォルトの名無しさん
17/10/09 20:29:42.72 ywmo0VPNa.net
>>70
ぜひ彼には公開鍵秘密鍵を使わないで生活してもらいたい

72:デフォルトの名無しさん
17/10/09 20:47:52.74 Uib+y8KD0.net
さきほどXmlシリアライズについて質問したのですがシリアライズ可能なクラスはデフォルトコンストラクタとクラス変数のみのクラスという理解でいいでしょうか?

73:デフォルトの名無しさん
17/10/09 20:53:36.34 4X7PKmK+a.net
C#で組んだごく一般的な業務ソフトで1万行ってボリューム的にどんなもんですか?

74:デフォルトの名無しさん
17/10/09 20:56:51.85 c41RoAYB0.net
>>73
その質問の目的について

75:デフォルトの名無しさん
17/10/09 21:00:48.75 Y4203ffV0.net
>>72
URLリンク(msdn.microsoft.com)(v=vs.120).aspx
このページの「次の項目は、XmLSerializer クラスを使用してシリアル化できます。」以下

76:デフォルトの名無しさん
17/10/09 21:18:26.29 ywmo0VPNa.net
>>72
関係ないけどjava, python, rubyなどにあるクラス変数はc#では静的フィールドというもので
宣言にstaticがついててクラス自体に付随するものでシリアライズの対象じゃないです
インスタンスごとにある変数はインスタンスフィールド

77:デフォルトの名無しさん
17/10/09 21:35:42.93 r14Jr9yHa.net
MSDNライブラリ、過去のバージョンのドキュメントが選択できなくなったり
2.0以前の古いバージョンのドキュメントがごっそり削除されたり、知らん間にいろいろ改悪されてるな
MSって本当いらんことするよね

78:デフォルトの名無しさん
17/10/09 21:42:56.57 Zzx1e3hO0.net
>>77
.NET Framework 1.1のMSDNも未だ見えてるけどね?

79:デフォルトの名無しさん
17/10/09 21:51:39.89 Zzx1e3hO0.net
>>73
一人で作れる小規模な業務アプリです。

80:デフォルトの名無しさん
17/10/09 21:53:55.76 r14Jr9yHa.net
2.0じゃなくて1.1以前か
たとえばちょっと前に話題になったこれとかなくなってる
URLリンク(webcache.googleusercontent.com)(v%3Dvs.71)+&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_en%7Clang_ja
読みたきゃローカルにダウンロードして読めとさw
Win10で田ミ + F1押した時に近い怒りを感じるね

81:デフォルトの名無しさん
17/10/09 23:54:00.00 wnhU5HD50.net
>>49
それを言いたいなら「全てのケースに対応できる方式は存在しない」と主張しないと
初心者が完全な要求仕様を一発で提示するのは難しい
不完全な要求仕様が提示されたら、ある程度補って「これでやりたいこと満たせる?」って確認してみるのはよくあるパターン
もし「B側が改ざんしたデータを読み込ませるのを防ぎたいです」と言われたら署名を追加提案するし、「アプリが改ざんされると困る
というなら、耐タンパのハードウェアを用意するしかないんじゃないというし

82:デフォルトの名無しさん
17/10/09 23:57:41.08 wnhU5HD50.net
>>80
docsの方に整理して移動してるのかな
URLリンク(docs.microsoft.com)

83:デフォルトの名無しさん
17/10/10 02:07:14.95 ILyTWDei0.net
TreeViewクラスだとGetNodeAt関数にマウスのx、y座標を渡せば対象のTreeNode返してきますが
TabControlにはGetなんとかで探してみましたが見つかりませんでした、そういった関数はないのでしょうか?

84:デフォルトの名無しさん
17/10/10 04:03:42.30 pliWVB3X0.net
どこの座標を指定した時に何を手に入れたいのか
タブ部分だけを指定してTabPageが手に入れば良いの?

85:デフォルトの名無しさん
17/10/10 09:18:54.04 MPxouh5p0.net
俺が公開鍵云々書いた後ここまで荒れたのか
スゲーな
休みなのに他にすることなかったのか?

86:あ
17/10/10 18:09:11.73 DF0+rUlsd.net
公開鍵の中に、別の署名入れときゃ良いだけなのにな。

87:デフォルトの名無しさん
17/10/10 19:00:46.52 86WPBtAo0.net
Format8bppIndexed形式のBMPファイルをpictureboxに読み込んで、
それをリネームして同じくFormat8bppIndexed形式のBMPファイルで保存したいのですが、
どのようにすればよいでしょうか。
PictureBox.ImageLocationプロパティではFormat8bppIndexed形式は蹴られてしまいます・・・
また、形式を変えてpictureboxに表示させることは出来たのですが、
それをまたFormat8bppIndexed形式に変換して保存するところでつまづいてしまいました。

88:デフォルトの名無しさん
17/10/10 20:03:58.53 ZqwUWY4/0.net
>>87
試してみた
>PictureBox.ImageLocationプロパティではFormat8bppIndexed形式
読み込める
そしてそのままPictureBox.Imageを保存(pictureBox1.Image.Save)するとインデックスカラーになった
元の画像のフォーマットが間違っているか特殊では?
別の


89:画像で試してみろ あとGDI+で24bpp/32bppにした画像はインデックスカラーに可逆で変換できないはず 自分でパレットテーブルと画素データ作らないといけない



90:デフォルトの名無しさん
17/10/10 22:26:46.18 ILyTWDei0.net
>>84
すいません
MouseDownイベントでどのクリックされたTabPageが欲しかったのです
結局自分でGetTabPageAt(int x, int y)をコピペして作りました

91:デフォルトの名無しさん
17/10/10 23:26:31.15 ZqwUWY4/0.net
>>89
タブ以外のところなら各ページのMouseDownイベントのsender
タブのところならTabControl.SelectedIndexChangedイベントでSelectedIndexかSelectedTab.Nameで取れる
そっちはx,yにしているから目的は違いそうだが

92:デフォルトの名無しさん
17/10/11 00:10:40.19 gF87iMQ50.net
>>90
ありがとうございます。TabControl上でどのタブの上でクリック、中クリックされたのかが知りたかったのです。

93:デフォルトの名無しさん
17/10/11 00:30:56.59 9Fj0rD7Ja.net
キーで変更されたときはなんもやらねぇの?

94:デフォルトの名無しさん
17/10/11 00:55:05.05 gF87iMQ50.net
はい、今のところ何もやりません

95:デフォルトの名無しさん
17/10/11 01:02:11.13 9Fj0rD7Ja.net
実現したいことを質問すればいいのにピンポイントでやり方だけ聞き続けるのがうまくねぇな
なんかあんまユーザーも望んでないようなことやってそう

96:デフォルトの名無しさん
17/10/11 03:10:21.57 gF87iMQ50.net
回りくどくなってしまってすみません
趣味で自分用に作っているアプリなのでユーザーは自分だけです

97:デフォルトの名無しさん
17/10/11 04:20:02.28 9Fj0rD7Ja.net
>>95
タブコンってタブのフォントをでかくするとバグるよね

98:デフォルトの名無しさん
17/10/11 15:07:03.75 jhF5UTXL0.net
>>88
わざわざ確認していただいてありがとうございます。
確認してみます。

99:デフォルトの名無しさん
17/10/13 19:23:27.95 9FeTZoAH0.net
入力する ???
もう1度入力する!!!
???と!!!の和は---
???と!!!の積は---

100:デフォルトの名無しさん
17/10/14 04:28:03.00 VMil0wNI0.net
TabControlとTabPageがあり、TabPageの中にWebBrowserコントロールがあるのですが、TabControlを触るとWebBrowserのフォーカスが外れてしまい
一度WebBrowserの中をクリックしないと動きません、マウスポインタがWebBrowser上にある場合クリックしなくても自動的にフォーカスを移したい場合どうすればいいでしょうか?

101:デフォルトの名無しさん
17/10/14 05:59:21.01 KJ0BKnta0.net
マウスポインタがWebBrowser上にあるかどうかを判定するコードと
フォーカスを移すコードを書けばいいんじゃね
しつけーよお前

102:デフォルトの名無しさん
17/10/14 06:08:08.12 NTbBehtoa.net
あーでもその動作はきっとやめておいたほうがええなー
使いやすいと思うやつおらへんで

103:デフォルトの名無しさん
17/10/14 11:06:25.42 +aeiapeN0.net
>>100
TabPage.Enterで(this.Activate()と)Tabpage.Focus()ですねw
>>101
同意するけど自分で使うだけらしいからw
>>99
>TabControlを触るとWebBrowserのフォーカスが外れて→TabControlを触ったあとでWebBrowserをFocus()
質問の時点で答え出ている気がする。Focus()は知っているだろうし
それよりもTabControl触っただけでTabPage上のコントロールのフォーカスは外れない
右クリックからコンテキストメニュー呼出しても別のタブでMouseDownイベント起こしても
WebBrowserが影響しているかもしれないが、それを調べないと対策しても後から別の問題が多分出てくる

104:デフォルトの名無しさん
17/10/14 21:19:17.73 2Frxw1Uc0.net
visual studio for macを昨日から使い始めました
コンソールプロジェクト その他→.NETを選択してソリューションを作成しているのですが.NET内のクラスを呼ぶとエラーが出ます
using Systemの記述以外に必要なことがあれば教えていただきたいです

105:デフォルトの名無しさん
17/10/14 21:30:45.44 +aeiapeN0.net
>>103
何呼び出そうとしたのかくらい書いてほしい
まずそのクラスが入っているコンポーネントの参照設定が必要
URLリンク(msdn.microsoft.com)(v=vs.90).aspx
次にusingが記述されていないクラスを呼び出すには名前空間からの記述が必要。もしくはusing (名前空間);を追加

106:デフォルトの名無しさん
17/10/14 21:36:08.46 GRARGOD60.net
使い始めていきなり参照追加が必要になるとは思えないから、恐らくusingが足りないんだろ。

107:デフォルトの名無しさん
17/10/14 21:49:10.87 Gt2cFrms0.net
初心者って何でエラーメッセージ書かねーの?

108:デフォルトの名無しさん
17/10/14 22:12:08.04 2Frxw1Uc0.net
>>104-106
参考書を読みつつ進めていて
DateTime today = DateTime.Today;でエラーが出ます
呼び出したいのは構造体でした
MSのリファレンスではこのように書かれています
名前空間: System
アセンブリ: mscorlib
レス書きながら参照の編集→アセンブリ弄っていたらエラー吐かなくなりました
もしかするとusing System;を書いていなかっただけかもしれません、申し訳ないです
エラーメッセージも今後は載せます

109:デフォルトの名無しさん
17/10/15 01:24:12.85 odpYqypi0.net
formのサイズに合わせて、
labelが拡大縮小するのってどうすればできますか?

110:デフォルトの名無しさん
17/10/15 01:47:44.60 6sAES7rzM.net
>>108
おれも手軽な方法知りたい。
面倒な方法としては、formサイズとlabelのフォントサイズに比例式作って判定させるメソッド作れば実装はできる。

111:デフォルトの名無しさん
17/10/15 01:57:09.23 7R5dQaZOa.net
>>108
煽り抜きで真面目な話、そういうのはまず要件を厳密に定義しないとね。
「formのサイズに合わせて、labelが拡大縮小」っていうのは曖昧だよね

112:デフォルトの名無しさん
17/10/15 02:12:32.32 odpYqypi0.net
>>109
ありがとうございます。
そういう機能があると思ってましたが、
簡単にはできないのですね。

113:デフォルトの名無しさん
17/10/15 02:13:46.76 odpYqypi0.net
>>110
画像の拡大縮小のような感じで、
フォームの大きさに合わせて、
ラベルの文字が大小するという感じです。

114:デフォルトの名無しさん
17/10/15 09:38:54.40 PeJpR27x0.net
>>112
WPF使えば良いんじゃないの?

115:デフォルトの名無しさん
17/10/15 10:17:34.83 xAZWROGI0.net
C#でpyplotみたいにフォーム作らなくてもお手軽にグラフ表示する方法ってないですか?

116:デフォルトの名無しさん
17/10/15 10:19:38.15 Tx63GDtfa.net
グラフコントロール的なのなかったっけ?

117:デフォルトの名無しさん
17/10/15 10:27:56.21 Tx63GDtfa.net
表示しないとdrowtobitmapきかねっけ?

118:デフォルトの名無しさん
17/10/15 16:04:17.23 64liGYG7M.net
ずっとグラフコントロール見てたけど
前だったら商用が一番おすすめだったけど
今はもうwebのフリーのコントロールに負けてるので金を払ってまで使う必要あるのかと思う

119:デフォルトの名無しさん
17/10/15 16:06:29.18 Tx63GDtfa.net
chartコントロール超綺麗じゃん

120:デフォルトの名無しさん
17/10/15 16:17:59.94 +yNynBs60.net
>>113
だよな。コントロール並べるだけじゃ満足できないならwpfやuwpに移行したほうが効率いい
もうオーナードローなんかやりたくないよ

121:デフォルトの名無しさん
17/10/15 16:21:03.11 Tx63GDtfa.net
>>119
フォントまで対応してたっけ?
今PCってフォント125%とかデフォルトで設定して売ってんじゃん

122:デフォルトの名無しさん
17/10/15 16:35:55.54 64liGYG7M.net
グラフって表示するだけじゃなくてインタラクティブなのものを求められたりするんで困る

123:デフォルトの名無しさん
17/10/15 16:46:42.46 +yNynBs60.net
>>120
拡大したいコントロールをViewBoxってコントロールで囲えば、何でも拡大縮小してくれる

124:デフォルトの名無しさん
17/10/15 16:57:11.91 Tx63GDtfa.net
>>122
フォントサイズやフォントの倍率変えても行ける?

125:デフォルトの名無しさん
17/10/15 17:11:04.42 64liGYG7M.net
使い勝手がいいかどうかは別だけど
スクロールバーありものも突っ込んだら悲しいことになる

126:デフォルトの名無しさん
17/10/15 17:17:55.44 Bo2AAy/J0.net
>>120
PCうんぬんはフォントじゃなくてスケーリングじゃないかな。
WPFは元々システムのDPIに依存しないから、スケーリング対応は簡単。

127:デフォルトの名無しさん
17/10/15 17:21:09.76 Tx63GDtfa.net
>>125
コントロールパネルの画面の
テキスト、アプリ、その他の項目のサイズを変更する
は影響受けない?
これが125%になってんだけど

128:デフォルトの名無しさん
17/10/15 17:24:10.76 q3I9S/toa.net
質問者に言っておくけど、要件を厳密に定義しないとこういう流れになっちゃう。
「formのサイズに合わせて、labelが拡大縮小」
「ォームの大きさに合わせて、ラベルの文字が大小するという感じ」
これどっちも曖昧だって。
要件っていうのは解釈や忖度や妄想の余地がないように厳密に定義しなきゃ

129:デフォルトの名無しさん
17/10/15 17:25:59.26 64liGYG7M.net
使ってみればいいよ
ViewBoxは使いどころが難しいと思う
マウス操作するものはなるべく突っ込まないほうがいいと思う

130:デフォルトの名無しさん
17/10/15 17:33:14.07 64liGYG7M.net
スペースが事前に決めてあってその中いっぱいに表示したいならviewbox
サイズを細かく指定したいなら向いていない
左右に二個並べてあって中身が違うにもかかわらず左右の表示を会わせたい→死

131:デフォルトの名無しさん
17/10/15 18:30:27.57 Bo2AAy/J0.net
>>126
それがスケーリングね。
スケーリングが125%になっているなら、ウィンドウ全体(コントロールも文字も)が125%に拡大された上で綺麗に表示してくれるよ。

132:デフォルトの名無しさん
17/10/15 19:26:58.15 boo3QsX80.net
>>127
実際に作るものはともかくここでの流れまで初心者に言っても
最初から要件を細かく定義できるのならググったほうが速いし
質問の仕方から見て>>109>>113で十分かと
>>108
WPFはわからないのでWinForm+>>109で仮に作るとこうなる(Labelだけ対応)
URLリンク(ideone.com)
ここまでは簡単で破綻しないように調整しようとすると面倒。自分では使わないw
この段階でたぶん座標とサイズがintでフォントサイズがfloatのせいで最後の文字で時々失敗する

133:デフォルトの名無しさん
17/10/15 19:43:17.05 H5qn+0zu0.net
Windows10のOS寄りの話になっちゃうかもしれませんが、
タスクバーとかその上にくっ付いてるコントロールの透明化を一時的にでも止める方法あったら教えてください。

134:デフォルトの名無しさん
17/10/15 20:08:50.91 T+wcAuKm0.net
>>132
設定→個人設定→色→透明効果→オフ
と同じことをプログラムからやりたいってこと?
C#の範疇じゃないので、聞くならWinAPIスレかなぁ

135:デフォルトの名無しさん
17/10/15 20:14:55.96 Gr3hJnkQa.net
タイトルバーのこと?

136:デフォルトの名無しさん
17/10/15 20:32:23.95 +yNynBs60.net
UWPだと、画面のサイズに依ってフォントのサイズどころかコントロールのレイアウトから何から何まで変更することが可能です
VisualStateManagerとAdaptiveTriggerってのを使うんだが、ちょっと説明には骨が折れるから興味ある人はググってね
単純なものでも、この複雑さだからね
URLリンク(blog.naotaco.com)

137:デフォルトの名無しさん
17/10/15 21:09:13.78 H5qn+0zu0.net
>>133
そうです。スレ違いでしたね
透明の箇所はスタートメニューから全部無効化したいですね
急ぎじゃないんで適当に調べてみます

138:デフォルトの名無しさん
17/10/15 21:25:24.68 +yNynBs60.net
>>136
URLリンク(news.mynavi.jp)
ここにレジストリの変更でできるって書いてあるが、後は頑張ってね

139:デフォルトの名無しさん
17/10/16 06:32:34.43 RQ+FBTWza.net
>>130
おお、大丈夫なのか
ありがとう
原因を分けて対応しないと駄目だな~

140:デフォルトの名無しさん
17/10/16 08:01:21.51 ecMhS81Sp.net
二つの同じ長さの配列A,Bの末尾から5つを取り出してその全ての要素がA>BならTrueを返す
↑これってLINQでうまく書ける?

141:デフォルトの名無しさん
17/10/16 08:05:12.77 qSwuY79xa.net
>>139
友の会行けよ
明らかに初心者スレじゃねぇよ

142:デフォルトの名無しさん
17/10/16 09:40:47.13 Hv+h3c0cM.net
LINQの定義次第っていうか
LINQ to ObjectsならTakeLast拡張メソッドを自分で実装すればいける

143:デフォルトの名無しさん
17/10/16 09:50:04.77 dwD3mD07M.net
>>139
A.Reverse().Zip(B.Reverse(), (a, b) => new { a, b }).Take(5).All(ab => ab.a > ab.b)
>>141
十分初心者レベルだよ
自分がわからないからスレ違いってw

144:142
17/10/16 09:51:11.95 dwD3mD07M.net
すまん
わかると思うけど下のアンカは>>140の間違い

145:デフォルトの名無しさん
17/10/16 09:53:43.90 REWIMY/C0.net
なんで推敲する程度の余裕すらないんですかね…
寿命が近くて生き急いでるのかな?

146:デフォルトの名無しさん
17/10/16 10:01:59.84 qSwuY79xa.net
>>142
こんなコード見やすいと思ってる時点で頭がイカれてる

147:デフォルトの名無しさん
17/10/16 10:13:40.50 /cVIDSfR0.net
またLINQに親殺されたマンのスイッチ入ったな

148:デフォルトの名無しさん
17/10/16 10:15:02.52 VBGd717qM.net
逐次的に読むだけだから難しくはないと思うが…

149:デフォルトの名無しさん
17/10/16 10:15:18.65 qSwuY79xa.net
まあ、動作も遅いしね

150:デフォルトの名無しさん
17/10/16 10:16:28.62 /cVIDSfR0.net
>>148
ちょっと興味あるから同じ処理をわかりやすいように書いてみて

151:デフォルトの名無しさん
17/10/16 10:25:12.95 X+6CakuHM.net
>>145
勢いで書いて後から見てワケワカランで
こんな糞コード誰じゃと調べたら自分だった事が多々あるw

152:デフォルトの名無しさん
17/10/16 10:51:30.20 yXhtcONm6.net
>>148
LINQ難しくて嫌いだからってケチ付けるなよwwwwwwwww

153:デフォルトの名無しさん
17/10/16 10:57:04.66 qSwuY79xa.net
>>151
いや、遅いのと見難いから嫌い

154:デフォルトの名無しさん
17/10/16 11:02:26.88 X+6CakuHM.net
メソッドチェーンってそんなに見づらいか?
クエリー構文はキモくて嫌いだが。

155:デフォルトの名無しさん
17/10/16 11:05:31.52 REWIMY/C0.net
LINQに全てを奪われたマンだろ

156:デフォルトの名無しさん
17/10/16 11:07:08.78 qSwuY79xa.net
>>153
テトリスを一行で書きました(改行コードがないだけ)
みたいな臭いがして臭い

157:デフォルトの名無しさん
17/10/16 11:07:49.77 kQRYApqGa.net
>>142はLINQ好きじゃない俺でも十分読める
ちょっと思ったけど
A.Reverse().Zip(B.Reverse(), (a, b) => a > b).Take(5).All(x => x);
こっちの方がいい気が
Tがboolの時predicatorじゃなくて要素そのものを評価するオーバーロードってないんだね

158:デフォルトの名無しさん
17/10/16 11:17:17.26 kTlR9ez60.net
>>142
ありがとうありがとう
なんでかTakeLastが使える(最近追加された?)んでリバースなくて行けました
けどめちゃくちゃ遅かった…
ちょっとLinqでやるんが無理だったんかな、でもすごくためになりましたありがとう

159:デフォルトの名無しさん
17/10/16 11:18:16.37 yXhtcONm6.net
>>155
こんなに普及してるjQuery全否定か

160:デフォルトの名無しさん
17/10/16 11:21:16.85 /cVIDSfR0.net
>>155
頼む、アウアウオー Sa63-qY8Gなりの同じ処理のコードを書いてくれ
そっちのほうが分かりやすかったら味方も増えるだろ

161:デフォルトの名無しさん
17/10/16 11:22:50.09 yXhtcONm6.net
しかも最近流行りの状態を持たない関数型プログラミングだし

162:デフォルトの名無しさん
17/10/16 14:46:59.09 L72cxc6g0.net
SQL使ってた人にはLINQは分かりやすいけど長いと読む気なくすのはSQLも同じ

163:デフォルトの名無しさん
17/10/16 14:54:15.28 ckY7h8O8M.net
>>161
linqのクエリ式とsqlは別もん。
sqlを知らない方が良いかもね。

164:デフォルトの名無しさん
17/10/16 15:12:28.85 tCfKnGA20.net
TrackBar のツマミを、タッチ操作用に大きくしたいんですが、どうすればいいんでしょうか。
検索しても解決に至っていない質問がちらほらあるぐらいです。もしくはこれでもかってぐらい
自分で書いたオリジナルのトラックバーとか。
そこまでしなくても、ツマミが大きくできるだけでいいのですが。

165:デフォルトの名無しさん
17/10/16 15:21:38.99 L72cxc6g0.net
>>162
別物(キリッ)とか言われても
同じだなんて言ってないけど
ただ取っ掛かりの部分でSQLの知識が活かせるから個人的には学習コスト低かったし、
逆にSQL知らない子に教えて慣れさせるのには苦労したわ

166:デフォルトの名無しさん
17/10/16 15:32:11.28 1Xir09k9d.net
>>164
メソッド式だけで充分

167:デフォルトの名無しさん
17/10/16 15:34:39.13 ckY7h8O8M.net
>>164
自分の場合はSQL知っててクエリ式を見たときは何じゃコリャと思ったもんで^^;
冗長だけどメソッド式が好み。

168:デフォルトの名無しさん
17/10/16 15:58:03.25 L72cxc6g0.net
>>165
そう思ってるのお前だけだからクエリ式があるんだろ
悟れよ

169:デフォルトの名無しさん
17/10/16 15:59:01.02 L72cxc6g0.net
>>166
面食らうのはわかるけどすぐ慣れるでしょ

170:デフォルトの名無しさん
17/10/16 16:04:24.32 VwEzpL/B0.net
>>163
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

171:デフォルトの名無しさん
17/10/16 16:09:03.51 /hjaT7S3M.net
>>168
linqの出始めの頃はクエリ式を多く見かけた気がするが、最近のグーグル先生ではメソッド式を多く見かける気がする。
どっちが主流なんだろ?

172:デフォルトの名無しさん
17/10/16 16:12:46.47 /cVIDSfR0.net
今はメソッド式のほうが主流なんじゃない
最初は皆珍しがってクエリ式使ってたけど
今はほとんど見ない

173:デフォルトの名無しさん
17/10/16 16:28:30.74 /hjaT7S3M.net
>>171
vb.netだと状況が違うかも。
メソッド構文が冗長過ぎるよ。

174:デフォルトの名無しさん
17/10/16 17:44:59.60 1Xir09k9d.net
>>167
クエリ式で可能なことは全てメソッド式で可能。逆は成り立たない。

175:デフォルトの名無しさん
17/10/16 17:46:24.26 n1MWZemqd.net
>>167
充分の意味がわかってないということは中卒かな?

176:デフォルトの名無しさん
17/10/16 17:48:04.85 Vn+nsPRE0.net
>>113
>>131
コードも書いて頂いてありがとうございました。
恐縮しております。
いろいろいじってみたところ、
WPFでできそうなのでやってみます。

177:デフォルトの名無しさん
17/10/16 18:08:02.80 4cngaiV60.net
>>172
Functionがウザすぎてクエリ式使うわ

178:デフォルトの名無しさん
17/10/16 18:19:09.19 Jb7W9hCC0.net
リファクタリングって実際にやる事って多いのでしょうか?
とりあえず動くものを作ると手直しが大変で、設計を考えてから作るならそんなにリファクタリング起こらない様な感じもしますが
後から機能追加していくと分割しようとかってのもあるのでしょうか

179:デフォルトの名無しさん
17/10/16 18:25:44.09 eZI1RZBbM.net
多いです

180:デフォルトの名無しさん
17/10/16 18:40:53.97 ls7B8y8Ka.net
むしろそんなんばっかで嫌になる
最初の仕様書もっぺん見てみろや禿げと言いたくなるね

181:デフォルトの名無しさん
17/10/16 18:51:38.88 L72cxc6g0.net
>>174
じゃあお前はILで書ければC#要らないんだろうな高学歴さん
そもそも糖衣構文なんてどれも使い方次第だろ
言われないとわからんか?

182:デフォルトの名無しさん
17/10/16 18:57:14.07 X9WtM+0ed.net
>>180
ILがc#並に使い勝手良ければそうだろうね

183:emanの物理学ってサイトわかりやすいな
17/10/16 19:03:30.59 8ymsOkDP0.net
教科書見ても全然わからんかったのにスイスイ理解できる

184:emanの物理学ってサイトわかりやすいな
17/10/16 19:03:49.47 8ymsOkDP0.net
ミスった

185:デフォルトの名無しさん
17/10/16 19:22:10.94 BTwHB29Wa.net
>>177
それって誰の金でやってんの?
次の開発なんかあるかどうかわからないのに無駄じゃない?

186:デフォルトの名無しさん
17/10/16 19:22:42.93 LfvhrZmO0.net
>>177
設計を考えてから作ったあとにリファクタリングとか、設計が糞だからやり直すようなもんだわな

187:デフォルトの名無しさん
17/10/16 19:23:29.95 BTwHB29Wa.net
リファクタリングって設計がクソだからやるの?

188:デフォルトの名無しさん
17/10/16 19:30:37.46 TyTVOwnW0.net
>>177
一度書いたコードは問題なく動いている限りリファクタリングなんてすることは無いよ。
リファクタリングする工数なんて何処にも無いからね。
元のコードを大きく改変する必要があるとか類似システムを作るときは
思い切ってリファクタリングするけどね。そっちの方が品質も安定するし早いから。
ま、そんだけ元のコードが酷いって事さwww

189:デフォルトの名無しさん
17/10/16 19:30:40.89 Jb7W9hCC0.net
>>184
主力製品の機能変更で売ってくようなスタイルだと機能追加の度にコードが増えてくけど、その度に仕様変更でバグが混入する可能性があるからコード直ししたいとかあるってパターンもあると思います
既に基底が整備されてるとかプロジェクト毎に違う製品作るパターンならこういうことは無いと思いますが

190:デフォルトの名無しさん
17/10/16 19:34:29.63 BTwHB29Wa.net
>>188
でもお客の要望がリファクタリングの方向とズレてる場合って
かけたコストが丸損じゃない?

191:デフォルトの名無しさん
17/10/16 19:38:56.50 Jb7W9hCC0.net
>>189
あくまでお客とのやり取りではなく、コードは会社の資産という観点でリファクタリングするという考えですね
お客の要望で機能追加する前提のものなので、そこで保守するコストやバグによる信用低下からプログラムそのものの価値が下がるって概念になると思います
まぁ実際はリファクタリングするには大きすぎるので理想はあっても実行は中々できないと思いますが

192:デフォルトの名無しさん
17/10/16 19:39:51.97 3WbDhRser.net
>>173
letとSelectManyの連鎖はクエリー式でないと辛すぎるですたい

193:デフォルトの名無しさん
17/10/16 19:48:17.74 eZI1RZBbM.net
リファクタリングのやり方がおかしいんじゃないかな
リファクタリングでコードがシンプルになればその後の開発工数が激減する

194:デフォルトの名無しさん
17/10/16 20:21:04.95 rY47nFh2M.net
レガシーシステムに手をつける前に必ずリファクタリングするって常識でしょ
レガシーシステムは恐ろしいスパゲティの塊なのでそのまま手を出すとあっという間に破綻する
まずはリファクタリングで保守可能な状態を作らなければならない
最悪でも拡張する機能をテスト可能な状態にすること
顧客がバカでコミットできない場合でも知識を得るためにリファクタリングが最適
腐ったコードはどれだけ読み込んでも理解できない

195:デフォルトの名無しさん
17/10/16 20:21:22.23 BTwHB29Wa.net
>>190
いや今まで設定ファイルから読んでたけど
ネットワークから取得するわ
一括ではなく個々のデータを使用するときに常に最新データを個別に取得するわ
ってなったら絶対無駄になるよね?

196:デフォルトの名無しさん
17/10/16 20:26:56.04 BTwHB29Wa.net
>>192
それは改修時にする設計だよね
それは理解できる
でも、動いてるところをわざわざぶっ壊して作り直すって
お客に見積り通らないよね

197:デフォルトの名無しさん
17/10/16 20:29:25.51 Jb7W9hCC0.net
>>194
それで無駄になるケースってどういう場面でしょうか?
設定ファイルとコードが依存してなければ設定ファイルの取得部分の追加変更でリファクタリング自体は無駄にならないと思いますが
変更できないような設計なら確かに無駄になると思いますが・・・

198:デフォルトの名無しさん
17/10/16 20:31:20.88 1MDONeW40.net
>>195
スレチ

199:デフォルトの名無しさん
17/10/16 20:31:55.64 BTwHB29Wa.net
>>196
設定ファイルを読み込む前提でリファクタリングしたなら
ネットワークからデータを個別に取得するようになるわけだから無駄だよね?

200:デフォルトの名無しさん
17/10/16 20:34:39.53 VwEzpL/B0.net
無駄になる可能性もあるけど無駄にならない可能性もある
汚いコードだった場合ほど無駄にならない

201:デフォルトの名無しさん
17/10/16 20:34:54.38 BTwHB29Wa.net
設定ファイルは起動時に1回一括で読み込むだけかも知れないね
でもネットワークからデータが必要になるたびに個別に最新を取得だから
ぶっちゃけ対応できないんじゃないかな?

202:デフォルトの名無しさん
17/10/16 20:36:10.80 BaDXAceVd.net
>>200
スレチ

203:デフォルトの名無しさん
17/10/16 20:37:35.41 BTwHB29Wa.net
>>199
そう?
逆にこれが対応できるほど汎用性を上げたら明らかに無駄なコードだと思うよ

204:デフォルトの名無しさん
17/10/16 20:38:05.31 Pq8+tcNCd.net
ID:BTwHB29Waが何言ってるかわかるエスパーいる?

205:デフォルトの名無しさん
17/10/16 20:41:07.21 BTwHB29Wa.net
>>203
簡単にいうと仕様変更がかかったらリファクタリングなんて意味ねーじゃんってこと

206:デフォルトの名無しさん
17/10/16 20:55:07.11 rY47nFh2M.net
>>204
仕様変更ってリファクタリングしててよかった~って一番実感するときだろ
まあやったことない人にはわからない感覚だとは思う
リファクタリングに工数かかるのは事実だから
目の前のコストしか見えない人だってそりゃいるよね

207:デフォルトの名無しさん
17/10/16 20:57:22.92 XeTEMs9s0.net
それはリファクタリングというかテスト書く話では

208:デフォルトの名無しさん
17/10/16 20:57:25.32 BTwHB29Wa.net
>>205
でも>>194とか無理でしょ?

209:デフォルトの名無しさん
17/10/16 21:05:31.13 rY47nFh2M.net
>>207
設定ファイル一括読み込みクラスをリファクタリングして
設定問い合わせイン�


210:^ーフェースにする 設定ファイル一括読み込みクラスは設定読み込みインターフェースを実装する 設定読み込みネットワークになったわー読み取りは毎回取り直しだわ~ってなったら 設定テーブルセレクトクラスを作る 設定テーブルセレクトクラスは設定読み込みインターフェースを実装する DIの設定を変更して終わり 簡単だろ?



211:デフォルトの名無しさん
17/10/16 21:06:54.06 rY47nFh2M.net
>>208
誤字訂正
>設定ファイル一括読み込みクラスは設定読み込みインターフェースを実装する
設定問い合わせインターフェースを実装する
>設定テーブルセレクトクラスは設定読み込みインターフェースを実装する
設定問い合わせインターフェースを実装する

212:デフォルトの名無しさん
17/10/16 21:08:49.18 BTwHB29Wa.net
組み直しに近いよね

213:デフォルトの名無しさん
17/10/16 21:12:10.02 BTwHB29Wa.net
設定ファイル一括読み込みクラスは会社の資産とのことだけど
どこ行くの?
また、設定ファイルから読み込むこともあるかも知んないから残しとく?
別の会社に売ったら
「うちはいちいちネットワークなんて繋げなくていいよ」
って言うかもね
こっちもサポートし続ける?
捨てちゃう?

214:デフォルトの名無しさん
17/10/16 21:15:35.05 HJ2RVhMCM.net
>>195
業態によるんじゃないかな
客先の社内に入ってる常駐型とかweb開発では継続的インテグレーションが当たり前
納品して終わりのシステムなんて大手は少ないんじゃないかな?

215:デフォルトの名無しさん
17/10/16 21:16:23.03 rY47nFh2M.net
リファクタリングしてないと組み直しになる
ネットワークから取ってくるって機能に切り替えたいだけなのに
なぜか設定読み込み処理そのものやそれを呼び出してるところを一生懸命調べたり直さなきゃならない
本当にやりたいことはそんなことじゃないのに!
リファクタリングしてあればまさにネットワークから取ってくる処理を追加するだけで


216:済む 既存の処理はそのまんま やりたいことを過不足なくやるだけ 解放閉鎖原則ってやつだね



217:デフォルトの名無しさん
17/10/16 21:18:26.26 LfvhrZmO0.net
>>212
継続案件でも納得してリファクタリングに金払う客居たら見てみたいわ
どうにもならなくなった糞コードを何とかする手段としてリファクタリングを使うケースは偶に見かけるけど

218:デフォルトの名無しさん
17/10/16 21:19:42.39 BTwHB29Wa.net
>>212
京都市とシステムズが争ってんじゃん
11億円の案件らしいけど
次の仕事あると思う?

219:デフォルトの名無しさん
17/10/16 21:21:16.99 z1iVQjyz0.net
客が選べないのはお前が無力だから

220:デフォルトの名無しさん
17/10/16 21:21:25.94 BTwHB29Wa.net
>>213
浅はかだな
一部設定ファイルから
一部ネットワークから
って可能性もあるよ
改修仕様が決まってから出ないとリファクタリングもゴミだなって気づけよ

221:デフォルトの名無しさん
17/10/16 21:21:40.28 rY47nFh2M.net
>>211
必要な顧客と不要な顧客が居るなら取っておいたほうがいいね
インターフェースで綺麗に分離されてるから機能有効化無効化の管理も超簡単

222:デフォルトの名無しさん
17/10/16 21:22:06.38 z1iVQjyz0.net
てかマ板でやれよ
底辺チンカスコーダーの分際でうるさいわ

223:デフォルトの名無しさん
17/10/16 21:22:56.52 BTwHB29Wa.net
>>218
ネットワーク状態によって分岐するかもしんねーぞw
どこまでインターフェースで対応できんだ?w

224:デフォルトの名無しさん
17/10/16 21:23:54.08 rY47nFh2M.net
>>217
それもリファクタリングしてあれば簡単にできるよ
単に設定ファイル読み込みクラスとネットワーク問い合わせクラスのミックスインを作るだけ
実装するのにまあ15分もかからないと思うね
リファクタリングしてなかったらこれは絶望的だよ

225:デフォルトの名無しさん
17/10/16 21:24:30.99 HJ2RVhMCM.net
>>214
MacはOSを途中で変えた
古いOSは改修に次ぐ改修で複雑に絡み合いリファクタリングすらできず
将来性がなかったから
windowsだって10までバージョンがあがったけど
そこまでのOSの変更費用は利用者が払ってる
将来性や利点があるならちゃんと説明して金をとるべき

226:あ
17/10/16 21:26:54.92 Qeq9VPfc0.net
リファクタリングは組み直しだろ。
なんでやるのかっつーと、いろんな意味でその次を楽にするため。
次の改修だったり、次の案件に使いたかったり。
ただし、それは改修と併せてやってはいかん。
改修、つまり「今より良くするもの」「悪いものを直すもの」の正しい評価ができん。
会社でやるなら、金の出処は研究開発扱いとしてやるしか無い物だと思うわ。
機械で言うと「新素材の研究が一段落していい感じだったんで、それ使ってネジのコストカットしました」とか「量産安定してきたんで金型のランナーをちょっと樹脂ケチる感じに引き直しました」とかそんなレベルの話。
もし客にバレたなら、単なる不具合の改修でしかない。

227:デフォルトの名無しさん
17/10/16 21:26:56.03 rY47nFh2M.net
>>220
それも簡単に対応できるね
ネットワークの状態を見てスイッチングするデコレーターを作るだけでしょ
リファクタリングしてなかったらあっという間に炎上する案件だよねこれって

228:デフォルトの名無しさん
17/10/16 21:28:07.20 BTwHB29Wa.net
>>221
どのデータがネットワークからでどのデータが設定ファイルからかわからないのに?
自由に変えられるように組んであるの?

229:デフォルトの名無しさん
17/10/16 21:28:59.41 BTwHB29Wa.net
>>223
だから次の仕様が明確にならないと意味ないって

230:デフォルトの名無しさん
17/10/16 21:29:59.81 BTwHB29Wa.net
>>224
そもそもそれは俺が言ってから君がリファクタリングの方法を変えてるだけで
実際はもう対応できてないじゃん

231:デフォルトの名無しさん
17/10/16 21:33:18.73 wMyYGjmV0.net
アウアウオー Sa63-qY8G
ワントンキン MMd3-pbEI
板違いで真っ赤とかNG推奨

232:デフォルトの名無しさん
17/10/16 21:33:19.62 rY47nFh2M.net
>>225
仕様はあるんだろ?
それ見て作ればいいだけ
なんならそれも設定から読むようにしようか?
ルート設定情報を見てファイルかネットワークか選ぶ
ネットワークが死んでたら何回かリトライ
それでもダメならファイルから
ファイルがダメなら埋め込みデフォルト値
みたいな感じで
リファクタリングしてれば簡単にできるぞ

233:あ
17/10/16 21:34:59.19 Qeq9VPfc0.net
>>193
不思議なもんで、理解はできるが、なんでこうなってんのかわかんねえ、って半日悩んで、スクラッチすっか、と最低限の条件からだんだん込み入った事書いてくと最終的に「これ最適解じゃん。すげぇ」ってなる事あるな。
Fortranの処理系のメンテしたほうがマシ、と言う結論に至った事がある。
>>226
次の仕様に合わせてやるのは、対応。
そうじゃなくて、「これ事故りそうだな、今手が空いてるから直しとくか」がリファクタリング。
フツーに仕事してたら納期次第で不味い手を打たざるを得ない事もあるしな。
32767回目で死ぬ事がわかってる、年に100回しか打たれないはずのコマンド、とか。
何故かそういう物に限って変な活用されたり、10年生きてたりする。

234:デフォルトの名無しさん
17/10/16 21:35:00.32 BTwHB29Wa.net
そもそも設定ファイルの読み込みルーチンだけど
すでに納めた客の対応はどうするの?
変えちゃうのはいいけどさ
動いて無いとまずいんちゃう?
インターフェースで対応できるの?

235:デフォルトの名無しさん
17/10/16 21:35:17.50 TyTVOwnW0.net
お前ら、プログラムの仕様を変えたらリファクタリングじゃねーわw

236:あ
17/10/16 21:36:09.29 Qeq9VPfc0.net
>>231
出しても出さなくても良いのがリファクタリング。

237:デフォルトの名無しさん
17/10/16 21:36:12.54 rY47nFh2M.net
>>226
仕様が曖昧なときほどリファクタリングは有効だよ
リファクタリングしてないと全く身動き取れない
リファクタリングしてあれば暫定で進められる
確定したらごく僅かな工数で本実装に切り替え可能
仕様が確定するまでの待ち時間の金は誰が払うんだ?
あれがこれが決まってないから進められないなんて泣き言は顧客は聞いてくれないぞ?

238:デフォルトの名無しさん
17/10/16 21:38:24.34 rY47nFh2M.net
>>228
あ~それは悪かった
専ブラだとスレタイが目に入らないんだよね
オブジェクト指向スレかなんかと勘違いしてたわ

239:デフォルトの名無しさん
17/10/16 21:39:10.27 BTwHB29Wa.net
そんなパッケージ販売みたいの視野に入れるなら
○○様向け読み込み処理とか
すっげー勢いででき続けるけどな
すでに動いてる部分をぶっ壊すなんて最早正気ではないな

240:あ
17/10/16 21:39:22.24 Qeq9VPfc0.net
充分にモジュール化されてれば、可換な筈だからな。
それが仕様。
中身がどう変わろうが、口はUSBです。これも仕様。
口がどう変わろうが、テキストの電文でやりとりしてます。これも仕様。
どんなキーボード繋いでもHIDデバイスとして認識出来れば文字が打てます。そんなもん。
ボタンの改良でパソコン買い替えてたら世話無いだろ。

241:デフォルトの名無しさん
17/10/16 21:41:43.16 BTwHB29Wa.net
>>237
でもね
メモリだけ増やしたいなぁって思っても
SSDにしたいなぁって思っても
マザボごと全部交換必須
これが現実

242:あ
17/10/16 21:41:47.00 Qeq9VPfc0.net
>>236
パッケージ売りするなら、で全然パッケージ売りしてねえじゃんw
普通は帳票パックとか売るんじゃねえの?ソフト屋って。
コストで悩むのは理解できるが、だから研究開発費なんだよ。

243:あ
17/10/16 21:42:18.91 Qeq9VPfc0.net
>>238
全然現実じゃなくない…?
どんな商売してるの?

244:デフォルトの名無しさん
17/10/16 21:45:48.80 z1iVQjyz0.net
バグだらけでリファクタリングできない頭の見本市がこちらです

245:デフォルトの名無しさん
17/10/16 21:45:59.06 BTwHB29Wa.net
>>239
マジで
個別対応で金貰う商売だと思ってたぜ

246:デフォルトの名無しさん
17/10/16 21:46:37.96 BTwHB29Wa.net
>>241
京都市とシステムズにも言ってやれ

247:デフォルトの名無しさん
17/10/16 21:48:06.53 4cngaiV60.net
ワッチョイ!ワッチョイ!

248:デフォルトの名無しさん
17/10/16 21:49:20.03 1MDONeW40.net
>>243
スレチだ死ね

249:あ
17/10/16 21:49:50.50 Qeq9VPfc0.net
>>242
なんで個別対応で金取れるかわかってる?
個別対応部分が可換だからだろ?
単に経験浅すぎて仕組みがわかってないだけだと思いたいな。

250:デフォルトの名無しさん
17/10/16 21:59:40.70 BTwHB29Wa.net
>>246
いいけど
すべての個別対応を一つのソースにぶち込みつつ保守してくって無理だと思うぜ
扱うデータ自体が違うのにインターフェースもクソもねーし

251:あ
17/10/16 22:03:15.56 Qeq9VPfc0.net
>>247
なんで一つのソースにしちゃうかな?
インターフェイスが統一されてれば、違うソース、違うリポジトリで充分でしょ?
扱うデータが違うのに云々ってのは、コンテナ形式のファイル見たら皆がどうやって回避してきたか理解できると思うわ。
DICOMまでガチの話でもなく、tiffファイルのフォーマット眺めるだけで充分わかる。

252:デフォルトの名無しさん
17/10/16 22:05:59.28 BTwHB29Wa.net
>>248
だからされねーだろ
データが違うんだから
始点と幅と高さでもっても
中点と幅と高さでもっても
四角は四角なんだよ

253:デフォルトの名無しさん
17/10/16 22:07:30.95 9dpoOU7Ld.net
>>249
スレチ死ねよ

254:あ
17/10/16 22:12:07.91 Qeq9VPfc0.net
>>249
内容に惑わされ過ぎだろ。
始点と幅と高さでできてる四角(四角A)と、中点と幅と高さで出来てる四角(四角B)であろうと、
ただのデータなんだから。
「四角」ってスーパークラス切り出して、「どちらかはわからんが、四角には変わりない。どっちかはそれぞれ読み手が考えるように。」ってデータ型を用意するのがリファクタリングだよ。
そしたら、図形ってデータ型が出来たり、面積のある図形ってインターフェイスが出来たりするだろうね。
typeof演算子の存在意義に疑問を持ってる類の人間なのかな。

255:あ
17/10/16 22:13:13.51 Qeq9VPfc0.net
インターフェイスについて突っ込まれそうだけど、シリアライズしてXMLにでもしときゃ、容量は食うだろうけど、C#でならだいたい何とかなる。

256:デフォルトの名無しさん
17/10/16 22:20:04.33 BTwHB29Wa.net
>>251
あめーんだよ
お前想像力がたんねーから
インターフェースでなんでも対応できる気がすんだよ
ちなみに中点、右幅、左幅、上幅、下幅指定は中点で回転するからその指定で回転角も付く
同じ四角だってすでに別もんの場合もある
こういうのたくさんあり過ぎて現実にはインターフェースなんてなんの役にもたたねーだろ

257:デフォルトの名無しさん
17/10/16 22:30:15.71 rY47nFh2M.net
インフラも依存性もないたかが四角形クラスでインターフェース否定した気になっちゃったの?

258:デフォルトの名無しさん
17/10/16 22:36:38.15 BTwHB29Wa.net
>>254
じゃあ、さっきのネットワークからデータをとる話にしたってバカがインターフェースで対応できるとか言ってたけど
実際はデータ毎に取得日時も保存しておかないと
最新かどうかわからないよねw
アホだからこんなもんで対応できると思うんやで

259:デフォルトの名無しさん
17/10/16 22:38:01.06 1MDONeW40.net
>>255
いい加減キチガイは死ねよ

260:デフォルトの名無しさん
17/10/16 22:38:28.89 JV3CytDXd.net
>>255
消えろカス

261:デフォルトの名無しさん
17/10/16 22:44:52.51 BTwHB29Wa.net
>>256
( ‘д‘⊂彡☆))Д´) パーン
>>257
( ‘д‘⊂彡☆))Д´) パーン
(*゚∀゚)なんで殴られたか言ってみろ!

262:デフォルトの名無しさん
17/10/16 22:46:33.16 HJ2RVhMCM.net
いったい何のスレなんだ?

263:デフォルトの名無しさん
17/10/16 22:46:57.67 GvNya7OCd.net
>>258
死ね

264:デフォルトの名無しさん
17/10/16 22:58:47.99 4cngaiV60.net
>>259
ID真っ赤な人を愛でるスレです

265:デフォルトの名無しさん
17/10/16 23:04:07.75 LTsOqA5h0.net
伸びすぎだろ
おまえらってこういう話題になるとイキイキするのな
会社ではモテない頼りない無能社員のくせに

266:あ
17/10/17 00:34:03.66 GZgPL7cm0.net
>>253
だから、統一できるコンテナフォーマットな形式のデータ入れに突っ込んでしまって、
必要な奴が必要な分だけパースするんよね。
ホントに実務経験あるの?甘くない?
>>255
横からだけど「取得したデータ」は「取得した何か」を継承してたり、「取得した日付」を取得するインターフェイスがあれば充分でしょ。
無知でした、ごめんなさい。が言えるのもエンジニアとして大切だと思うが、いかがなもんかのう。

267:デフォルトの名無しさん
17/10/17 00:38:20.31 cWqis51L0.net
>>263
キチガイに触んなすな

268:デフォルトの名無しさん
17/10/17 00:41:19.24 EkZQ3MrW0.net
まだやってやがる
始発に飛び込んで死ねよ

269:デフォルトの名無しさん
17/10/17 00:45:14.10 7pWr2cdn0.net
死んでも、俺がザオリクを唱えてあげるからな

270:デフォルトの名無しさん
17/10/17 01:10:49.63 0KKPzkG80.net
スレチ指摘されても理解できない頭のヤツにリファクタリングの必要性説いてどうすんの

271:あ
17/10/17 08:19:27.73 kX2KiqXMd.net
確かに。無駄に伸ばしてすまん。

272:デフォルトの名無しさん
17/10/17 19:01:31.69 YbpTy6K90.net
最近独学で勉強始めたんだけど難しすぎる…
自分で考えたり工夫する能力がないんだろうな
自分がやりたい事と全く同じサンプルが無いと何も出来ない
みんなどうやって見につけたんだ?
やっぱアホには無理なのかな

273:デフォルトの名無しさん
17/10/17 19:09:25.19 exorZDFN0.net
>>269
できることからやればいい
できないことをやろうとすると達成感が得られなくてやる気が無くなるループになる
自分の頭の中で必要な要件を切り分けられないものには手を出すな
サンプルは全く同じものがあるはずがないので近いものを探す。一つだけでなくいくつも探す

274:デフォルトの名無しさん
17/10/17 19:34:46.70 owv2SIUK0.net
>>269
c#ってかなり難しいと思うよ。
抽象的な概念がかなりある。
今は、ひたすら写経に励めよ。

275:デフォルトの名無しさん
17/10/17 19:36:25.48 owv2SIUK0.net
c#がそれなりに使えるのには5年は掛かるね。
表面上使いこなせるのには他の言語を知ってりゃ3か月だ。

276:あ
17/10/17 19:38:37.05 GZgPL7cm0.net
>>269
やりたい事を初めて見た他人が代わりにできるくらいのメモにまとめて、それをコードに落としていけば良いんじゃない?
最初は言語の機能全部使う必要無いんだから。
そのうち、これ毎回書くな…とか思ったら、そういう機能があるかどうか調べたら良い。大体ある。

277:デフォルトの名無しさん
17/10/17 19:53:24.64 YbpTy6K90.net
>>269です
レスありがとう
最近仕事で使うことになって人生初のプログラミングを経験中なんだけど何もかも分からないから質問も出来ないし、しても分からないし、何回か聞くともっと自分で考えてやれみたいな感じだから毎日悩みっぱなしだ
出来ることから地道にやれたら良いんだけど仕事だからなかなか厳しいね…
とりあえず独習って本を読んだり試してまずは基礎をしっかり理解するようにしてる
みんなもひたすらサンプルを書いたりして理解して行った感じなのかな

278:デフォルトの名無しさん
17/10/17 19:59:57.62 U8+gWhs5r.net
C#難しいのかなあ?
自分はこんな便利なのか!と感動したけど

279:デフォルトの名無しさん
17/10/17 20:05:06.59 Rn8Nldlma.net
>>274
作りながら覚える本のがいいよ
俺は
まあ、人によるけど

280:デフォルトの名無しさん
17/10/17 20:33:03.63 O+BDW8AjM.net
C++先にやっとけばC#は凄く簡単

281:デフォルトの名無しさん
17/10/17 20:33:14.23 FJCAd6676.net
C#が難しいってオブジェクト志向な設計が難しいってこと?

282:デフォルトの名無しさん
17/10/17 20:43:58.37 Q467/Wh20.net
C#が難しいんじゃなくて、
オブジェクト指向が難しいとかプログラミング自体が難しいって話だな

283:デフォルトの名無しさん
17/10/17 21:04:44.09 0KKPzkG80.net
>>275
それは他言語経験者の感想やろ

284:デフォルトの名無しさん
17/10/17 21:30:09.12 O+BDW8AjM.net
初心者はC#のどこで躓くんだろう
ラムダか?

285:デフォルトの名無しさん
17/10/17 21:50:31.65 OjUPM8wm0.net
>>281
上の人は、C#特有の要素がどうこう以前に
プログラミングその物で躓いてるからなあ
多言語経験者がC#特有の要素で躓くとしたら、デリゲートじゃないの

286:デフォルトの名無しさん
17/10/17 22:01:11.01 opt3bdnY0.net
>>271
射精なら励んでるんだけど・・

287:デフォルトの名無しさん
17/10/17 22:02:28.67 opt3bdnY0.net
>>274
おれも独学だけど、ここの人達は何だかんだで面倒見いいから、頼るといい。

288:デフォルトの名無しさん
17/10/17 22:22:32.10 umFbfT/c0.net
最初、文法だけを説明している入門書(猫でも~)で勉強したけど
「インターフェース? 規約だけを定めたもの? 具体的に何の役に立つんだ?」
「構造体? クラスとどう使い分けるんだ?」
「デリゲート? C/C++の関数へのポインタみたいなもの? Cなんて知らんがな」
みたいな疑問が次々と湧くのに解決されないまま、文法の丸暗記だけしてる感があってしんどかった
サンプルコードも、最低限の説明用のシンプルすぎるもので、実用性っぽいものが皆無だったし
もう少し丁寧に解説してる本から始めればよかった

289:デフォルトの名無しさん
17/10/17 22:37:26.16 YbpTy6K90.net
>>284
ありがとう
馬鹿だから質問すらなんて聞いて良いか分からないんだけどね
入門書みたいなのは何冊か読んだり試したりして、コード見ればぼんやりこういう事してるんだなっていうのは分かるんだけど、いざ自分で1からやろうと思うと何も書き出せなかったりする
>>285が言うようにこれが何に活きてくるんだ?っていうような疑問も沢山あるし…
実務だとアプリ作ってって仕様書渡されてデータベースから値をとって加工してグリッドに表示させたりとか、何かたった一行でも表示させるのに丸一日かかって結局分からないとかも多々ある
機転が利かないっていうか自分で考えてこういう風に組み替えたり応用したりしようってのが出来ない…
知識が付けば出来るようになるのかな
愚痴吐いてごめん
勉強してきます

290:デフォルトの名無しさん
17/10/17 23:06:15.45 O+BDW8AjM.net
とりあえずデータベースとグリッドの事は忘れてコンソールアプリを作るべきだ
最近の若者は順序がめちゃくちゃ

291:デフォルトの名無しさん
17/10/17 23:26:36.50 9CwiJQBWM.net
Webだと仕組みを理解すれば案外コンソールと変わんなかったりするけどね

292:デフォルトの名無しさん
17/10/17 23:49:29.75 OjUPM8wm0.net
「言語その物の機能」と
「外部の物にアクセスする手段」とは、分けて学習するべきだわな

293:デフォルトの名無しさん
17/10/18 01:03:17.80 3+TwrJNfa.net
非常に申し訳ないんですがLINQの質問いいですか?
インデックスが対応する二つの配列A、Bがあります
Aには氏(string)、Bには性(bool)が入っていて
女性で田中が何人いるってのは、どう書けばいいですか?

294:デフォルトの名無しさん
17/10/18 01:10:27.98 vo9W3JA50.net
>>290
A.Zip(B, (a, b) => new { a, b }).Where(ab => IsFemale(ab.b) && ab.a == "田中").Count(


295:)



296:デフォルトの名無しさん
17/10/18 01:14:46.91 BXrTaZiI0.net
>>285
「猫でもC#」は「スッキリわかる Java入門 第2版、2014」で、
オブジェクト指向を学んだ人向け
本当の素人には、向いていない

297:デフォルトの名無しさん
17/10/18 01:27:09.70 3+TwrJNfa.net
>>291
ありがとうございます
結構難しいですね。解読して勉強させて頂きます

298:デフォルトの名無しさん
17/10/18 02:39:15.39 iR/4ihsX0.net
>>291
Whereいらない Countが条件節取れる

299:デフォルトの名無しさん
17/10/18 03:21:25.19 x50wQsAO0.net
>>288
ASP.NET Coreはコンソールアプリだしね

300:デフォルトの名無しさん
17/10/18 04:11:05.14 f/O0/ZtAH.net
>>293
A.Zip(B, (a, b) => new { a, b })
.Where(ab => IsFemale(ab.b) && ab.a == "田中")
.Count()
改行するだけで随分理解しやすくなるはず
A.Zip(B, (a, b) => new { a, b })
.Count(ab => IsFemale(ab.b) && ab.a == "田中")
Where要らないの意味も解りやすくなるはず

301:デフォルトの名無しさん
17/10/18 06:16:24.19 qUhUKvGj0.net
>>292
猫でもはどのシリーズも薦めない。

302:デフォルトの名無しさん
17/10/18 07:51:54.79 vI9phIcRd.net
>>286
上級者がどうやって作ってるかを見て、自分が思ったやり方と違う部分を見つけて意図を聞くのがいいかも
まぁ相手が付き合ってくれることが前提だけど
どのみち初学者の場合、学習曲線はある程度学んだ時点から一気に上昇するもんなので、最初はコツコツ疑問を潰すしかないよ

303:デフォルトの名無しさん
17/10/18 07:54:10.74 W+0BZmzB0.net
あと同じような内容でも入門書は評判の高い順に何冊か読んだ方がいい
自分に合った説明が一冊の中に全部詰まってる事なんてないから

304:デフォルトの名無しさん
17/10/18 08:19:01.99 Uigi9MZrM.net
じゃ河西本やな

305:デフォルトの名無しさん
17/10/18 08:27:03.75 DAWWUo8AM.net
>>290
name[100], age[100] みたいにデータを列持ちするのは現代的なプログラミングにおいては非常に悪い作法なので今すぐやめたほうがいい
クラスを作って行単位で持つのが基本

306:デフォルトの名無しさん
17/10/18 12:35:54.11 uKmp6sxaM.net
>>290
氏名と性別を持ってるクラスのListにしたほうがいいよ

307:デフォルトの名無しさん
17/10/18 12:36:22.87 uKmp6sxaM.net
>>301
書いてあったw

308:デフォルトの名無しさん
17/10/18 13:54:21.47 M3PcmRrI6.net
クラスと構造体の使い分けを教えてくれ

309:デフォルトの名無しさん
17/10/18 13:58:44.93 pBm/jvOsa.net
>>304
処理を付加したかったり読み書き制限したりしたかったらクラスと言うか、構造体でできることはクラスで全部できるからあえて構造体を選ぶ場面は少なくないか

310:デフォルトの名無しさん
17/10/18 14:30:35.20 YSC60BKkM.net
>>304
win32api呼び出す時以外は使い道ないかも。

311:デフォルトの名無しさん
17/10/18 17:29:04.28 jNhOnQNR0.net
別に構造体でないとPInvokeできないということはないはずだが
StructLayoutはクラスのレイアウトも制御できるわけで

312:デフォルトの名無しさん
17/10/18 17:49:30.20 J95CPfXbM.net
ポインタじゃなくて構造体のコピー寄越せって関数とか

313:デフォルトの名無しさん
17/10/18 17:54:28.88 MMY2jKS6d.net
>>304
十分小さい時は構造体の方がパフォーマンスがいい

314:デフォルトの名無しさん
17/10/18 17:54:33.85 GswCLlj60.net
>>304
C/C++連携かパフォーマンス最適化か
1. Microsoft (2008)
1) It logically represents a single value, similar to primitive types (int, double, etc.).
2) It has an instance size under 16 bytes.
3) It is immutable.
4) It will not have to be boxed frequently.
URLリンク(docs.microsoft.com)
2. Effective C# 2nd(2010)
1) Is the main responsability of the type data storage?
2) Is its public interface defined entirely by properties that access or modify its data members?
3) Are you sure your type will never have subclasses?
4) Are you sure your type will never be treated polymorphically?
3. とあるStackOverflowの回答
1) You use structs for performance when stored in arrays.
2) You need them in code passing structured data to/from C/C++
3) Do not use structs unless you need them:
URLリンク(stackoverflow.com)

315:デフォルトの名無しさん
17/10/18 18:14:03.46 f/O0/ZtAH.net
>>304
明らかにその場で使い捨てなら構造体

316:デフォルトの名無しさん
17/10/18 18:23:14.37 a0tZ3XvZ0.net
16バイト以下なら構造体

317:あ
17/10/18 18:24:25.72 9gwGUiRxd.net
>>304
ゼロ初期化で良いものでshort3つとか小さいものは、クラスより遥かに軽いので、万の桁で呼ぶなら構造体にする。
あとGCで回収させずに、メソッド終わったら即捨てたいものとか。これもそのメソッドを頻繁に呼ぶ時に。
小さい構造体はヒープではなくてスタックに置かれて、抜けたら無くなるので効率とかより、GCが呼ばれてる暇がなくてもちゃんと開放される。
よく使うのは、挙がってるの以外だと描画周りに使う事ある。
ちなみに、処理を付加すると言うか、メソッド生やすのは拡張メソッドで無理が効くようになったから、関数載せたい、でも関数の参照持たせたくない!もかなりなんとかなる。

318:デフォルトの名無しさん
17/10/18 22:59:59.74 K9flraWY0.net
値っぽいやつは構造体

319:デフォルトの名無しさん
17/10/19 06:04:01.12 eqdHlWFS0.net
ふと思ったのですが、メソッドで匿名型クラスのインスタンスを返すことってできますか?
返すことができるなら返り値の型になんて書けばいいのでしょうか?Typeはだめでした

320:デフォルトの名無しさん
17/10/19 07:15:50.96 8WeFWhTb0.net
あえていうならdynamicだけどメソッド超えるなら匿名型は諦めよう

321:デフォルトの名無しさん
17/10/19 08:07:39.54 hoxSwRGJH.net
今ならタプル返せばよい

322:デフォルトの名無しさん
17/10/19 09:32:28.99 mqSZ6mSda.net
C#の絵本第2版出てるな

323:デフォルトの名無しさん
17/10/20 02:56:07.82 iR2BGy9F0.net
文字列型のIdプロパティも持つクラスHogeのリストList<Hoge>からIdのカンマ区切りの文字列を求めたいのですが、
普通にやると
string.join(",", items.Select(i => i.Id));
とループが2回走るんですが、これをLINQか何かで1回のループで求められるでしょうか??

324:デフォルトの名無しさん
17/10/20 03:17:26.49 InyPVBX00.net
>>319


325: string.JoinにIEnumerable<string>渡してるから、そのままでループは1回になるんじゃないか



326:デフォルトの名無しさん
17/10/20 03:50:32.91 PY8ywvH80.net
自分でループまわして連結すればいいんじゃないか

327:デフォルトの名無しさん
17/10/20 04:34:32.44 iR2BGy9F0.net
>>320
items.Select(i => i.Id)
あれ、このSelectでもう1回ループまわる??
よくわかんなくなってきた

328:デフォルトの名無しさん
17/10/20 04:36:29.82 iR2BGy9F0.net
ああ。Selectでループ回らないか。

329:デフォルトの名無しさん
17/10/20 05:12:35.17 NH12zMgi0.net
vb.netを何年か使って仕事してたのですが、c#に移行していくことになったのでc#の学習を始めようと思っているのですが、おすすめの書籍はありますか?

330:デフォルトの名無しさん
17/10/20 06:26:42.31 2DRMxDJ60.net
>>324
Effictive C#とか
古いけど

331:デフォルトの名無しさん
17/10/20 06:38:32.06 l3SzA2hHM.net
実戦で役立つC#のイディオムなんちゃら
割とよかった
基本をサッと把握するにはこれで良いと思う
基本を抑えたらCLR via C#とか読むべき
dotnet coreならマイクロソフトのドキュメントかな
アップデートが速すぎて本が出ない

332:デフォルトの名無しさん
17/10/20 07:08:41.55 NH12zMgi0.net
>>325
>>326
ありがとうございます。
基礎を理解するのに、独習C#かオライリーのC#の購入も検討していたのですが、その2冊についてはいかがでしょうか?
あまり役に立たない様なら、おすすめいただいた3冊を購入してみようと思います。

333:デフォルトの名無しさん
17/10/20 07:29:07.74 2DRMxDJ60.net
>>327
正直最初の一冊は好きなの選べばいいよ
それで足りないと思ったらここを含めてお勧めされてる本をレビューなんかで評価の高い順に読めばいい
どの本の内容があんたに合ってるかはあんたにしかわからんのだから

334:デフォルトの名無しさん
17/10/20 09:14:18.94 zf8EG0F60.net
誤植がない本がいいよ
C#始めた頃に買った入門本で、「なんでこうなるんだろう・・・」と嵌まって時間浪費したことがある
誤植に気づけるまでのレベルなら流せる問題が、一言一句読み解きながら進めてるときに
誤植にあたると学習コストが無駄に跳ね上がる
まぁ、読む前にそれを気づくのは至難の業だから、評価高い本と初版避けることくらいしか方法ないけど

335:デフォルトの名無しさん
17/10/20 12:43:09.38 l+99Dkv9a.net
>>324
VB何年かやってたなら@ITの記事を一通り斜め読みするだけでも十分でしょ

336:デフォルトの名無しさん
17/10/20 12:45:00.04 RDZrWMpbM.net
>>329
そう言うのこそ
なんでこうなるのだろう?
って思った時にここで聞けばいいんじゃね?

337:デフォルトの名無しさん
17/10/20 13:02:30.91 kQTzxkDwa.net
この業界歴史が浅いから本が必ず正しいことを言っているとは限らない点も注意だな
長くたって結局将棋とか過去の棋譜を使わないほうが強くなったらしいし
未来は自分で切り開くんだよend

338:デフォルトの名無しさん
17/10/20 13:10:28.70 Qvu1f4hHH.net
ここで聞くのは一番やっちゃいけないことだと思う

339:デフォルトの名無しさん
17/10/20 13:25:54.62 kQTzxkDwa.net
>>333
じゃあ、オススメを貼れよグズ

340:デフォルトの名無しさん
17/10/20 14:00:27.64 QjnViytCM.net
>>333
ある意味、正論だな。
ここで回答してる奴でここで質問したことのある奴は殆ど居ないんじゃないのかな。

341:デフォルトの名無しさん
17/10/20 14:08:15.33 kQTzxkDwa.net
>>335
してるよ!
c#の構文解析でいいライブラリねーの?
って聞いてから返答ないままだよ!

342:デフォルトの名無しさん
17/10/20 14:08:31.02 QjnViytCM.net
>>334
StackOverflow英語版かな?

343:デフォルトの名無しさん
17/10/20 14:14:34.61 QjnViytCM.net
>>336 凄いアバウトな聞き方w じゃ、.NET Frameworkって回答しとく。



345:デフォルトの名無しさん
17/10/20 14:27:12.08 kQTzxkDwa.net
>>338
あんの?
確かに計算式はやってくれんだよね

346:デフォルトの名無しさん
17/10/20 14:31:27.58 kQTzxkDwa.net
具体的には処理フローを出力したい
reflectionでやれればそれでもいいし
ソースの文字列から構文木的なものを返してくれるならそれでもいいし

347:デフォルトの名無しさん
17/10/20 14:35:43.81 QjnViytCM.net
>>339
Roslyn関連のライブラリって構文解析してくれるんじゃないの?

348:デフォルトの名無しさん
17/10/20 14:41:43.45 QjnViytCM.net
>>340
それ、初心者スレで聞く内容かw.

349:デフォルトの名無しさん
17/10/20 14:53:31.10 kQTzxkDwa.net
>>341
おお!
行けそう!行けそう!
ありがとうございました!
まさかこんなものが出てるとは

350:デフォルトの名無しさん
17/10/20 15:41:21.62 QjnViytCM.net
>>343
解決かw

351:デフォルトの名無しさん
17/10/20 15:52:51.14 kQTzxkDwa.net
>>344
いや、まだわかんない

352:デフォルトの名無しさん
17/10/20 16:00:55.66 +VbZElimd.net
偉そうなこと言っときながらRoslynも知らないとはwww

353:デフォルトの名無しさん
17/10/20 16:06:52.51 QjnViytCM.net
>>346
c#の追っかけしてるファンじゃないと知らんわ

354:デフォルトの名無しさん
17/10/20 16:11:32.61 kQTzxkDwa.net
>>347
少なくとも追加されてから
c# 構文解析
でググり続けた俺にはかすりもしなかったねw

355:デフォルトの名無しさん
17/10/20 16:26:31.24 QjnViytCM.net
>>348
グーグル先生の5番目のご神託にでるが

356:デフォルトの名無しさん
17/10/20 16:28:33.99 3KJGg1dF6.net
VSで使われてるコンパイラだろ?そんなの俺でも知っとるわ。

357:デフォルトの名無しさん
17/10/20 16:44:44.00 kQTzxkDwa.net
>>349
うん、普通に出るね
多分1年前ぐらいにググって
無かったから2~3番目ぐらい見て
華麗にスルーしてたんでは無いかと

358:デフォルトの名無しさん
17/10/20 17:00:35.99 dPxZWMqc0.net
構文解析に興味を持つようなやつがRoslynすら知らないとは

359:デフォルトの名無しさん
17/10/20 17:01:23.38 gEmQ2eLHd.net
>>347
じゃあ構文解析なんて無理だから諦めた方がいいよ

360:デフォルトの名無しさん
17/10/20 17:04:37.96 MLgxPClpa.net
初心者スレでロズリン知らないのと叩く滑稽さ

361:デフォルトの名無しさん
17/10/20 17:05:34.41 umJD7f7O0.net
ヒストリカルに字句解析と構文解析が何故分かれているのか疑問に感じるバカは多いと思う。
俺もバカの一員として分けなくてもエエやん?と思い実際に作ってみたら、何故分かれているのか体感したという。

362:デフォルトの名無しさん
17/10/20 17:08:58.31 QjnViytCM.net
>>353
なんでオレに言うかw

363:デフォルトの名無しさん
17/10/20 17:10:01.08 umJD7f7O0.net
忙しい現代社会。
すぐレスしてくれそうだからではないか。

364:デフォルトの名無しさん
17/10/20 17:19:16.72 kQTzxkDwa.net
>>352
実際あんまり興味無い
こんな言語マニアしか食いつかないようなもんで
人生費やすのはゴメンだった
だからアイディアはあったけど
構文木作成部は保留にしてお蔵入り状態にしてた

365:デフォルトの名無しさん
17/10/20 18:30:23.02 3KJGg1dF6.net
なに作ってるの?

366:デフォルトの名無しさん
17/10/20 18:44:07.33 iVvWVDwWa.net
>>359
処理フロー作成ツール

367:デフォルトの名無しさん
17/10/20 19:39:37.53 XWAUmrTl0.net
>>360
Excel方眼紙に出力してくれ。
低レベルのSIerに納品する資料に使える。
スマン、低レベルはSIerのデフォだったかwww

368:デフォルトの名無しさん
17/10/20 19:49:32.49 BrAKv0lza.net
>>361
それも考えたんだけど
自宅にexcelってないんだよね
なんで文字と図形と線を出力できるような簡単なベクトルデータってないんけ?
と思ったら笑っちゃうぐらい無くてさ
とりあえず画像データでええかー
的な
機械的に処理フローを
描画するc#のコードを吐き出して
画像で保存

369:デフォルトの名無しさん
17/10/20 19:52:26.05 XWAUmrTl0.net
>>362
XPS, SVG, PostScript知らんのんけ?

370:デフォルトの名無しさん
17/10/20 19:55:44.74 HK8N625v0.net
まあC#でやるならXPSでいいな

371:デフォルトの名無しさん
17/10/20 20:01:09.91 BrAKv0lza.net
>>363
だから編集できねぇじゃんそれじゃ
画像と変わんないよ
個人でwordとかフォトショとかイラレとか持ってるなら別ですが

372:デフォルトの名無しさん
17/10/20 20:02:30.25 VNKX5uBs0.net
ここは初心者の質問スレです
雑談したいのなら他へ行ってください

373:デフォルトの名無しさん
17/10/20 20:05:52.61 XWAUmrTl0.net
>>365
じゃ、Open XML SDKを使ってExcel出力すれば?
Open XMLの仕様書ってpdfで6000ページほどあるが君なら楽勝たろ。

374:デフォルトの名無しさん
17/10/20 20:05:56.74 BrAKv0lza.net
じゃあ、最後、svgならincscapeでいけんだね
こいつ日本語扱えた覚えがないからスルーしてたけど
時代は変わったのかとりあえずフォーマット知らねーけどやってみるわ

375:デフォルトの名無しさん
17/10/20 20:07:44.87 umJD7f7O0.net
末尾に#どう思いますか?という行を付け加えれば質問風に雑談できるのでは?

376:デフォルトの名無しさん
17/10/20 20:14:20.09 XWAUmrTl0.net
>>366
質問してこの流れを変えればええのだ

377:デフォルトの名無しさん
17/10/20 20:19:36.38 QPjbx7Pr0.net
おまえ、なんかウザいから氏んでくれ。

378:デフォルトの名無しさん
17/10/20 20:23:46.20 bKuGhauuM.net
>>371
お前が死ねば?
相対的には同じだw

379:デフォルトの名無しさん
17/10/20 20:35:27.08 36f4Sv1zM.net
>>362
Windows なら Enhanced Meta File でいいんじゃね?
c# emf 作成
とかでググれば作り方はわかると思う

380:デフォルトの名無しさん
17/10/20 20:51:02.95 vd2jZWHS0.net
いつまでスレチ続けるんだクズども

381:デフォルトの名無しさん
17/10/20 20:56:22.63 BrAKv0lza.net
>>373
ありがとう
svgと合わせて調べてみます
>>374
なんか話したい話題があるなら質問しろ

382:デフォルトの名無しさん
17/10/20 21:08:47.27 QPjbx7Pr0.net
>>372
slip見て自演バレバレ

383:デフォルトの名無しさん
17/10/20 22:46:03.30 h+e+zHrd0.net
>>375
御託はいいから新小岩駅に行ってNEXに飛び込んで死ね

384:デフォルトの名無しさん
17/10/21 04:38:43.15 J3/Oov/oa.net
>>377
スレ違いどころか
板すらあってないじゃんw

385:デフォルトの名無しさん
17/10/23 09:42:48.16 iZTfc9Gp0.net
プロパティとメソッドの使い分けってどうするのです?
例えばクラスが持ってるリストの件数を返すCountとか、ある項目が存在するかどうかを返すIsItemExistとか
こういうのはプロパティかメソッドかどっちで実装するのです?

386:デフォルトの名無しさん
17/10/23 09:58:16.86 WjGqLCS1M.net
>>379
クラスの内部状態を返すのならプロパティでしょ。

387:デフォルトの名無しさん
17/10/23 10:13:47.78 zzY32qse0.net
DIでInjectしたServiceは、フィールドに保持する?それともプロパティに保持する?
どっちも見かけるから、皆さんどういう風に使い分けてるかなと

388:デフォルトの名無しさん
17/10/23 10:47:51.67 UXX8AsCPa.net
困ったら全部getなんちゃらでメソッドにしちゃえばいいじゃん(適当)
Isなんちゃらはプロパティでね、大抵

389:デフォルトの名無しさん
17/10/23 10:50:57.14 ebDYa8pU0.net
>>381
オレはパブリックはプロバティーでプライベートはフィールドってのが軸だな
勿論例外もある
つまりコンストラクター使ってDIならフィールドかな

390:デフォルトの名無しさん
17/10/23 10:57:06.62 WjGqLCS1M.net
MSが自動実装プロパティなんて作るから

391:デフォルトの名無しさん
17/10/23 11:15:16.91 UZkZRiTF0.net
IsItemExistって何だよ…噓だろ…

392:デフォルトの名無しさん
17/10/23 11:33:35.62 Y7RvEsYB


393:d.net



394:デフォルトの名無しさん
17/10/23 12:29:52.29 UXX8AsCPa.net
>>385
確かにw
Isなんちゃらはプロパティ、なんちゃらExistはメソッドってイメージがあるな

395:デフォルトの名無しさん
17/10/23 12:42:32.30 UiLH3I11M.net
>>387
動詞が2つ有るって言いたいのだろう。

396:デフォルトの名無しさん
17/10/23 13:06:11.13 UXX8AsCPa.net
>>388
ごめん
確かに、はそれが変だなってことにかかってて、そのあとは俺が持ってるイメージの話
分かりにくかったな

397:デフォルトの名無しさん
17/10/23 13:11:49.28 ZgE4a7c5a.net
>>389
よこからついでに突っ込むけど、メソッドでexistって動詞を使うこともまずないと思うよ
存在しろって言われても困るでしょうw
~Exitsというプロパティなら普通にある

398:デフォルトの名無しさん
17/10/23 13:17:00.15 JL5vrncla.net
なんか突っ込みどころが多すぎて
登場人物全部抜けてる気がする
File.Exists メソッド
String.IsNullOrEmpty メソッド

399:デフォルトの名無しさん
17/10/23 13:23:02.70 ZgE4a7c5a.net
>>391
どっちも静的メソッドだよねそれ
どっちも機能的には明らかにプロパティじゃないのにプロパティ風の名前になってるのは
妥協の産物でしょう。

400:デフォルトの名無しさん
17/10/23 14:52:16.08 Hm5Sp4K20.net
>>379
原則状態はプロパティ、動作がメソッド
ただし、利用者はプロパティはループ毎にキャッシュせず読んでもいいくらいに軽い処理だと考える場合があるので、時間がかかるならメソッドにしたほうがよいかも

401:デフォルトの名無しさん
17/10/23 19:30:33.33 TFf0LeB2M.net
プロパティはもちろん取得系のメソッドも何度も呼んでいいよ
実測した結果、遅くなってると分かったらキャッシュを導入する
パフォーマンスだけのために説明変数を追加するのはNG

402:デフォルトの名無しさん
17/10/23 19:34:24.82 HemzWECS0.net
説明変数とは

403:デフォルトの名無しさん
17/10/23 19:50:51.54 +URhnDB80.net
聞きかじりで理解した気になってるからこういう

404:デフォルトの名無しさん
17/10/23 20:07:22.56 IDuIqN9Mp.net
>>396
初心者スレでマウントとりたいだけのバカは邪魔なのでわんくまにでも行ってどうぞ

405:デフォルトの名無しさん
17/10/23 20:10:22.51 TFf0LeB2M.net
>>395
var cachedUnko = GetBigUnko();
こういうやつ

406:デフォルトの名無しさん
17/10/23 20:35:02.50 y4/LHG7i0.net
- IsItemExitsはHasItemに
- Existsは引数を取るので基本メソッド
- IsNull、IsEmpty, HasValue等の問い合わせ系は悩ましいので選択基準を規約で決めておく
問い合わせ系については引数不要で十分チープなら
.NET Frameworkでは基本的にプロパティが使われている
ただメソッドにしないといけないケースも少なからずあるので
個人的にはメソッドに統一しといたほうがいいと思ってる
URLリンク(msdn.microsoft.com)(v=vs.100).aspx

407:デフォルトの名無しさん
17/10/23 20:35:25.45 VIpRDakhM.net
回帰分析とかで説明変数って聞くけど他じゃあまり聞かない

408:デフォルトの名無しさん
17/10/23 20:39:21.38 VIpRDakhM.net
HasItemってどんなときつかうんだろうか
もしそれがコレクションならContain使うよ
引数ないならプロパティって暴論あるけど

409:デフォルトの名無しさん
17/10/23 20:41:00.92 y4/LHG7i0.net
リファクタリングやリーダブルコードにも説明変数って出てくるぞ

410:デフォルトの名無しさん
17/10/23 20:41:10.77 SUJ4sB5na.net
それはないと思うよw
説明変数なんて割とよく聞く言葉だと思う。
まあどうでもいいので終了。

411:デフォルトの名無しさん
17/10/23 20:41:38.26 TFf0LeB2M.net
bool HasItems => _items.Count() >= 0;

412:デフォルトの名無しさん
17/10/23 20:41:43.62 VIpRDakhM.net
>>402
なにか教えてほしい

413:デフォルトの名無しさん
17/10/23 20:43:00.01 y4/LHG7i0.net
>>401
if (treasureBox.HasItem) {…}

414:デフォルトの名無しさん
17/10/23 20:44:11.93 y4/LHG7i0.net
>>405
>>398



416:デフォルトの名無しさん
17/10/23 20:44:50.20 VIpRDakhM.net
>>407
意味が分からないので教えてほしい

417:デフォルトの名無しさん
17/10/23 20:45:10.88 TFf0LeB2M.net
>>408
おまじないみたいなもの

418:デフォルトの名無しさん
17/10/23 20:48:10.90 VIpRDakhM.net
仕事で統計の説明変数という言葉を使うので
全然別の定義の説明変数という言葉があるなら知っておきたい

419:デフォルトの名無しさん
17/10/23 20:48:28.25 ANMjmVZtM.net
>>406
オブジェクト指向の原理主義的には典型的なアンチパターンだよそれ
空なら何もしないとかアイテムが入ってればプレイヤーのアイテム袋に入れるとかは宝箱のOpenメソッドの中に実装するべき

420:デフォルトの名無しさん
17/10/23 20:50:20.23 SUJ4sB5na.net
>>408
要するに可読性を上げるためだけに使用される一時変数のこと
数学だったら「ここで~をxとおくと」みたいなあれ
var count = 3;
var sum = a + b + c;
return sum/count;

421:デフォルトの名無しさん
17/10/23 20:56:10.39 ed977JSR0.net
>>410
「プログラミング 説明変数」でググってみては?

422:デフォルトの名無しさん
17/10/23 20:58:45.70 y4/LHG7i0.net
>>411
うん、そこは論点じゃないから
IsItemExistな名前はHasItemに変えられるよってこと
>>401はItemという名前からコレクションの要素を連想してるみたいだから
そうじゃないのをイメージしやすい例を出したの
HasSomethingでもいいよ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch