X

ふらっと C#,C♯,C#(初心者用) Part132

■ このスレッドは過去ログ倉庫に格納されています
2017/10/09(月) 19:00:56.93ID:Y4203ffV0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part131
http://mevius.5ch.net/test/read.cgi/tech/1504861931/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2017/10/14(土) 21:30:45.44ID:+aeiapeN0
>>103
何呼び出そうとしたのかくらい書いてほしい
まずそのクラスが入っているコンポーネントの参照設定が必要
https://msdn.microsoft.com/ja-jp/library/7314433t(v=vs.90).aspx
次にusingが記述されていないクラスを呼び出すには名前空間からの記述が必要。もしくはusing (名前空間);を追加
2017/10/14(土) 21:36:08.46ID:GRARGOD60
使い始めていきなり参照追加が必要になるとは思えないから、恐らくusingが足りないんだろ。
2017/10/14(土) 21:49:10.87ID:Gt2cFrms0
初心者って何でエラーメッセージ書かねーの?
107デフォルトの名無しさん (ワッチョイ 09b3-7vf9)
垢版 |
2017/10/14(土) 22:12:08.04ID:2Frxw1Uc0
>>104-106
参考書を読みつつ進めていて
DateTime today = DateTime.Today;でエラーが出ます
呼び出したいのは構造体でした
MSのリファレンスではこのように書かれています
名前空間: System
アセンブリ: mscorlib

レス書きながら参照の編集→アセンブリ弄っていたらエラー吐かなくなりました
もしかするとusing System;を書いていなかっただけかもしれません、申し訳ないです
エラーメッセージも今後は載せます
2017/10/15(日) 01:24:12.85ID:odpYqypi0
formのサイズに合わせて、
labelが拡大縮小するのってどうすればできますか?
2017/10/15(日) 01:47:44.60ID:6sAES7rzM
>>108
おれも手軽な方法知りたい。

面倒な方法としては、formサイズとlabelのフォントサイズに比例式作って判定させるメソッド作れば実装はできる。
2017/10/15(日) 01:57:09.23ID:7R5dQaZOa
>>108
煽り抜きで真面目な話、そういうのはまず要件を厳密に定義しないとね。
「formのサイズに合わせて、labelが拡大縮小」っていうのは曖昧だよね
2017/10/15(日) 02:12:32.32ID:odpYqypi0
>>109
ありがとうございます。
そういう機能があると思ってましたが、
簡単にはできないのですね。
2017/10/15(日) 02:13:46.76ID:odpYqypi0
>>110
画像の拡大縮小のような感じで、
フォームの大きさに合わせて、
ラベルの文字が大小するという感じです。
2017/10/15(日) 09:38:54.40ID:PeJpR27x0
>>112
WPF使えば良いんじゃないの?
2017/10/15(日) 10:17:34.83ID:xAZWROGI0
C#でpyplotみたいにフォーム作らなくてもお手軽にグラフ表示する方法ってないですか?
2017/10/15(日) 10:19:38.15ID:Tx63GDtfa
グラフコントロール的なのなかったっけ?
2017/10/15(日) 10:27:56.21ID:Tx63GDtfa
表示しないとdrowtobitmapきかねっけ?
2017/10/15(日) 16:04:17.23ID:64liGYG7M
ずっとグラフコントロール見てたけど
前だったら商用が一番おすすめだったけど
今はもうwebのフリーのコントロールに負けてるので金を払ってまで使う必要あるのかと思う
2017/10/15(日) 16:06:29.18ID:Tx63GDtfa
chartコントロール超綺麗じゃん
2017/10/15(日) 16:17:59.94ID:+yNynBs60
>>113
だよな。コントロール並べるだけじゃ満足できないならwpfやuwpに移行したほうが効率いい
もうオーナードローなんかやりたくないよ
2017/10/15(日) 16:21:03.11ID:Tx63GDtfa
>>119
フォントまで対応してたっけ?
今PCってフォント125%とかデフォルトで設定して売ってんじゃん
2017/10/15(日) 16:35:55.54ID:64liGYG7M
グラフって表示するだけじゃなくてインタラクティブなのものを求められたりするんで困る
2017/10/15(日) 16:46:42.46ID:+yNynBs60
>>120
拡大したいコントロールをViewBoxってコントロールで囲えば、何でも拡大縮小してくれる
2017/10/15(日) 16:57:11.91ID:Tx63GDtfa
>>122
フォントサイズやフォントの倍率変えても行ける?
2017/10/15(日) 17:11:04.42ID:64liGYG7M
使い勝手がいいかどうかは別だけど
スクロールバーありものも突っ込んだら悲しいことになる
2017/10/15(日) 17:17:55.44ID:Bo2AAy/J0
>>120
PCうんぬんはフォントじゃなくてスケーリングじゃないかな。
WPFは元々システムのDPIに依存しないから、スケーリング対応は簡単。
2017/10/15(日) 17:21:09.76ID:Tx63GDtfa
>>125
コントロールパネルの画面の
テキスト、アプリ、その他の項目のサイズを変更する
は影響受けない?
これが125%になってんだけど
2017/10/15(日) 17:24:10.76ID:q3I9S/toa
質問者に言っておくけど、要件を厳密に定義しないとこういう流れになっちゃう。

「formのサイズに合わせて、labelが拡大縮小」
「ォームの大きさに合わせて、ラベルの文字が大小するという感じ」

これどっちも曖昧だって。
要件っていうのは解釈や忖度や妄想の余地がないように厳密に定義しなきゃ
2017/10/15(日) 17:25:59.26ID:64liGYG7M
使ってみればいいよ
ViewBoxは使いどころが難しいと思う
マウス操作するものはなるべく突っ込まないほうがいいと思う
2017/10/15(日) 17:33:14.07ID:64liGYG7M
スペースが事前に決めてあってその中いっぱいに表示したいならviewbox
サイズを細かく指定したいなら向いていない
左右に二個並べてあって中身が違うにもかかわらず左右の表示を会わせたい→死
2017/10/15(日) 18:30:27.57ID:Bo2AAy/J0
>>126
それがスケーリングね。
スケーリングが125%になっているなら、ウィンドウ全体(コントロールも文字も)が125%に拡大された上で綺麗に表示してくれるよ。
2017/10/15(日) 19:26:58.15ID:boo3QsX80
>>127
実際に作るものはともかくここでの流れまで初心者に言っても
最初から要件を細かく定義できるのならググったほうが速いし
質問の仕方から見て>>109>>113で十分かと
>>108
WPFはわからないのでWinForm+>>109で仮に作るとこうなる(Labelだけ対応)
https://ideone.com/BWg19a
ここまでは簡単で破綻しないように調整しようとすると面倒。自分では使わないw
この段階でたぶん座標とサイズがintでフォントサイズがfloatのせいで最後の文字で時々失敗する
2017/10/15(日) 19:43:17.05ID:H5qn+0zu0
Windows10のOS寄りの話になっちゃうかもしれませんが、
タスクバーとかその上にくっ付いてるコントロールの透明化を一時的にでも止める方法あったら教えてください。
2017/10/15(日) 20:08:50.91ID:T+wcAuKm0
>>132
設定→個人設定→色→透明効果→オフ
と同じことをプログラムからやりたいってこと?
C#の範疇じゃないので、聞くならWinAPIスレかなぁ
2017/10/15(日) 20:14:55.96ID:Gr3hJnkQa
タイトルバーのこと?
2017/10/15(日) 20:32:23.95ID:+yNynBs60
UWPだと、画面のサイズに依ってフォントのサイズどころかコントロールのレイアウトから何から何まで変更することが可能です
VisualStateManagerとAdaptiveTriggerってのを使うんだが、ちょっと説明には骨が折れるから興味ある人はググってね

単純なものでも、この複雑さだからね
https://blog.naotaco.com/archives/840
2017/10/15(日) 21:09:13.78ID:H5qn+0zu0
>>133
そうです。スレ違いでしたね
透明の箇所はスタートメニューから全部無効化したいですね
急ぎじゃないんで適当に調べてみます
2017/10/15(日) 21:25:24.68ID:+yNynBs60
>>136
http://news.mynavi.jp/column/windows/385/
ここにレジストリの変更でできるって書いてあるが、後は頑張ってね
2017/10/16(月) 06:32:34.43ID:RQ+FBTWza
>>130
おお、大丈夫なのか
ありがとう
原因を分けて対応しないと駄目だな〜
2017/10/16(月) 08:01:21.51ID:ecMhS81Sp
二つの同じ長さの配列A,Bの末尾から5つを取り出してその全ての要素がA>BならTrueを返す

↑これってLINQでうまく書ける?
2017/10/16(月) 08:05:12.77ID:qSwuY79xa
>>139
友の会行けよ
明らかに初心者スレじゃねぇよ
2017/10/16(月) 09:40:47.13ID:Hv+h3c0cM
LINQの定義次第っていうか
LINQ to ObjectsならTakeLast拡張メソッドを自分で実装すればいける
2017/10/16(月) 09:50:04.77ID:dwD3mD07M
>>139
A.Reverse().Zip(B.Reverse(), (a, b) => new { a, b }).Take(5).All(ab => ab.a > ab.b)

>>141
十分初心者レベルだよ
自分がわからないからスレ違いってw
2017/10/16(月) 09:51:11.95ID:dwD3mD07M
すまん
わかると思うけど下のアンカは>>140の間違い
2017/10/16(月) 09:53:43.90ID:REWIMY/C0
なんで推敲する程度の余裕すらないんですかね…
寿命が近くて生き急いでるのかな?
2017/10/16(月) 10:01:59.84ID:qSwuY79xa
>>142
こんなコード見やすいと思ってる時点で頭がイカれてる
2017/10/16(月) 10:13:40.50ID:/cVIDSfR0
またLINQに親殺されたマンのスイッチ入ったな
2017/10/16(月) 10:15:02.52ID:VBGd717qM
逐次的に読むだけだから難しくはないと思うが…
2017/10/16(月) 10:15:18.65ID:qSwuY79xa
まあ、動作も遅いしね
2017/10/16(月) 10:16:28.62ID:/cVIDSfR0
>>148
ちょっと興味あるから同じ処理をわかりやすいように書いてみて
2017/10/16(月) 10:25:12.95ID:X+6CakuHM
>>145
勢いで書いて後から見てワケワカランで
こんな糞コード誰じゃと調べたら自分だった事が多々あるw
151デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/16(月) 10:51:30.20ID:yXhtcONm6
>>148
LINQ難しくて嫌いだからってケチ付けるなよwwwwwwwww
2017/10/16(月) 10:57:04.66ID:qSwuY79xa
>>151
いや、遅いのと見難いから嫌い
2017/10/16(月) 11:02:26.88ID:X+6CakuHM
メソッドチェーンってそんなに見づらいか?
クエリー構文はキモくて嫌いだが。
2017/10/16(月) 11:05:31.52ID:REWIMY/C0
LINQに全てを奪われたマンだろ
2017/10/16(月) 11:07:08.78ID:qSwuY79xa
>>153
テトリスを一行で書きました(改行コードがないだけ)
みたいな臭いがして臭い
2017/10/16(月) 11:07:49.77ID:kQRYApqGa
>>142はLINQ好きじゃない俺でも十分読める
ちょっと思ったけど
A.Reverse().Zip(B.Reverse(), (a, b) => a > b).Take(5).All(x => x);
こっちの方がいい気が

Tがboolの時predicatorじゃなくて要素そのものを評価するオーバーロードってないんだね
2017/10/16(月) 11:17:17.26ID:kTlR9ez60
>>142
ありがとうありがとう
なんでかTakeLastが使える(最近追加された?)んでリバースなくて行けました
けどめちゃくちゃ遅かった…

ちょっとLinqでやるんが無理だったんかな、でもすごくためになりましたありがとう
158デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/16(月) 11:18:16.37ID:yXhtcONm6
>>155
こんなに普及してるjQuery全否定か
2017/10/16(月) 11:21:16.85ID:/cVIDSfR0
>>155
頼む、アウアウオー Sa63-qY8Gなりの同じ処理のコードを書いてくれ
そっちのほうが分かりやすかったら味方も増えるだろ
160デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/16(月) 11:22:50.09ID:yXhtcONm6
しかも最近流行りの状態を持たない関数型プログラミングだし
161デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 14:46:59.09ID:L72cxc6g0
SQL使ってた人にはLINQは分かりやすいけど長いと読む気なくすのはSQLも同じ
2017/10/16(月) 14:54:15.28ID:ckY7h8O8M
>>161
linqのクエリ式とsqlは別もん。
sqlを知らない方が良いかもね。
2017/10/16(月) 15:12:28.85ID:tCfKnGA20
TrackBar のツマミを、タッチ操作用に大きくしたいんですが、どうすればいいんでしょうか。
検索しても解決に至っていない質問がちらほらあるぐらいです。もしくはこれでもかってぐらい
自分で書いたオリジナルのトラックバーとか。
そこまでしなくても、ツマミが大きくできるだけでいいのですが。
164デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 15:21:38.99ID:L72cxc6g0
>>162
別物(キリッ)とか言われても
同じだなんて言ってないけど

ただ取っ掛かりの部分でSQLの知識が活かせるから個人的には学習コスト低かったし、
逆にSQL知らない子に教えて慣れさせるのには苦労したわ
2017/10/16(月) 15:32:11.28ID:1Xir09k9d
>>164
メソッド式だけで充分
2017/10/16(月) 15:34:39.13ID:ckY7h8O8M
>>164
自分の場合はSQL知っててクエリ式を見たときは何じゃコリャと思ったもんで^^;
冗長だけどメソッド式が好み。
167デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 15:58:03.25ID:L72cxc6g0
>>165
そう思ってるのお前だけだからクエリ式があるんだろ
悟れよ
168デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 15:59:01.02ID:L72cxc6g0
>>166
面食らうのはわかるけどすぐ慣れるでしょ
2017/10/16(月) 16:04:24.32ID:VwEzpL/B0
>>163
https://msdn.microsoft.com/en-us/library/system.windows.forms.trackbarrenderer(v=vs.110).aspx
2017/10/16(月) 16:09:03.51ID:/hjaT7S3M
>>168
linqの出始めの頃はクエリ式を多く見かけた気がするが、最近のグーグル先生ではメソッド式を多く見かける気がする。
どっちが主流なんだろ?
2017/10/16(月) 16:12:46.47ID:/cVIDSfR0
今はメソッド式のほうが主流なんじゃない
最初は皆珍しがってクエリ式使ってたけど
今はほとんど見ない
2017/10/16(月) 16:28:30.74ID:/hjaT7S3M
>>171
vb.netだと状況が違うかも。
メソッド構文が冗長過ぎるよ。
2017/10/16(月) 17:44:59.60ID:1Xir09k9d
>>167
クエリ式で可能なことは全てメソッド式で可能。逆は成り立たない。
2017/10/16(月) 17:46:24.26ID:n1MWZemqd
>>167
充分の意味がわかってないということは中卒かな?
2017/10/16(月) 17:48:04.85ID:Vn+nsPRE0
>>113
>>131
コードも書いて頂いてありがとうございました。
恐縮しております。
いろいろいじってみたところ、
WPFでできそうなのでやってみます。
2017/10/16(月) 18:08:02.80ID:4cngaiV60
>>172
Functionがウザすぎてクエリ式使うわ
2017/10/16(月) 18:19:09.19ID:Jb7W9hCC0
リファクタリングって実際にやる事って多いのでしょうか?
とりあえず動くものを作ると手直しが大変で、設計を考えてから作るならそんなにリファクタリング起こらない様な感じもしますが
後から機能追加していくと分割しようとかってのもあるのでしょうか
2017/10/16(月) 18:25:44.09ID:eZI1RZBbM
多いです
179デフォルトの名無しさん (アウアウカー Sad5-vbd7)
垢版 |
2017/10/16(月) 18:40:53.97ID:ls7B8y8Ka
むしろそんなんばっかで嫌になる
最初の仕様書もっぺん見てみろや禿げと言いたくなるね
180デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 18:51:38.88ID:L72cxc6g0
>>174
じゃあお前はILで書ければC#要らないんだろうな高学歴さん
そもそも糖衣構文なんてどれも使い方次第だろ
言われないとわからんか?
2017/10/16(月) 18:57:14.07ID:X9WtM+0ed
>>180
ILがc#並に使い勝手良ければそうだろうね
182emanの物理学ってサイトわかりやすいな (ワッチョイ 7916-dPak)
垢版 |
2017/10/16(月) 19:03:30.59ID:8ymsOkDP0
教科書見ても全然わからんかったのにスイスイ理解できる
183emanの物理学ってサイトわかりやすいな (ワッチョイ 7916-dPak)
垢版 |
2017/10/16(月) 19:03:49.47ID:8ymsOkDP0
ミスった
2017/10/16(月) 19:22:10.94ID:BTwHB29Wa
>>177
それって誰の金でやってんの?
次の開発なんかあるかどうかわからないのに無駄じゃない?
2017/10/16(月) 19:22:42.93ID:LfvhrZmO0
>>177
設計を考えてから作ったあとにリファクタリングとか、設計が糞だからやり直すようなもんだわな
2017/10/16(月) 19:23:29.95ID:BTwHB29Wa
リファクタリングって設計がクソだからやるの?
2017/10/16(月) 19:30:37.46ID:TyTVOwnW0
>>177
一度書いたコードは問題なく動いている限りリファクタリングなんてすることは無いよ。
リファクタリングする工数なんて何処にも無いからね。

元のコードを大きく改変する必要があるとか類似システムを作るときは
思い切ってリファクタリングするけどね。そっちの方が品質も安定するし早いから。
ま、そんだけ元のコードが酷いって事さwww
2017/10/16(月) 19:30:40.89ID:Jb7W9hCC0
>>184
主力製品の機能変更で売ってくようなスタイルだと機能追加の度にコードが増えてくけど、その度に仕様変更でバグが混入する可能性があるからコード直ししたいとかあるってパターンもあると思います
既に基底が整備されてるとかプロジェクト毎に違う製品作るパターンならこういうことは無いと思いますが
2017/10/16(月) 19:34:29.63ID:BTwHB29Wa
>>188
でもお客の要望がリファクタリングの方向とズレてる場合って
かけたコストが丸損じゃない?
2017/10/16(月) 19:38:56.50ID:Jb7W9hCC0
>>189
あくまでお客とのやり取りではなく、コードは会社の資産という観点でリファクタリングするという考えですね

お客の要望で機能追加する前提のものなので、そこで保守するコストやバグによる信用低下からプログラムそのものの価値が下がるって概念になると思います
まぁ実際はリファクタリングするには大きすぎるので理想はあっても実行は中々できないと思いますが
2017/10/16(月) 19:39:51.97ID:3WbDhRser
>>173
letとSelectManyの連鎖はクエリー式でないと辛すぎるですたい
2017/10/16(月) 19:48:17.74ID:eZI1RZBbM
リファクタリングのやり方がおかしいんじゃないかな
リファクタリングでコードがシンプルになればその後の開発工数が激減する
2017/10/16(月) 20:21:04.95ID:rY47nFh2M
レガシーシステムに手をつける前に必ずリファクタリングするって常識でしょ
レガシーシステムは恐ろしいスパゲティの塊なのでそのまま手を出すとあっという間に破綻する
まずはリファクタリングで保守可能な状態を作らなければならない
最悪でも拡張する機能をテスト可能な状態にすること
顧客がバカでコミットできない場合でも知識を得るためにリファクタリングが最適
腐ったコードはどれだけ読み込んでも理解できない
2017/10/16(月) 20:21:22.23ID:BTwHB29Wa
>>190
いや今まで設定ファイルから読んでたけど
ネットワークから取得するわ
一括ではなく個々のデータを使用するときに常に最新データを個別に取得するわ
ってなったら絶対無駄になるよね?
2017/10/16(月) 20:26:56.04ID:BTwHB29Wa
>>192
それは改修時にする設計だよね
それは理解できる
でも、動いてるところをわざわざぶっ壊して作り直すって
お客に見積り通らないよね
2017/10/16(月) 20:29:25.51ID:Jb7W9hCC0
>>194
それで無駄になるケースってどういう場面でしょうか?
設定ファイルとコードが依存してなければ設定ファイルの取得部分の追加変更でリファクタリング自体は無駄にならないと思いますが
変更できないような設計なら確かに無駄になると思いますが・・・
2017/10/16(月) 20:31:20.88ID:1MDONeW40
>>195
スレチ
2017/10/16(月) 20:31:55.64ID:BTwHB29Wa
>>196
設定ファイルを読み込む前提でリファクタリングしたなら
ネットワークからデータを個別に取得するようになるわけだから無駄だよね?
2017/10/16(月) 20:34:39.53ID:VwEzpL/B0
無駄になる可能性もあるけど無駄にならない可能性もある
汚いコードだった場合ほど無駄にならない
2017/10/16(月) 20:34:54.38ID:BTwHB29Wa
設定ファイルは起動時に1回一括で読み込むだけかも知れないね

でもネットワークからデータが必要になるたびに個別に最新を取得だから
ぶっちゃけ対応できないんじゃないかな?
2017/10/16(月) 20:36:10.80ID:BaDXAceVd
>>200
スレチ
2017/10/16(月) 20:37:35.41ID:BTwHB29Wa
>>199
そう?
逆にこれが対応できるほど汎用性を上げたら明らかに無駄なコードだと思うよ
203デフォルトの名無しさん (スフッ Sd33-iAGE)
垢版 |
2017/10/16(月) 20:38:05.31ID:Pq8+tcNCd
ID:BTwHB29Waが何言ってるかわかるエスパーいる?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況