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でもいいよ
423:デフォルトの名無しさん
17/10/23 22:41:58.44 Hm5Sp4K20.net
>>394
ポリモーフイズムの関係で実測があてにならん状況も多いんだよね
Countは実装依存でo(1)だったりo(n)だったり、データベース呼び出しが走る可能さえある
それに対してLengthプロパティはo(1)でインライン展開されるだろうと高をくくってもだいたい問題ない
ネックになればそのときに測定
424:デフォルトの名無しさん
17/10/23 23:09:35.17 TFf0LeB2M.net
>>415
ポリモー関係ないじゃん
もしかしてストップウォッチ派?
425:デフォルトの名無しさん
17/10/23 23:39:27.16 y4/LHG7i0.net
>>415
CountプロパティをO(n)で実装するのは良くない
ガイドラインに反してる
CollectionのCountはプロパティで
EnumerableのCountはメソッドになってる理由と同じ
426:デフォルトの名無しさん
17/10/24 00:01:28.06 7XcVEnvtM.net
>>413
今ググったらプログラミングで説明変数って使い方をしてるのはごく一部だという印象
一般的に使われてない
427:デフォルトの名無しさん
17/10/24 00:09:05.80 7XcVEnvtM.net
統計の説明変数はexplanatory variable
リーダブルコードの人がExplaining Variableという名前を付けて書籍に残した
日本語訳するときに適当な言葉が思いつかなかったので説明変数にした
翻訳者に学がなかった
428:デフォルトの名無しさん
17/10/24 00:14:38.95 CMLwKKPKa.net
>>419
酷い言い掛かりw
違う分野でダブってる専門用語なんていくらでもあるだろうに
そもそも変数だって関数だって数学からの借り物だが全然別の意味で使ってる
429:デフォルトの名無しさん
17/10/24 00:22:45.84 7XcVEnvtM.net
いやそーいうことじゃなくて日本では同じ表現だけど向こうじゃ別だから厄介
国内でも説明変数で通じるかどうか
430:デフォルトの名無しさん
17/10/24 00:41:38.88 lU4ejLPG0.net
もういいよその話
431:デフォルトの名無しさん
17/10/24 02:24:33.77 2soFq68da.net
>>421
フツーに考えてexplanatory とexplaining が別の言葉だと思えませんけどw
現に"explanatory variable" "explaining variable"でググると結構混用しちゃってる例が見つかるよ
432:デフォルトの名無しさん
17/10/24 02:34:47.38 2soFq68da.net
ついでに、思いっきり脱線で申し訳ないけど、前から疑問に思ってたけど
プログラミングの世界の分割統治はdivide and conquer、
古代ローマの植民地支配戦略の分割統治はdivide and ruleというが、
これもたぶんどっちでも通じると思うんだよね
433:デフォルトの名無しさん
17/10/24 02:38:09.67 TDbe+Bw3r.net
自分の知らない言葉が出てきた時に
その人の性格が現れるのかもしれないねw
434:デフォルトの名無しさん
17/10/24 02:43:26.14 lLS52e6w0.net
知ったかに喋る権利を与えるなよ
435:デフォルトの名無しさん
17/10/24 02:46:51.17 lLS52e6w0.net
396の時点で
馬鹿が一丁前に発狂してしばらくは荒れるんやろなと思っとったが
やはりだろう
まったくクソボケは期待を裏切らないな
436:デフォルトの名無しさん
17/10/24 06:55:50.50 hsifRvdf0.net
IList<T>の中身をソートしたいのですがどうすればいいでしょうか?
SortメソッドはListクラスにあってIList<T>インターフェースにはありません。
LINQのOrderByは元のコレクションの中身をソートしませんよね??
IList<T>の中身を直接入れ替えたいのです。
437:デフォルトの名無しさん
17/10/24 07:35:45.56 A9t42mE4M.net
>>428
ない
自分でクイックソート実装しろ
438:デフォルトの名無しさん
17/10/24 07:53:32.68 cp08Hl/JM.net
>>428
var sorted = ilistobj.OrderBy(...).ToArray();
ilistobj.Clear();
foreach (var item in sorted)
ilistobj.Add(item);
439:デフォルトの名無しさん
17/10/24 09:34:12.61 Y6LvzYD50.net
入力フォーム画面から入力されたデータを集めてDBなり別の出力クラスに渡すプログラムを.NET2.0の頃に作った時は、入力フォームとデータクラスの関連付けにBindingとか使ってた記憶あるんだけど、今もその辺は変わってないの?
440:デフォルトの名無しさん
17/10/24 09:46:53.52 pwJ57chea.net
使いたければ使えばいいし
使わなくても別に動くし
441:デフォルトの名無しさん
17/10/24 09:49:37.38 eDzdiXecM.net
>>431
バインドはもっと進化してる
442:デフォルトの名無しさん
17/10/24 11:03:06.97 yNkD48rCM.net
WinFormなら.NET 2.0のあとで機能追加されたのってChartぐらいじゃないっけ
BindingSourceは.NET 2.0でもう入ってたよな
443:デフォルトの名無しさん
17/10/24 14:16:13.31 TDbe+Bw3r.net
中身をソートする発想は非常にセンスがよろしくない
444:デフォルトの名無しさん
17/10/24 17:02:08.12 hsifRvdf0.net
>>429
>>430
445:デフォルトの名無しさん
17/10/24 17:19:30.78 VubGQCWPM.net
>>430
ToArray→Array.Sort→書き戻し
のほうが速いはず
446:デフォルトの名無しさん
17/10/24 21:04:22.55 Y6LvzYD50.net
>>433-434
Web漁ってもWPFネタばかりだったわ・・・
447:デフォルトの名無しさん
17/10/24 21:51:38.33 NHCjs86oa.net
Formのバインディングはずいぶん前だけどわんくまの人が結構まとまった記事書いてたはず
コードはVBだと思ったが
448:デフォルトの名無しさん
17/10/24 21:55:17.75 s18UOlL+a.net
>>439
intの変数とテキストボックスをバインディングして
実行時にテキストボックスに「うんこ」って入れると死ぬじゃん
普通どうやって作るの?
449:デフォルトの名無しさん
17/10/24 22:14:43.68 lLS52e6w0.net
脳みそウンコはママにオムツでもしてもらえ
450:デフォルトの名無しさん
17/10/24 22:39:01.84 lU4ejLPG0.net
>>440
普通にフォームのTextプロパティと同じ型にするんだろ
451:デフォルトの名無しさん
17/10/24 23:18:41.89 kX+BI6hp0.net
前から変なレスしているアウアウオーがいる
アウアウオー Sae2-jbpI
これNGしとけ
452:デフォルトの名無しさん
17/10/25 00:11:21.67 vZNm40SOa.net
>>442
でもさ、入れる値は数値なのに一旦文字列にしないとじゃん?
453:デフォルトの名無しさん
17/10/25 00:36:46.65 WIc18nYy0.net
>>444
文字列にしないと Text プロパティに値を設定できないじゃん?
454:デフォルトの名無しさん
17/10/25 00:37:56.23 Q2yRg5qV0.net
テキストボックス�
455:フコントロール側でバリデーションしろよ
456:デフォルトの名無しさん
17/10/25 00:41:23.45 7bqawKXsa.net
>>445
数値が欲しくても入力チェックの必要があるときは一旦文字列でもてって言ってる?
457:デフォルトの名無しさん
17/10/25 02:32:41.64 WIc18nYy0.net
>>447
Text プロパティは文字列なんだからバインド云々以前に一旦文字列にするのは当たり前
(どこかで 数値 <--> 文字列 の変換が必要)
って意味で言った
でも ErrorProvider 使えば数値型プロパティでいい感じにバインドできるんじゃないかと今思った
458:デフォルトの名無しさん
17/10/25 06:04:30.07 6FPeEgMNM.net
list<list<string>> hoge
このようなデータ構造のものをdatagridviewに表示させたいのですが、datasorceにhogeをセットすると入れ子のlistのcount数が表示され、肝心の中身が表示されません。
解決方法おしえてください
459:デフォルトの名無しさん
17/10/25 08:28:58.19 M5t9KVaY0.net
つか、数値入力はカスタムコントロールかビヘイビア作って対応しろや
Valueプロバティーなど作ってintやdoubleと直接バインド出来る
460:デフォルトの名無しさん
17/10/25 09:36:00.51 +tJOBv1wM.net
NumericUpDownさんの立つ瀬がない
>>449
適当なクラス作ってList<string>をそっちに移し替えるのが一番楽だよ
461:デフォルトの名無しさん
17/10/25 09:38:13.76 lkuOTBBm0.net
>>451
WPFにそれ無くて愕然としたわ
Nugetから拾ってねってことなんだろうけど、流石にForm時代のコントロールは用意しとけよと
462:デフォルトの名無しさん
17/10/25 12:10:32.13 5tcC17L/0.net
WPFを好きになれない
463:デフォルトの名無しさん
17/10/25 12:25:41.50 Lk4Aq805H.net
今更好きになる必要はない
死んだプラットフォームだよ
464:デフォルトの名無しさん
17/10/25 14:53:18.95 NEHk3FBt0.net
Formを拡張してくれてもいいのに、
新機能はWPFを使えとかだからなぁ
465:デフォルトの名無しさん
17/10/25 17:48:18.55 QxbqfPpga.net
明らかにビジネスニーズを外してると思うんだが
やっぱり海外でも同じなんだろうなって思う
466:デフォルトの名無しさん
17/10/25 18:09:40.11 hcA39hyC0.net
質問に関係ない雑談は他でやれ
>>449
Listを直接表示する機能はないのでDataTableにしてからDataSourceとして代入してください
MSDNでもそうなっている
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
467:デフォルトの名無しさん
17/10/25 18:14:21.08 Ho4Id2OA0.net
仕切り屋ウゼエ
468:デフォルトの名無しさん
17/10/25 18:48:44.36 BTS+nNEQM.net
>>457
class作る場合はcolumn数固定だし、この方法が良さそうです。
ありがとう。
469:デフォルトの名無しさん
17/10/25 19:51:15.93 NJvUwgFjr.net
お年寄りには無理かもねww
470:デフォルトの名無しさん
17/10/26 21:25:01.19 wrijmML40.net
>>460
何歳からお年寄り?
471:デフォルトの名無しさん
17/10/26 21:35:06.39 axdI+VLP0.net
「最近の若いもんは」とか言い出したら年寄り
472:デフォルトの名無しさん
17/10/26 23:11:07.62 32PzTYul6.net
多次元配列について
二つの変数i,jを代入したときに三次元ベクトルの値が帰ってくるような多次元配列の書き方を教えてほしいです。
473:デフォルトの名無しさん
17/10/26 23:16:22.52 ZYb1HzvY0.net
宿題はNG
474:デフォルトの名無しさん
17/10/26 23:26:46.05 32PzTYul6.net
大学の研究で使いたいですorz
どこのサイト調べたら乗ってますか、、、
475:デフォルトの名無しさん
17/10/26 23:28:13.23 /JkeP1u6a.net
>>463
たぶん俺だけじゃないと思うけど、何言ってるのか全然わからないよw
476:デフォルトの名無しさん
17/10/26 23:32:24.39 gKJtyuf20.net
>>465
�
477:v件を切り分けよう。そうしたら自分でググれる >>463の内容だとC#以前に日本語として通じない
478:デフォルトの名無しさん
17/10/26 23:34:06.91 32PzTYul6.net
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
??? = Vector3; //Vector3はiとjで定まるベクトル
}
この???に入る関数の正しい形がわからなくてずっとエラー吐き出してます
479:デフォルトの名無しさん
17/10/26 23:35:43.85 LSWABSRs0.net
f(a, b) -> (a, b, a・b)
これを配列でやりたいんかねえ
無茶言うな
480:デフォルトの名無しさん
17/10/26 23:36:15.67 LSWABSRs0.net
わー全然違った
481:デフォルトの名無しさん
17/10/26 23:37:53.64 Fjma9sq90.net
>>468
多次元配列ならarray[i, j]
ジャグ配列ならarray[i][j]
482:デフォルトの名無しさん
17/10/26 23:40:05.56 gKJtyuf20.net
>>468
Vector3ってx,y,zがいるよね。そこでi,jから算出したいって言われてもわからないよ
クラスまたは構造体にそれを格納したいの?
>>471のように配列にしたいの?
483:デフォルトの名無しさん
17/10/26 23:41:13.22 Fjma9sq90.net
var array[,]=new ベクトル型の名前[100, 200];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
array[i, j] = ベクトルオブジェクト;
}
}
484:デフォルトの名無しさん
17/10/26 23:41:54.41 32PzTYul6.net
>>471
ありがとうございます!
485:デフォルトの名無しさん
17/10/26 23:43:25.01 Fjma9sq90.net
>>473は間違えてCみたいに書いちゃった
var array=new ベクトル型の名前[100, 200];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
array[i, j] = ベクトルオブジェクト;
}
}
486:デフォルトの名無しさん
17/10/26 23:43:59.46 32PzTYul6.net
ベクトルの各成分は既存のプログラムで決まっています
説明不足ですみません
487:デフォルトの名無しさん
17/10/26 23:51:07.89 32PzTYul6.net
ダメだ、、
やっぱりエラーはでないけど描画に意図しないものがでます。
UNITYとリープモーションを使っているのですが、以下の一文が入るとおかしくなってしまいます。
boneText.GetComponent<BoneText>().bonL[i][j] = sphere.position;
この一文でsphere.positionの値は変わらないですよね、、
488:デフォルトの名無しさん
17/10/27 00:41:11.00 f8YP8m/jM.net
>>477
知恵袋で質問してる人?
489:デフォルトの名無しさん
17/10/27 00:49:37.03 1uP28vOGa.net
よくこんな何言ってるのか訳分からん質問に回答できるな
エスパーなのかw
490:デフォルトの名無しさん
17/10/27 00:53:50.14 f8YP8m/jM.net
大学行って周りに聞けってレベル
491:デフォルトの名無しさん
17/10/27 00:57:10.14 pAogLeJi0.net
エラー見ろよ
492:デフォルトの名無しさん
17/10/27 01:02:08.49 1uP28vOGa.net
つーかこれ日本のIT業界の縮図を見る思いだよw
客側は仕様を決める能力がない。
受ける側も客が欲しい物を聞き出す能力がない。
だからああでもないこうでもないと不毛なやり取りが延々に続く。
どちらの側に「まず最初に問題を明確にしよう」って言える奴がいれば効率は何倍にもなるのに
それが出来ない。
493:デフォルトの名無しさん
17/10/27 02:16:34.70 Xsu5cNz50.net
visualstudioと参考書を使ってC#の簡単なプログラムを作りながら学んでいるのですが
ちょっと難しいプログラムを作ろうとネットにあるサンプルコードをコピペしても
アセンブリ参照を確認してくださいの連発でうまく動きません
参考書だとイベントハンドラの作り方とかがひとつひとつ載っているのですが
ネット上のサンプルコードだとそういうのが省略されていることが多いです
やはり経験不足なのでしょうか?地道に簡単なものをたくさん作っていった方がいいのでしょうか?
コピペしただけではプログラムが作れないというのが難しいです
494:デフォルトの名無しさん
17/10/27 02:25:22.36 WVUdRiE90.net
>アセンブリ参照を確認してくださいの連発でうまく動きません
それで悩んでる様だと、全く基礎が出来ていないと思われるので
ちゃんと基礎から学習した方が良い
495:デフォルトの名無しさん
17/10/27 04:49:12.54 mZaDwhR60.net
「c# アセンブリ参照を確認」で検索しても探せない
一言一句、正確なエラーメッセージで検索すべき。
エラーメッセージを少しでも、変えたらダメ!
検索できなくなるから
「c# アセンブリ参照」で検索!
496:デフォルトの名無しさん
17/10/27 06:00:59.69 CkoVgn7Ba.net
foamアプリケーションを使ってるのですが、例えば配列に格納されたデータをプリンターで印刷したいって時はどうしたらいいのでしょうか?
497:デフォルトの名無しさん
17/10/27 06:38:45.76 nY5Kn9TXa.net
>>486
URLリンク(dobon.net)
498:デフォルトの名無しさん
17/10/27 08:09:29.44 EVxrWE8wr.net
>>461
年齢低くても年寄みたいな人多いよねw
499:デフォルトの名無しさん
17/10/27 09:04:00.13 EuwrSOCJM.net
>>488
三浦雄一郎なんて85歳だけど未だ山に登ってスキーの滑降に挑戦すると言ってる。
日本のit業界でそんな人居るか?
500:デフォルトの名無しさん
17/10/27 10:34:42.22 HHV5h0f26.net
>>486
>>487のページを参考に
pd_PrintPageメソッド内の
if (printingPosition == 0)
{
printingText = printingText.Replace("\r\n", "\n");
printingText = printingText.Replace("\r", "\n");
}
を
if (printingPosition == 0)
{
printingText = string.Join(",", sringArray);
}
に置き換える。(stringArrayは印刷したい文字列配列)
501:デフォルトの名無しさん
17/10/27 10:35:39.48 HHV5h0f26.net
>>486
>>490はミスった。
>>487のページを参考に
pd_PrintPageメソッド内の
if (printingPosition == 0)
{
printingText = printingText.Replace("\r\n", "\n");
printingText = printingText.Replace("\r", "\n");
}
を、
if (printingPosition == 0)
{
printingText = string.Join("\n", sringArray);
}
に置き換える。(stringArrayは印刷したい文字列配列)
502:デフォルトの名無しさん
17/10/27 10:50:10.66 SMci25s2r.net
言語仕様を軽く調べて良さそげだったのでC#使ってみたいんだけど
既に簡単なプログラムや重い処理はC/C++
計算系はscilab、DNNはPython、サーバ系はnode.jsてな感じで使い分けしてるので
どういう用途で使うとgoodなのか分からない
C#て何に使える?Unity?
503:デフォルトの名無しさん
17/10/27 10:57:55.98 DFrdiJ4Ra.net
その簡単なプログラムというのをc#に持ってくるのがいいんではないかな
あとそこで上がってないのはPC上のGUI使ったものだけど
それには向いてる
window向け
.net framework向け
VS使って開発したい人向け
504:デフォルトの名無しさん
17/10/27 11:01:00.18 CkoVgn7Ba.net
>>487>>491
ありがとうございます!参考に頑張ってみます
505:デフォルトの名無しさん
17/10/27 11:06:36.02 DFrdiJ4Ra.net
もともとGUIを実装するのが難しい環境で育った人達はGUIを毛嫌いするけど
それはクソだった環境を恨むべきでGUIは無罪
506:デフォルトの名無しさん
17/10/27 11:14:51.14 WDMSp6pvM.net
>>492
Windowsのアプリケーション開発に使える。
c#のIDEほどユーザーに至れり尽くせりなのは無いと思う。
507:デフォルトの名無しさん
17/10/27 11:16:26.26 HHV5h0f26.net
>>492
一般のウィンドウ付きGUIソフトウェアの開発はC#+VS一択
508:デフォルトの名無しさん
17/10/27 11:18:42.72 SMci25s2r.net
>>493,496,497
GUIプログラムか……
C++WINAPIでのトラウマから今の所HTML+JSで作る事が多い
主にFormとWPFの2つ方法があるらしいけど(ストアアプリは作らないのでUWPは除外)
WPF資料少ないし流行ってないし仕様が難解なのだけど
それでもこっち使うメリットある?
509:デフォルトの名無しさん
17/10/27 11:46:58.51 WDMSp6pvM.net
>>498
WPFは男前なUIが比較的簡単に作れる。
html知ってりゃ画面デザインのハードルは低い。
510:デフォルトの名無しさん
17/10/27 11:47:53.01 DFrdiJ4Ra.net
>>498
両方
511:やればいい 最初はformsで次にWPF 両方使えたらいろいろ面白い
512:デフォルトの名無しさん
17/10/27 11:50:25.84 HHV5h0f26.net
WPFむずくね?
513:デフォルトの名無しさん
17/10/27 11:54:13.46 WDMSp6pvM.net
>>501
Electronよりは簡単でしょ
514:デフォルトの名無しさん
17/10/27 11:54:19.55 DFrdiJ4Ra.net
>>501
難しい
学ばなければいけない新概念が多すぎる
いついつまでに作らないといけないとか
こういったものを確実に実装したいなど
ゴールが決まってる場合選ぶべきじゃない
特に適切な学習テキストがないのが致命的
手間や時間をかけて徐々に学習してステップアップしていける人向け
515:デフォルトの名無しさん
17/10/27 11:54:44.78 HHV5h0f26.net
>>502
Electronの方が簡単だと思ったけど
516:デフォルトの名無しさん
17/10/27 12:07:59.78 viJc7lmzd.net
>>504
求める機能と開発者のバックグラウンドで様々
517:デフォルトの名無しさん
17/10/27 12:12:08.77 SMci25s2r.net
男前なUIは魅力的だけどやはり難しいのか…
WPF勉強しつつ何か作らなきゃいけない時はForms使うって感じでやってみます
518:デフォルトの名無しさん
17/10/27 12:27:22.92 WDMSp6pvM.net
>>504
入門レベル以上のモノを作ろうとするとハードル高くないか?
519:デフォルトの名無しさん
17/10/27 12:40:38.27 2zDM9gUL0.net
伸びてるときは読まなくていい法則
520:デフォルトの名無しさん
17/10/27 12:43:28.55 1mFeKpWgM.net
>>508
そんな事を言いながら読んでレスまでしていると
521:デフォルトの名無しさん
17/10/27 12:50:31.66 37wzv4nSM.net
>>503
学習コストの低いプログラム環境なんて飯の種にはならない。それ以前にいまどき学習コストの低いものなんて無いし。
522:デフォルトの名無しさん
17/10/27 13:06:19.09 I66AtiXV0.net
wpfはMaterial Design In XAML Toolkitなんか使えば、単にコントロール並べるだけでも格好いいの出来る
URLリンク(github.com)
並べるだけならGridの仕組み覚えれば何とかなりそうだし、言うほど敷居が高いわけじゃない
523:デフォルトの名無しさん
17/10/27 13:06:50.40 cQIvF6YS0.net
【1位は3年連続Scalaの424万円!】2017年版プログラミング言語別給与ランキング
URLリンク(hrog.net)
524:デフォルトの名無しさん
17/10/27 13:12:47.78 SMci25s2r.net
>>511
これ凄いな
MVVMの真髄を見た
525:デフォルトの名無しさん
17/10/27 13:14:13.55 xbgVr3k+6.net
WPFはバインドが難しい
526:デフォルトの名無しさん
17/10/27 13:16:10.91 DFrdiJ4Ra.net
MVVMと関係ないだろw
FCUで鳴り物入りで始まった新デザインは放置されてるよな
527:デフォルトの名無しさん
17/10/27 14:18:43.50 I66AtiXV0.net
>>514
先入観持たなければ、バインド自体は半日もネットで勉強したら理解できる範囲
難しいのはスタイルとかアニメーションとかビジュアルステイトマネージャとかビヘイビアあたり
528:デフォルトの名無しさん
17/10/27 14:43:10.59 HHV5h0f26.net
リストの項目を複数選択してそれぞれの属性値を使って処理しようとしてもWPFだと難しい
529:デフォルトの名無しさん
17/10/27 14:45:18.40 HHV5h0f26.net
単純に1つのアイテムをクリックした時にその要素のデータに対応した処理をしようとしてもなかなか出来なかった気がする
530:デフォルトの名無しさん
17/10/27 15:20:00.66 I66AtiXV0.net
確かにListBoxとListBoxItemと実態データの関係はわかりづらいし、それをしっかり説明している文書も見たこと無いな
あと、ListBoxを理解するのに必須のItemContainorStyleとItemTemplateの解説とか
ノウハウだけはいくらでもネットに転がっているから、最初は単純にコピペから始めるしか無いかもね
531:デフォルトの名無しさん
17/10/27 16:01:30.28 EVxrWE8wr.net
その辺は、"WPF ItemsControl"辺りでGoogle先生の御神託を受けると
なるほど!なサイトが啓示される
532:デフォルトの名無しさん
17/10/27 16:02:39.61 EVxrWE8wr.net
WPFは簡単とは言わないが
慣れると「楽」ではある
533:デフォルトの名無しさん
17/10/27 16:47:05.61 /3yfU/y80.net
>>489
歳とともに新しい概念を吸収する能力はどうしても衰えるからな
日本だけに限った話ではない
日本だと竹内郁雄あたりが一番の古株
534:デフォルトの名無しさん
17/10/27 17:11:12.50 Xsu5cNz50.net
以下のサイトを参考にAccord.NETで画像判定を行いたいのですが
URLリンク(www.ipentec.com)
コピペだけでは上手く行かなくて悩んでいます。
NuGetでAccord.NET frameworkは導入済
フォーム名をFormMainにして
デザイナからボタン3つのイベントハンドラを作って
残りはコピペしたのですが赤線エラーが連発です。
何が足りないんでしょうか?
535:デフォルトの名無しさん
17/10/27 17:14:31.76 pAogLeJi0.net
見た目ではわからんない変な見えない文字でもあるんじゃね?
536:デフォルトの名無しさん
17/10/27 17:17:20.47 WVUdRiE90.net
昨夜のヤツか
だから何でもかんでもコピペで済ませようとせずに、ちゃんと基礎を学習しろって
>赤線エラーが連発です。
>何が足りないんでしょうか?
先ず、そのエラーの内容を全部正確に書き出せ
何が足りないっつーなら、人に物を訊ねるのに提示する情報が足りてない
537:デフォルトの名無しさん
17/10/27 17:28:28.47 5X4PuMCla.net
金出して入門書を買うべき
538:デフォルトの名無しさん
17/10/27 17:32:12.47 Xsu5cNz50.net
ごめんなさい
以下が私のコピペして作ったコードです
URLリンク(pastebin.com)
エラーは以下の21個です
URLリンク(pastebin.com)
何かアドバイス頂けたら幸いです。