ふらっと C#,C♯,C#(初心者用) Part131 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/09/08(金) 18:12:11.06ID:Ej7G00WU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

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

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
2017/10/03(火) 17:08:32.82ID:HY14P4NI
敷居高いけど、どのみち現代の開発者には必須のスキルだからな
2017/10/03(火) 17:08:37.95ID:+vmAcOd0
今日のこのスレのID全部NG
2017/10/03(火) 17:19:53.75ID:HQuRK9/k
>>669
DOM理解してないとむりぽ
2017/10/03(火) 17:28:32.83ID:HY14P4NI
DOMなんか何が難しいんだ
CSSはバッドノウハウ地獄で確かに難しいけどBootstrapみたいなのもある
2017/10/03(火) 17:34:54.89ID:QikjATz4
ちょっと思ったけど、web系の人って生産性が低い道具を擁護することで
自尊心と飯の種を得ている様は、昔のコボラーなんかと同じ構図だねw

本人たちは逆に俺様こそが時代の最先端だと思いたいところだろうけど
2017/10/03(火) 17:35:54.67ID:ffaQ93cm
いや、俺が欲しいのはhtmlやGUIのビジュアル編集ツールなんだけど
そういうのある言語ってc#ぐらいしか残ってないよねって感じ
2017/10/03(火) 17:38:07.05ID:HQuRK9/k
>>674
最先端過ぎて数ヶ月後には陳腐化する。
2017/10/03(火) 17:39:17.69ID:ffaQ93cm
ホームページビルダーとかDreamWeaverって最近どうなんだろ?
ってそんなもん入門プログラム作成するのに引っ張り出すぐらいなら
やっぱりc#だと思うが
2017/10/03(火) 17:40:06.52ID:QikjATz4
>>676
なんか、C++の開発者の例のジョークを連想させる状況だなw
2017/10/03(火) 18:25:06.32ID:3pqnorgz
あんなのをweb系の総意とか勘弁
2017/10/03(火) 18:32:56.40ID:Wv0pCR1x
DBへの接続や読み書き等をクラス化しようと思うのですが、関数化したい機能が多すぎてDB関連クラスの中身が膨大になると思います
いいサイズになるように分けていきたいところですがどのような感じでクラス設計してるのでしょうか?
設計関連でおすすめの参考書等もあればお聞きしたいです
2017/10/03(火) 18:34:33.06ID:HY14P4NI
>>674
Webのデザイナなんかゴミみたいな単価で山ほどいるからね
それに、特に米国で顕著なパッケージ化の流れで、不特定多数向けにクォリティを高める開発形態が増えている
GUIの生産性はそれほど重要ではなくなりつつあるんだよ
2017/10/03(火) 18:39:00.62ID:k1rl0nQk
>>680
リポジトリパターンを調べるといいよ
2017/10/03(火) 18:44:37.30ID:HY14P4NI
>>680
理想を言えば、エンティティクラス自体に関連する処理を実装する
いわゆるドメインモデルってやつだ
682のリポジトリパターンはDBからのエンティティの取り出しと保存だけを抽象化するもので、
細かいトランザクションロジックの整理には役立たないよ
2017/10/03(火) 18:53:07.80ID:3pqnorgz
いや、でかくなるけどどうしたらって回答がそんななの?
685デフォルトの名無しさん
垢版 |
2017/10/03(火) 18:56:05.82ID:+VByLN2Y
SQLはXMLに書いてるわ
2017/10/03(火) 19:00:21.32ID:Wv0pCR1x
>>682-685
ありがとうございます
デザインパターンに詳しく無いので、この形がいいって回答はかなり参考になります
ドメインモデル、リポジトリパターンについてどういうものか調べてみます
2017/10/03(火) 19:03:06.95ID:5oW9bJ2Q
>>645
インテルの黒本をディスったなぁ
ARMにもディスられた事無いのに〜
2017/10/03(火) 19:12:54.47ID:+U401EVt
>>684
頭おかしいよねw

一つのクラスめっちゃでかくなるわ
どーすんだ?これ

って質問なのに
質問に対して全く答えてねぇのが笑える

ミソが腐っているのだろうか?
2017/10/03(火) 19:20:03.80ID:HY14P4NI
>>688
クラスを分けることを目的にするのは典型的なアンチパターンだからな
レビューでフォームクラスの行数オーバーで弾かれたから、イベントハンドラをそっくり別のクラスに移動するような阿呆を生み出しかねない
2017/10/03(火) 19:24:55.15ID:+U401EVt
>>689
それで?
一つのクラスがでかくなるときはどうするって?
2017/10/03(火) 19:31:29.75ID:F9jUpGNo
>>690
設計を見直す
2017/10/03(火) 19:33:49.01ID:N5+yK7+U
>>680
何で車輪の再発明をするのだ?
Entity Frameworkを使えば良いだろう。
2017/10/03(火) 19:41:31.70ID:Wv0pCR1x
>>692
EntityFrameworkは最近使い方覚えて少し試してるところです
それでも基本的なところと機能別に実装したい中身ってあると思ったんですけど、自分の考え方のがおかしかったでしょうか?
2017/10/03(火) 19:44:24.49ID:tdeEXDBR
dapperを使え
2017/10/03(火) 19:53:17.11ID:N5+yK7+U
>>693
おかしくはないよ。
Entity Frameworkで不足だと思うところは補えば良い。
オレオレ実装(自己満足なだけの)にならなけりゃ。
2017/10/03(火) 20:31:15.57ID:mIjastOX
>>694
dapperのUnitTestどうしてる?EntityFrameworkならこのあたりだけど
https://msdn.microsoft.com/en-us/library/dn314429(v=vs.113).aspx
2017/10/03(火) 21:12:10.82ID:F9jUpGNo
>>696
普通に開発用のDBに繋げよ
DapperならSQL直書きだろ?
テスト対象はそのSQLそのものなんだからDBが本物でないと何の意味もない
2017/10/03(火) 21:22:08.49ID:F9jUpGNo
補足
Dapperを直接使用してる箇所のテストは上述の通りだけど、
それ以外の部分もDapperがないとテストできないと言うならDapper云々以前に設計が悪い。
それこそリポジトリパターンを使うなりしてDapperに依存しないように差し替えるべきだな
2017/10/03(火) 21:28:24.12ID:38m+PlJN
日曜大工プログラマー(書店の本見て勉強)だとテストってやつがわからんのですが
テスト関連の書籍ってでてますかね
プロの方と素人との大きな違いはテストとバグフィックスなのかなって思うとるんですが
2017/10/03(火) 21:38:27.79ID:F9jUpGNo
>>699
用途の違いじゃね?
日曜大工プログラミングならモデルのロジックなんかほとんど無くて入出力とシステム制御のコードほとんどでしょ
そんなのテスト書いてもあまり意味ない
2017/10/03(火) 21:42:25.34ID:TvjHrbVD
環境をたくさん用意するのは趣味だと無理だろうね

仕様や性能、精度を満たしているかとか
色々な耐久テストとか負荷テストとか
自動でやったり人海戦術だったり

まあいろいろと
2017/10/03(火) 21:44:15.68ID:TvjHrbVD
>>700
テストが意味無いとか
余程の自信家ですねwww
2017/10/03(火) 21:47:51.12ID:+GDO9heE
Nunitでググる
使う
終わり
2017/10/03(火) 21:55:20.87ID:N5+yK7+U
>>699
プロと素人の違い?
プロならクライアントに要求されたものが糞だとしても要求通りに作り上げる。
用意された環境が数世代前のPCに長机、パイプ椅子だとしてもひたすら我慢。
我慢こそがプロの必須要件。
2017/10/03(火) 21:56:38.94ID:N5+yK7+U
>>702
そう、T和田が目の前に居てもテストは不要なのだ。
2017/10/03(火) 22:04:18.65ID:F9jUpGNo
>>702
自動テストのことね
趣味でもそりゃ手動テストはやるでしょ
2017/10/03(火) 23:03:44.76ID:aqsVlxub
>>684
>>688
君たちもリポジトリパターン調べてみたほうがいいよ
2017/10/03(火) 23:07:42.74ID:TvjHrbVD
>>704
そういう底辺のプロもあるね
っていうか、ほとんどがそういうただのワーカーか
2017/10/04(水) 03:43:45.05ID:WBoZ4SYZ
>>707
ガイジ過ぎ
2017/10/04(水) 04:08:49.71ID:inVVPc+t
BindingContextの使い方がわからないのですが調べてみても記事がなく困っている状態です
DataGridViewのDataBingingと同じものなのでしょうか?教えてください
2017/10/04(水) 06:20:45.30ID:92yhAxWz
>>708
ワーカー?
日本のIT産業は奴隷産業なのだ。
奴隷からは何の新しい文化は生まれない。
韓国にさえ負けている日本がIT後進国である原因。
2017/10/04(水) 06:52:36.82ID:D0l3uaQA
奴隷みたいな働き方をさせられてる奴は結局その程度の能力なんだよ
そういう奴にも仕事があるか、そうでないかの違いだけ
欧米だと基本的にパッケージとオフショアだからね
2017/10/04(水) 08:37:31.27ID:AXmk8D8J
>>712
米国はプロジェクト毎に採用と解雇だよ。
エンジニアは常に流動的。
2017/10/04(水) 09:43:16.39ID:uEf1X1K/
>>707
よくある、手段と目的が違ってるのすら自分で分かってないパターン。
2017/10/04(水) 09:58:43.83ID:Jn2HeJe2
>>712
能力のせいもあるたろうが日本は至るところに奴隷市場がある。
産業構造が良くない。
2017/10/04(水) 10:17:41.36ID:4nywC7FJ
>>715
これは>>712が正しい。

むしろ本当は本人自身の能力にある問題を社会に問題があるかのようにすり替えて
自分を慰めている奴が多すぎるのが日本の問題。

簡単に言えばただの需給の問題。
アニメや映像制作の仕事もそうだけど、大幅に供給超過だから
質が低い者が買い叩かれているだけの話で、これは仕方がないどころか
むしろ社会的に好ましい。(そうでなければ需給のアンバランスの調整メカニズムにならないから)
2017/10/04(水) 10:21:58.39ID:Jn2HeJe2
>>716
IT産業って供給過多状態なんか?
2017/10/04(水) 10:40:25.08ID:65kSOn7U
>>717
人手不足ッスよ
2017/10/04(水) 10:46:01.75ID:65kSOn7U
いつでもいいからとりあえず請けてくれとか言って納期から2年過ぎてるタスクが手も付けないで積んだまま

よく怒らないで待ってるなぁって思う
しかもそういうタスク自分で持ってきてるくせに緊急だ緊急だってさらに積んでくる馬鹿な客

人もいないからプロジェクトが始まったら結構キツイ残業をさせられる
マジ、今もやめた方がいい
人がいないから一人に平気で2、3個プロジェクト投げてくる
出来もしないのに
2017/10/04(水) 10:54:14.08ID:Jn2HeJe2
>>718
だよね〜
SIer案件には近づかないようにしようw
2017/10/04(水) 11:00:00.61ID:4nywC7FJ
>>717
じっぱひとからげには言えない。

デキる人は足りてない。デキない人は大幅に青あってる。だから待遇が悪くなる。
それだけの話。
2017/10/04(水) 11:02:01.68ID:upJMOkRI
>>710
BindingSourceに役割を譲ってるから今から調べる意味はないと思うぞ
簡単に言えばデータソースを共有する範囲を決めるためのものだな
2017/10/04(水) 12:03:55.89ID:uEf1X1K/
他の業界と違って、必要な技能がなくても受け入れる懐の広さがあるよなwww
2017/10/04(水) 12:19:06.82ID:ePCNnyJm
>>723
Excelが使えないと駄目でしょwwww
2017/10/04(水) 12:31:20.71ID:zotkLvwh
下級SEはExcelにテストパターンをずっと書くだけの仕事を何年もするって聞いたけど
本当なんだろうか?
2017/10/04(水) 12:33:56.08ID:X/chSHNo
>>714
どっちもそう思ってるパターンだね。
2017/10/04(水) 12:34:31.64ID:zotkLvwh
IT業界でどんなお仕事なさってるのって聞かれたらなんて答えてるのかも気になる
2017/10/04(水) 12:36:21.87ID:zU1qviO4
>>725
定年までエクセル職人だよ
2017/10/04(水) 12:37:22.06ID:eKN2AIaa
>>724
正直、そこらへんの非IT会社の事務員でちょっとPC得意ですくらいの人間の方がExcel使えると思うわ
VBAどころか数式ちょっと使えば一瞬で終わるような単純作業を必死に手作業してる奴ばっか
ITプロフェッショナルって何なんだろうと思う
2017/10/04(水) 12:43:52.78ID:hBVSLcAI
うちの職場にはそんなヤツいないけど
2017/10/04(水) 12:48:23.25ID:zotkLvwh
日立とかにいそう
地元の工業高校出て死ぬまでエクセル職人
でも中小企業のPGより給料がいいみたいな
2017/10/04(水) 12:50:45.83ID:e2PGw4tF
>>729
商業高校でいまだに電卓早打ち競技やってるからな
2017/10/04(水) 12:56:32.70ID:ePCNnyJm
>>729
IT業界のExcelは表計算ソフトウェアではありません。単なる方眼紙です。
2017/10/04(水) 14:42:16.26ID:aFhVtil1
あるオブジェクトのプロパティを取得しようとして、もしそのプロパティを持っていないと例外出ますよね?
どうすれば回避出来ますか?
2017/10/04(水) 14:46:50.16ID:65kSOn7U
>>734
お前を外す
2017/10/04(水) 15:07:08.71ID:Mu1M4tJS
>>734
なんでそんなことしたいの?
2017/10/04(水) 15:17:21.66ID:vUJCH9qc
>>734
Type.GetProperty(hogehoge)
では
738デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:32:21.88ID:mhZMhlTM
まずプロパティがあるかどうか訪ねないで、いきなりプロパティに繋げようとするからダメって事だよな?
いきなり知らない家にいって、ユマちんを出せって言っても通報されるみたいなもんだ。
2017/10/04(水) 15:39:22.84ID:ZtUzMtUQ
>>737
そもそも論としてそのプロパティ持ってないオブジェクトに
プロパティでアクセスできるコード書いてるのが問題なんだよ

そこじゃなくて違う所を見直そう
740デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:40:19.16ID:PsbRicdP
public int aaa;
public int aaa{get; set;}

この2つって全く同じ動き?
741デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:47:27.79ID:PsbRicdP
大したの組んだ時無いからわからないけど
get; set;で記述する利点ってなんですか?
2017/10/04(水) 15:48:28.56ID:X/chSHNo
>>734
object.GetType().GetProperty(propertyName) で確認
2017/10/04(水) 15:50:18.77ID:vUJCH9qc
>>739
dynamicでexcelとか使おうとしてるんじゃないの?
で、バージョン違いでプロパティが無いとか。
2017/10/04(水) 15:52:48.11ID:vUJCH9qc
>>740
set;getはファンクションなのでrefとかが使えない。他の動きは同じでは。
2017/10/04(水) 15:57:13.34ID:vUJCH9qc
>>741
get;setだとロジックが後で組み込める。
ても、単一アセンブリだと余り関係ないかも。
746デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:59:30.46ID:PsbRicdP
>>744
>>745
あざす
Codelensも出るしファンクション?メソッド?のほう使ってこうと思います
2017/10/04(水) 16:04:29.61ID:vUJCH9qc
>>746
外部公開するのはget;setでプライベートなのは変数で良いと思うけど好きにすればw
2017/10/04(水) 16:05:33.70ID:inVVPc+t
>>722
わかりました

オブジェクト指向で詰まってしまったので聞きたいです
各コントロールのインスタンスを保持する変数って、親Formで基本は持っておくべきでしょうか?
タブ型ウェブブラウザーを作っているんですが、TabControl・TabPage・WebBrowserは各自TabPageの変数はTabControlの下、WebBrowserの変数はTabPageが持っています
これだと前回終了時のタブを次回起動時にリストアしようとするとすごい設計が悪くなります
どちらが良いのでしょうか?教えてください、ほんとはObserableCollectionを活用したいのですが、どう書けばいいのかわからず仕舞いです
2017/10/04(水) 16:15:55.36ID:BauJPwx0
>>748
Application.Current.Propertiesにでもぶちこんでおけば?
2017/10/04(水) 16:25:32.68ID:eKN2AIaa
>>748
大域的な設計はトップダウンで考えよう
例えば、現在表示しているページのURLを管理するクラスがあって、
フォームはその内容を画面に反映させる&ページ遷移時に新しいURLを管理クラスに伝えると考えればいい
管理クラスはUIの細かいことを気にせずに状態の管理と保存・復帰だけを考えればいいし、
フォームは管理クラスの状態と同期するだけでいい
2017/10/04(水) 17:53:53.15ID:inVVPc+t
>>750
ありがとうございます。話を自分なりに理解するとタブ現在表示しているUrlを別クラスPageページクラスが持ち
Pageクラスを内包したPageListクラスでファイルへの保存・復帰処理を行い、Formクラスでインスタンスを持ちTabControlに渡し、
各タブで何を表示するかのコントロールはTabControlで行おうと思うんですが、こういう感じですか?
2017/10/04(水) 17:57:11.27ID:65kSOn7U
タブコンはtabの文字にフォント最大でウンコって入力するとバグる
2017/10/04(水) 18:07:50.98ID:ZH15U2S2
>>751
全体の構造が憶測でしかわからないのに「これでいいですか」って聞かれても困ると思う
タブコントロールの各タブにPageListとかがぶら下がっていてそこを選択して表示するとかなんだろうけど
質問の仕方から見ても自分でもまとめられていないようだし、まず動くもの作ってから拡張していけば?
2017/10/04(水) 19:17:54.57ID:65kSOn7U
タブコンなんて使ってる時点でゴミ
とか言ってみる納品
2017/10/04(水) 20:10:16.69ID:+JSlwxf3
Rails, React, Electron, AngularJS などのフレームワークを参考にすれば?
2017/10/04(水) 20:35:25.42ID:i6quWUAT
プロパティってgetset関数毎回書くのアホらしいので省略しませんか?ってのかと思ってましたけど、レス読んでると他に意味があるんでしょうか?
浅い知識しかないので気になりました
2017/10/04(水) 20:44:18.31ID:0TdBJUYX
>>756
>>745に書いてあるようにメソッドのように扱える
必要ないのならpublicとかinternalとかの変数にして好きにしたらいいと思う
2017/10/04(水) 21:14:51.00ID:ULvxLO80
>>756
書くのが面倒って言うより、ゲッターとセッターは
オブジェクト指向におけるオブジェクトの属性って概念の素直な表現になってないのが
美しくないというか、直感的じゃないよね
2017/10/04(水) 21:53:15.88ID:D0l3uaQA
データクラスを除けば、最近は作ったプロパティの大半が読み取り専用だわ
セッターいらね
2017/10/04(水) 22:33:20.23ID:X/chSHNo
>>751
current urlのコレクションを管理するクラスを自前で作って、そのコレクションをシリアライズ/デシリアライズするイメージだよ
>>750はわかりやすく書いてくれてると思うぞ

current urlのコレクションはMVCのModel
Viewに依存すべきじゃない
2017/10/04(水) 22:37:19.76ID:inVVPc+t
イベント実装しようとしていますが難しいですね
全然勉強してこなかったことが身にしみてきます
2017/10/04(水) 23:32:25.16ID:inVVPc+t
自分でイベントを書くときに思ったのですが、
イベントを発生させるときは、そのイベントがnullではないことを確認するのはなぜでしょうか?
2017/10/05(木) 00:08:10.31ID:kvz6wfH4
例外になるから

nullチェックを避けるために何もしないラムダ式を登録しておく方法もあるけど、
なんか馬鹿くさいのは確かだね

VBみたに専用ステートメン用意した方がよかったかも。
でもこのVB方式はカスタムイベントで問題が出るそうだけど
2017/10/05(木) 00:20:49.58ID:w76cxVZ0
今は ?. があるからどうでもいい
ソースでイベントでnullチェックしてたら古いソースなんだなと思う

そうnullチェックは昔話
2017/10/05(木) 06:52:22.86ID:AIDxl0vl
>>762
イベントを使わない場合に落ちるから。
オレオレイベント実装で必ず使うのなら不要。
2017/10/05(木) 07:15:53.39ID:gKycoOZO
業務システムなんですが、今どきeachでもないfor文の多重ループ書く人って流石にマズいですか

それとも普通でしょうか

他人の四重ループを見て世間ではどうなのだろうと思いまして
2017/10/05(木) 07:25:17.32ID:lN/7t8RB
>>766
ixyzとかあると簡単に4重ループできるぞ
どうやって回避するんだ?
i=オブジェクト数、x方向、y方向、z方向
ってなってたら俺はこのままのがいいと思うが?

多重ループの数でPGの実力見ようとしてるお前がキチガイ過ぎてどうにもw
2017/10/05(木) 08:26:31.17ID:etvKz/hQ
行列計算とかなら普通
ビジネスアプリでやるとちょっと実力疑われるね
2017/10/05(木) 08:51:15.85ID:nBCW+G24
名前の隠蔽とオーバーライドの違い・意義について教えていただきたいです

名前の隠蔽: 同じ名前のメソッドを派生先で作ると基本クラスの同名メソッドは見えなくなる

オーバーライド: 派生先でオーバーライドメソッドを定義することによりインスタンス化したオブジェクトの基本クラスの内容を書き換えること

ということで間違いないですか?
オーバーライドメソッドのこの「インスタンス化した後に内容を変更する」というのが多態性であるとネットであったのですが名前の隠蔽で様々なメソッドを定義して使うのは多態性に当たらないのですか?どうしてもこの違いだけわかりません
どなたかお願いします(><)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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