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

■ このスレッドは過去ログ倉庫に格納されています
2017/06/09(金) 18:36:01.72ID:lNiKtgPwM

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part128
http://mevius.2ch.net/test/read.cgi/tech/1493730340/

■関連スレ
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/
---
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
675デフォルトの名無しさん (ワッチョイ 5d23-nIbb)
垢版 |
2017/07/03(月) 23:41:12.61ID:LZbV1PnE0
どっちのいいぶんもまぁわからんでもないが結局プロジェクトの規模によるんじゃないの?
みんなだいたい一人どれくらいのプログラムの量かくの?
676デフォルトの名無しさん (アウアウエー Sa4a-kiAr)
垢版 |
2017/07/03(月) 23:41:26.60ID:hTTgnp+ka
宣言型言語で書くならそうだが、普通コードは命令書であって設計書じゃない。
2017/07/03(月) 23:42:46.19ID:+vluAADOM
>>673
もう投了ですか?
2017/07/03(月) 23:49:00.34ID:5B3ucqRJ0
>>674
いやぁさすがにそれは詭弁にしか聞こえない
だってお前のは材料数も期間もなんもでねーじゃん
ただ単にパズルが解けるまで遊んでるだけで最悪なんの成果もないわけじゃん
2017/07/03(月) 23:51:24.33ID:+vluAADOM
>>676
世の中の多くの設計書が手続き(命令)的な書き方をされてますよね
年配のCOBOLエンジニアさんが書く設計書などがまさにそうですが
あれは設計書ではなかったと
2017/07/03(月) 23:52:11.27ID:5B3ucqRJ0
だいたいリファクタリングとか言ってるけど
ここまで来てそんな問題起きちゃうのはただの設計ミスだよね?
設計書から完成させる文化の仕事受けて1回軍法会議にかけられて死ねばいいよ
2017/07/03(月) 23:53:02.74ID:MkRtof65M
ひとつの型が唯一解とは思わないが設計書は必要だよ
コーディング以降は各テストレビュー完了毎にメンテナンスするくらいの頻度でいい

アルゴリズムの伝達にプログラム要素は含まれない
2017/07/03(月) 23:59:24.25ID:+vluAADOM
>>678
現実的な時間で終わるかどうかの見極めはコード弄ってればすぐにわかるよ
むしろコード弄らずにドキュメントベースで話を進めると簡単だと思ったら実は思ったより時間かかりました〜なんてことになる
悲しいけど世の中そんなプロジェクトで溢れかえってるのが事実なんだ
2017/07/04(火) 00:00:45.70ID:IVSy+wIs0
>>679
COBOLの設計書ってコード設計という名のコーディングシートを除けばわりと宣言的だぞ
関数型に近い
2017/07/04(火) 00:00:55.20ID:MbM3EkKwM
>>680
断言するけどそんな設計書はありません
就職すればわかるからそのあと出直してきな
2017/07/04(火) 00:03:06.32ID:WRdzRcYr0
>>682
それを外したからリファクタリングなんて名前の設計ミスの修正をやってるように見えるんだが?
2017/07/04(火) 00:10:19.18ID:MbM3EkKwM
>>681
概要を素早く把握するには設計書はちょうどいい文書だと思う
しかし概要を超えた明細はコードで語るべきだ
コードを直す前に必ず設計書修正しろなんてパラノイア的なやり方は負担を増やすだけで利益は少ない
コスト意識のない完璧主義者に付き合わされるのは苦痛だ
2017/07/04(火) 00:14:55.81ID:MbM3EkKwM
>>683
そうなのか
うちのCOBOL経験者はJavaのようなOOP言語でもコテコテの手続き的な設計書を書くよ
まあ人によるってことだろうね
2017/07/04(火) 00:16:28.89ID:L/qJLU5VM
>>686
テストレビュー完了毎にメンテナンスするって意味がうまく伝えられなくてすまん
修正毎とか時間と人件費の無駄、やってらんねーっすよってこと

俺にとっての設計書ってのはほぼテスト仕様書
詳細設計=単体テスト
概要設計=結合テスト
要件設計=統合テスト
2017/07/04(火) 00:21:53.60ID:MbM3EkKwM
>>685
どんなに慎重にやっても設計ミスは出る
そもそも仕様そのものが業務の変化に依存している以上不変ではない
完全な設計書などこの世界には存在しない
設計書の間違いを検証する手段がないので設計書には間違いがないと勘違いする人が居る
設計ミスではなくともリファクタリングを行うことが多々ある
2017/07/04(火) 00:24:42.89ID:WRdzRcYr0
>>686
いやーさすがにテキストボックスが右詰めか左詰めかとかまで書かせるのはキチガイだと思うけど
全体の大まかな構造までしけちゃってるのを見ると流石に見逃せねぇ
ってところじゃん?
しかもそこからの対応もパズルとか言って用は動くまでブラウン管テレビぶん殴ってるババアと大差ねぇなと
これはねぇキミ、プロのやるこっちゃないよ
2017/07/04(火) 00:27:36.58ID:VQWxt7Oqa
プロがこんなところでしょうもない揚げ足取りの議論なんかするかw
ばっかじゃねえのほんっと
2017/07/04(火) 01:07:42.92ID:cQQJFeYO0
色々考えましたが、解決法が見つかりませんでした。
どなたか、何か良い案は有りませんかね?
2017/07/04(火) 01:17:30.16ID:g265ht6F0
エクスプローラーっぽいアプリを自作した方が楽だと思う。
メモ帳にしたって、アプリにテキストボックス埋め込んで表示すれば足りそうだし。
2017/07/04(火) 01:28:43.92ID:WRdzRcYr0
>>692
エロ動画を見ればいいんじゃん?
大半のエロ画像なんてゴミになるよ
695デフォルトの名無しさん (ドコグロ MMe1-rRjJ)
垢版 |
2017/07/04(火) 02:03:27.54ID:Xx7vldzqM
nameofって短縮系の名前しか得られないの?
名前空間とかそのまま欲しいな
2017/07/04(火) 04:20:45.13ID:30FFvUbG0
伸びてる時は
2017/07/04(火) 07:32:18.26ID:6x2CTTFI0
動的にはtypeof(...).Namespaceやらで取れるからそれで十分って判断じゃね
文字列で完全限定名が取れて嬉しいケースってあんまり思いつかん
属性で型名を指定するのはコンパイル時に型を参照できないからなわけでそこでnameofは使えないし
2017/07/04(火) 07:44:04.75ID:MbM3EkKwM
>>690
故障したテレビを外から眺めながら中身のことを妄想して原因はあーでもないこーでもないと議論するのが設計書文化

とりあえず安全確保はしておいてから、テレビを分解して内部構造を調べ、故障原因を理解し、原因を取り除いたり、より良い構造になるように努力するのがコーディング文化

どちらが有意義な仕事をして居るかは一目瞭然だね
2017/07/04(火) 08:55:00.74ID:WRdzRcYr0
>>698
でも仕組みわかってないんだろ?
触んなよw
2017/07/04(火) 10:52:33.77ID:ZQS+6DN80
>>698
技術力とちゃんとした設計書があれば、妄想じゃなくて起こりうる原因を挙げれるわけだが
妄想レベルの設計書しか書けないから有意義な仕事が出来ないんじゃない
2017/07/04(火) 19:27:22.44ID:lzeKWGAxM
C言語やC++やJavaを学んできたけど、C#が一番難しいです
こういう方居ますか?
また言語の難易度はどのようなものなのでしょうか
2017/07/04(火) 19:30:26.44ID:i7X4UBGk0
>>701
どういうところが難しいと感じますか?
2017/07/04(火) 19:31:23.02ID:uVbqp3bl0
むしろC++の何を知ってるのか聞いてみたい
2017/07/04(火) 19:32:43.87ID:lzeKWGAxM
>>702
競技プログラミングをC#でやりたいんですけど、C++と比べて難しいです…
難しいと思うのは、一番は全体像が多すぎて掴めないです
2017/07/04(火) 19:35:23.49ID:i4/Vnl6JM
>>704
競技プログラミングなら、C++でいいんじゃ……
2017/07/04(火) 19:41:30.05ID:lu0GxyOqM
全体像が多すぎて掴めないってなにさ。競技プログラミング向きではないとおもうが。
2017/07/04(火) 19:42:09.30ID:lzeKWGAxM
>>703
昔はゲーム作ってました
今はunityでゲーム作ろうと思ってるんですけど、他のこともやってみようかな?って感じです
>>705
C#で書いてた人がかっこいいと思ったので…
2017/07/04(火) 19:47:44.39ID:lzeKWGAxM
>>706
自分でもわからないです
まだ触り始めたばっかだから色々作ることにします…
2017/07/04(火) 21:21:54.56ID:C0QCHaIba
難しいと感じるところもあるかもしれないけど
いいところもいっぱいあるでしょ?

もうプロパティがない言語触りたくない
2017/07/04(火) 22:05:02.40ID:sHaUSfW10
>>709
良いところもあるけど、色々作って試行錯誤します
2017/07/04(火) 22:05:31.08ID:sHaUSfW10
>>709
プロパティは確かに便利ですね
2017/07/04(火) 22:09:38.11ID:IVSy+wIs0
慣れてくるとあんまりプロパティ作らなくなるけどね
C#初心者はWinFormsとかの「お客さん向け」設計を真似してプロパティを大量に作りがち
次第に整合性を重視するようになると自然にプロパティは減っていく
2017/07/04(火) 22:20:04.96ID:2R49bdwT0
自然にプロパティが減ってく人でも皆無にはならない程度には便利だということ
2017/07/04(火) 22:22:09.64ID:g265ht6F0
>>712
良く分からん。
整合性を重視するってどういうこと。
2017/07/04(火) 22:27:37.54ID:AKPIjSm80
お客さん向け設計ってのもわかるようなわからんような。
2017/07/04(火) 22:37:51.95ID:vts0HE+ua
自分だけが気づいた何かがあると思いたいお年頃なんでしょう
ネットde真実の一種だねw
2017/07/04(火) 23:06:36.69ID:i4/Vnl6JM
>>707
たまに競技プログラミングやるけど、スラスラC++書ける人格好良いと思うなぁ。

格好良さはさておき、C#で難しいとこってなんだろ? デリゲート型とか?
2017/07/04(火) 23:22:54.20ID:IVSy+wIs0
>>714-715
プロパティを正しく公開するのって結構大変なんだよ
内部で生じた一時的な変な状態を外に見せないようにしたり、
常にプロパティの値が外から書き換えられることを考慮する必要があったり
不特定多数の人に便利に使ってもらうためのクラスならそこに手間をかける価値はあるけど、我々が作るクラスのほとんどはそうではない
2017/07/04(火) 23:28:02.70ID:vts0HE+ua
プロパティを使わない(フィールド直公開?メソッド?)ことで問題が回避されるんじゃなければ
何言ってるのか意味不明だね
2017/07/04(火) 23:28:07.57ID:WRdzRcYr0
公開されてるからいつでも触っていいのかと思ったら
initの前だけかよって?
2017/07/04(火) 23:29:50.21ID:WRdzRcYr0
なんの注意書きもないから1ミリ秒単位で更新してたら死にやがったよコイツ的な?
2017/07/04(火) 23:32:37.20ID:WRdzRcYr0
update()するたびに使用メモリが増えて行くのは仕様ですか?
2017/07/04(火) 23:32:49.21ID:IVSy+wIs0
>>719
プロパティに限らず、余計なメンバを公開しないほうが楽だと言ってるだけだよ
2017/07/04(火) 23:34:22.56ID:AKPIjSm80
アンカ付けたんなら「お客さん向け設計」の説明もしてくれよ。
2017/07/04(火) 23:36:17.05ID:vts0HE+ua
>>723
語るに落ちてるじゃんw

要するに、それは上手にカプセル化して安全で使いやすいブラックボックスを作りましょうってことであって、
プロパティに限った話じゃない
2017/07/04(火) 23:37:40.88ID:WRdzRcYr0
お客さんは開発者だろ?
マイクロソフトが開発者向けに用意したコントロールと
うちらが仕事で仕様を満たすために作るものとは手間やクオリティが全然違うってことだろ
2017/07/04(火) 23:39:13.52ID:IVSy+wIs0
>>725
その通り。
特にプロパティは初心者が不必要に公開してしまう傾向がある、ということね
2017/07/04(火) 23:40:18.13ID:WRdzRcYr0
じゃあ誰かに公開して誰かに使わせる予定あるのかよ?
って言ったらほとんどないんじゃん?的な?
感じで代弁してみた
2017/07/04(火) 23:54:47.56ID:U+lkwqtt0
>>725
そんな傾向あるかね?
自動プロパティ限定の話ならわかる気もするけど
2017/07/04(火) 23:55:16.97ID:vts0HE+ua
そういう話なら、初心者は何でもpublicにしがちだけど慣れてくると
適切なアクセス修飾子を使うようになる、とか言わなきゃ。

でもこれってそんな気張って言うような話じゃなくて、初歩の初歩の話だよねw
2017/07/04(火) 23:56:43.86ID:U+lkwqtt0
安価みすってた>>727
2017/07/05(水) 00:01:10.61ID:xlOAkI1j0
整合性を重視って妙な言い回しするから何かと思ったら…
2017/07/05(水) 00:40:08.75ID:AQhGA2i/M
初心者スレだよ
2017/07/05(水) 12:46:25.76ID:eFHntyyqM
初心者が質問するスレな
初心者がプロパティガーって知ったかするスレじゃない
2017/07/05(水) 17:00:46.07ID:IuExXpbW0
https://youtu.be/3MBQtuK2nZ8
これやってるんですけど乱数入れると2行目のレベルの数字がバグってしまいます
原因が全くわかりません
助けてください
2017/07/05(水) 17:25:23.39ID:JPPyl3nWa
そういう丸投げの質問にわざわざ回答してくれるお人よしがいるかもしれないと
思えるところが凄い
2017/07/05(水) 17:32:08.14ID:Y/w4lOMB0
>>735
動画主がソース公開してるみたいだから自分のと比較してみたら?
2017/07/05(水) 18:14:22.85ID:IuExXpbW0
お騒がせしました
公開されてるソースと比べたところ、違いは勇者の名前と勝手に追加したゴールドの乱数だけでした
結局String name ="";の行を弄ったらバグらず表示することができました
名前の文字数が5文字以下だと文字がバグりました
2017/07/05(水) 18:20:17.61ID:IuExXpbW0
5文字ではなく4文字以下で数字がバグるでした
740デフォルトの名無しさん (アウアウウー Sa25-kiAr)
垢版 |
2017/07/05(水) 21:34:50.46ID:z3CI8qH6a
それ動画主もクソやんか。
どこがどうクソなのか自分で理解出来るようにしなよ。
2017/07/05(水) 22:04:55.79ID:RvrPy5l3p
役立たずの口だけ番長は黙って死んでろゴミカス
てめえみたいな奴が初心者スレを腐らせんだよ
2017/07/05(水) 22:36:26.64ID:I3hQhyW7a
ササクッテロリって初めて見たww
どうでもいいけど
2017/07/05(水) 22:37:44.89ID:uTn2RlgN0
某所のクソコテがササクッテロルだからいつも見てるな
2017/07/06(木) 09:16:24.92ID:Wdgs4/ag0
>>738
いきなり中ボスに挑んだなw
2017/07/06(木) 09:19:32.16ID:9B2MU8kU0
webbrowserでダイアログボックスを開いて操作することってできるんでしょうか?
たとえば画像アップロードサイトでファイルをアップロードするために「ファイルを選択」ボタンを押すと
ファイル選択画面になりますが、ここにファイル名を自動で入力して自動で「開く」ボタンを押したいと。

外部のブラウザならウィンドウハンドルを取得してそこに投げてやればいいのはわかるのですが、
webbrowserでやろうとして失敗しました。
2017/07/06(木) 09:36:10.51ID:SJTPfom00
>>745
webのやり取りは普通は[POST]と言う命令をサーバーに送るだけなので、C#で制御するにはそのページがデータを送る仕組みを解析して
同じようにデータを送る方法があります
そのページで何をやっているのか知るために、htmlとjavascriptの基本は抑えておいたほうが良いよ
2017/07/06(木) 15:47:39.70ID:R3A9km6A0
今更 var に感動してるんだけど、foreach の中じゃ無理なん?

System.Web.UI.WebControls.CheckBoxList checkboxlist;
foreach(var list in checkboxlist.Items)
{
  list.・・・
}

System.Web.UI.WebControls.ListControl 型を類推してほしいのだが、object になってしまう。。。
2017/07/06(木) 15:50:14.08ID:R3A9km6A0
× System.Web.UI.WebControls.ListControl 型を類推してほしいのだが
○ System.Web.UI.WebControls.ListItem 型を類推してほしいのだが
2017/07/06(木) 15:54:53.37ID:j+3WJv+ZM
そのプロパティが返す型がobject型なんでしょ。キャストすればいい
2017/07/06(木) 16:07:03.45ID:qhsH+LBBM
ジェネリックは.NET 2.0から
System.Web.UI.WebControlsみたいな.NET 1.xからあるものはIEnumerableしか実装してない
IEnumerator.Currentがobjectなのでvarは常にobjectとしか扱えない
2017/07/06(木) 16:10:25.20ID:j+3WJv+ZM
msdnみた。
itemsはlistcollectionという型を返すらしい。
それはenumrableを継承した型でジェネリックによる型推論が効かない。
キャストでEnumrable〈型〉を指定すればいけるんじゃないかな。
2017/07/06(木) 16:36:28.81ID:M4nTNHGha
どうでもいいけど類推って言葉の使い方間違ってますよw
2017/07/06(木) 17:09:22.66ID:Wdgs4/ag0
>>747
デキモシナイコードカイテンジャネー
( ‘д‘⊂彡☆))Д´) パーン
( ‘д‘⊂彡☆))Д´) パーン
( ‘д‘⊂彡☆))Д´) パーン
2017/07/06(木) 19:25:03.65ID:9B2MU8kU0
>>746
そのやり方自体はテキストベースではやったことがあるので使い方はわかりますが、ファイルを添付したい場合にどうしたらいいか
知らなかったのでウィンドウ操作のほうでやってみました。
ウィンドウ操作の方法もご存知でしたら教えてください。
2017/07/06(木) 23:14:22.57ID:rKvRSNC9M
var [ ] 配列
こーゆうふうにvarじゃ配列組めないの?
2017/07/06(木) 23:17:58.00ID:e4P8WO3j0
>>755
var (C# リファレンス)
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/var
varによる変数宣言とコレクション初期化子
varが使用できる場面
http://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_03/csharp30_03_03.html
2017/07/06(木) 23:52:16.07ID:M4nTNHGha
こういう風ってどういう風だよww
2017/07/07(金) 00:03:47.18ID:uaUrbh0r0
>>755
それじゃ型を推論出来ない。
var piyo = new [] { 1, 2, 3 };
みたいに初期化子込みなら型を省略出来る。
2017/07/07(金) 00:28:42.12ID:5tYOHdE20
>>754
スレッドを起動する
windowを監視してファイル選択ダイアログを見つける
ダイアログを操作する
2017/07/07(金) 01:41:04.05ID:G2hd19q10
ai仕込んで、そろそろ型を推測するようにして欲しい。
ここで数字型の配列使いそうとか
2017/07/07(金) 01:56:18.71ID:VVUNYRiAa
それはAIじゃなくてESPだと思う
762デフォルトの名無しさん (アウアウエー Sadf-X9Wr)
垢版 |
2017/07/07(金) 06:06:54.85ID:1OiH67XQa
>>760
CPUの分岐予測みたいに予測間違ったらストールして待って今予測し直すからって失敗時に待たされるんですね分かります。
思い通りのコードが出るまで何度も予測させるってなるとFacebookみたいに色んな感情選べるgoodボタン要るね。
2017/07/07(金) 07:16:00.55ID:Vo0hmpPS0
型を定義できないって不便だと思うがな
2017/07/07(金) 08:13:32.94ID:gXsXTAypr
>>520
C#だとぬるりかあぬるだな
あぬるなんて書いたらガッでなく
アッーって書かれるのか
2017/07/07(金) 08:23:25.36ID:URSZRmHsM
型を定義してないと思ってる>>763が不憫だと思うがな
2017/07/07(金) 08:27:59.78ID:9lQTb6dz0
var a = new ・・・
は、意図どおりに型定義されるからいいけど、
var a = 1;
は何か嫌だなぁ

int32? int16? 
どっちに判断したんだろって思ってしまう

var a = 1;
while(a < 100000000000)
{
 // 処理
a++;
{

みたいにすると、勝手にint64に判定してくれるの?
2017/07/07(金) 08:31:13.22ID:Vo0hmpPS0
int16のラップアラウンドを狙ってる俺のプログラムが動かないわけだ
768デフォルトの名無しさん (アウアウエー Sadf-X9Wr)
垢版 |
2017/07/07(金) 08:31:31.51ID:3s7e5LVua
文脈から判断出来るならしてくれるはずだが。
気持ち悪いって。。。
むしろそこが目指すところじゃん。
2017/07/07(金) 08:58:12.84ID:G2hd19q10
コンパイラに何を望んでるの?
何が言いたいの?

勝手に型推論されると困る箇所は、明示的に定義するで済む話じゃない?

それとも、宣言より、後で出てきた命令も、
型推論の対象にしろと言っているの?

論点は何?
2017/07/07(金) 09:05:15.42ID:Vo0hmpPS0
バグが増えるの目に見えてんだよ
しかも組み手が面倒だからって理由だろ?
いらね

この程度で工数が縮まるわけじゃないし
品質は悪くはなるけど良くはならないよね?
って理由
2017/07/07(金) 09:19:40.74ID:SZgf6Ov20
>>770
何回目だよこの話
面白くねえんだよこのブタ野郎
今すぐ死ね
2017/07/07(金) 09:20:57.77ID:PTSkr6xOd
>>770
使い方が悪ければそりゃバグも増える
2017/07/07(金) 09:56:03.26ID:9lQTb6dz0
うん、だから自分は

System.Collection.Generic.List<string> a = new System.Collection.Generic.List<string>();

var a = new System.Collection.Generic.List<string>();

という時にしか使ってないな。
2017/07/07(金) 10:22:52.10ID:Vo0hmpPS0
>>771
とうとう会社で持論を展開してとっちめられちゃったの?
だから2ちゃんねるの常識をリアルに持ってっちゃ駄目って言ったのに
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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