■ このスレッドは過去ログ倉庫に格納されています
ふらっと C#,C♯,C#(初心者用) Part124
- 1 :デフォルトの名無しさん(ワッチョイ 393a-3Vwo):2016/08/12(金) 21:28:07.93 ID:V2s4z4io0.net
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part123
http://echo.2ch.net/test/read.cgi/tech/1469934170/
■関連スレ
C#, C♯, C#相談室 Part91
http://echo.2ch.net/test/read.cgi/tech/1467142749/
■コードを貼る場合は↓を使いましょう。
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
- 2 :デフォルトの名無しさん (ワッチョイ 45a1-xYo4):2016/08/12(金) 21:29:50.68 ID:+lUUEZcM0.net
- >>1乙
- 3 :デフォルトの名無しさん (ワッチョイ d1d6-yY6c):2016/08/12(金) 22:04:36.14 ID:Ojh78pHB0.net
- >>1
乙ワッチョイ
- 4 :デフォルトの名無しさん (ワッチョイ fc5e-yY6c):2016/08/12(金) 22:07:07.72 ID:S337aRPj0.net
- >>1
スレ立て乙
質問からの派生の議論などは↓のスレで
ふらっと C#,C♯,C#(議論用)
http://echo.2ch.net/test/read.cgi/tech/1469538912
- 5 :デフォルトの名無しさん (ワッチョイ 1030-VMjw):2016/08/12(金) 23:04:07.24 ID:PV0xO3Fw0.net
- 次スレもワッチョイで頼む
- 6 :デフォルトの名無しさん (ワッチョイ 83c0-MTuc):2016/08/13(土) 01:04:24.97 ID:NM1cVEay0.net
- ワッチョイスレの建て方
スレッドを立てるとき本文1行目に
!extend:checked:vvvvv:1000:512
- 7 :デフォルトの名無しさん (ワッチョイ fca5-GBh+):2016/08/13(土) 08:59:11.88 ID:wiadwCFF0.net
- わっちょいってよーわからんけど、NGワードに追加してフィルタできるんかな?
- 8 :デフォルトの名無しさん (ワッチョイ fc72-3Vwo):2016/08/13(土) 10:03:55.27 ID:t9krr6Iz0.net
- >>7
専ブラならNGネームとして使える
毎週木曜にリセットされる
1週間固定のIDみたいなもん
- 9 :デフォルトの名無しさん (ワッチョイ 430d-GBh+):2016/08/13(土) 10:22:21.33 ID:KGx3mFs20.net
- release buildしたexeをテキストエディタで見ると出力したパスが含まれてますよね
これって下手すると個人情報(ユーザー名)がバレちゃうと思うのですが、build先を変更する以外に対処の方法ってありますか?
- 10 :デフォルトの名無しさん (ワッチョイ d1d6-yY6c):2016/08/13(土) 10:32:07.90 ID:YPszTijW0.net
- ビルドの詳細設定 にある デバッグ情報 を none にすりゃ消えるけど、
ユーザー名がばれて何か不利益があるの?
- 11 :デフォルトの名無しさん (ワッチョイ 430d-GBh+):2016/08/13(土) 10:36:35.40 ID:KGx3mFs20.net
- >>10
ありがとうnoneにします
これはエラーの際の.tmp.mdmpの内容も同様にパスが出力されなくなりますか?(mdmpの場合はobjフォルダになってました)
不利益に関してはユーザー名に本名使っていると困るケースがあります
- 12 :デフォルトの名無しさん (アウアウ Sa03-URBI):2016/08/13(土) 11:13:46.94 ID:2qglMHO5a.net
- そっちを見直す方が合理的だと思うw
- 13 :デフォルトの名無しさん (ワッチョイ 4d99-VMjw):2016/08/13(土) 12:08:30.12 ID:ScBSsBsG0.net
- ユーザー名はaaaaになってるな
ドラクエならああああ
- 14 :デフォルトの名無しさん (ブーイモ MM41-xYo4):2016/08/13(土) 13:18:40.52 ID:apKPt0NUM.net
- LinuxでASP.NETを動かす時に使えるアセンブリはフルマネージドならVisualStudioで作ったものでもOKという認識でいいんでしょうか?
- 15 :デフォルトの名無しさん (スッップ Sda8-3Vwo):2016/08/13(土) 15:36:25.55 ID:u+Yte28Rd.net
- >>14
Coreね
- 16 :デフォルトの名無しさん (ワッチョイ 393a-3Vwo):2016/08/13(土) 15:50:01.07 ID:+y8KzYA20.net
- >>14
ASP.NET Core 用にプロジェクト作成したなら、その認識でOK
従来の ASP.NET 用アプリなら Core 用に作り直すべし
- 17 :デフォルトの名無しさん (ワッチョイ fca5-GBh+):2016/08/13(土) 17:15:43.81 ID:wiadwCFF0.net
- ひとりWikiっていうDelphi言語で作られたソフトのプラグイン用のDLLをC#で作りたいんですが、
ttp://www2u.biglobe.ne.jp/~MAS/soft/hitoriwiki/plugin_make.html
ttp://www2u.biglobe.ne.jp/~MAS/soft/hitoriwiki/plugin_sample.html
C#で↓のように作ったDllの場合
public class Test {
public String GetName() {
return "test";
}
}
呼び出し側からは通常「Test.GetName()」とすると思うのですが、
これを、クラス名無しで「GetName()」だけで呼び出せるようにするには
どんなコードを書いたり・設定を行えば良いのでしょうか?
- 18 :デフォルトの名無しさん (ワッチョイ fca5-GBh+):2016/08/13(土) 17:24:43.44 ID:wiadwCFF0.net
- >>8
良い忘れてました。
説明ありがとうございました!
>>17
調べた限りできなさそうなのですが、
見落としていたら悲しいのでよろしくお願いします。
- 19 :デフォルトの名無しさん (アウアウ Sa03-URBI):2016/08/13(土) 17:39:19.58 ID:Aue4Ysh1a.net
- >>8
へー全然しらなかったよ
- 20 :デフォルトの名無しさん (ワッチョイ 397b-3Vwo):2016/08/13(土) 17:46:13.76 ID:AXJHpXDi0.net
- >>18
うむ。COM作る方法以外知らないなぁ
- 21 :デフォルトの名無しさん (ワッチョイ 837b-rTQB):2016/08/13(土) 17:57:07.18 ID:RxJCd1dL0.net
- >>17
そもそもクラス名を書かないようにできれば呼び出せるとかそういうもんじゃない
ネイティブのエントリポイントが必要で、その形式のDLL作るのはC#/.NETでは基本無理
// 逆P/Invokeってのもないではないけど
- 22 :デフォルトの名無しさん (ワッチョイ fca5-GBh+):2016/08/13(土) 18:05:59.18 ID:wiadwCFF0.net
- >>20-21
成る程、C++で頑張ります。orz。
返答ありがとうございました。
- 23 :デフォルトの名無しさん (ワッチョイ 1e81-3Vwo):2016/08/13(土) 19:00:08.02 ID:MGPJ1QKt0.net
- >>17
C#にも名前空間ってのがある筈だが、使えなかった?
- 24 :デフォルトの名無しさん (ワッチョイ fc5e-yY6c):2016/08/13(土) 19:06:27.02 ID:NfL6H+mm0.net
- >>23
名前空間はusingで追加したら省略できるがclassは無理
DLLとして呼び出すんだろう?
- 25 :デフォルトの名無しさん (ワッチョイ 9823-MTuc):2016/08/13(土) 19:22:41.50 ID:G6XKC6nQ0.net
- >>24
using static ってのがC#6.0から新設されてのう
スタティッククラスなら、メソッドをC言語の関数のように呼び出すことが出来るようになった
- 26 :デフォルトの名無しさん (ブーイモ MM41-xYo4):2016/08/13(土) 19:26:32.98 ID:apKPt0NUM.net
- >>14,15
どうもです
- 27 :デフォルトの名無しさん (アウアウ Sa03-URBI):2016/08/13(土) 19:48:15.88 ID:cRlyFivPa.net
- 質問者が聞いてることとズレまくってることを書いてる奴って何なのw
- 28 :デフォルトの名無しさん (ワッチョイ fca5-GBh+):2016/08/13(土) 20:02:01.48 ID:wiadwCFF0.net
- IDが違うのにわっちょいの方は同じってことは・・・どいうことだ・・・?
- 29 :デフォルトの名無しさん (ワッチョイ d1d6-yY6c):2016/08/13(土) 20:08:57.38 ID:YPszTijW0.net
- 毎回IPが変わってるってことでしょ
- 30 :デフォルトの名無しさん (ワッチョイ 753c-3Vwo):2016/08/13(土) 21:01:42.66 ID:JHq6wILq0.net
- >>17
using
- 31 :デフォルトの名無しさん (ワッチョイ 217b-MTuc):2016/08/13(土) 21:01:51.06 ID:W55xp8By0.net
- >>1
スレ立て乙ー
- 32 :デフォルトの名無しさん (ワッチョイ 753c-3Vwo):2016/08/13(土) 21:07:48.17 ID:SHDX20L70.net
- >>24
これは恥ずかしい
- 33 :デフォルトの名無しさん (ワッチョイ f4cb-3Vwo):2016/08/13(土) 22:14:20.36 ID:lSMY9ktW0.net
- 名前空間に頼った省略は問題しか起こさねーぞ
mediaのColorとdrawingのColorで存分に味わっただろ
- 34 :デフォルトの名無しさん (ブーイモ MM79-xYo4):2016/08/15(月) 23:29:19.43 ID:Hp7eL4O0M.net
- .NET Coreの参考書でオススメを教えてください
CLR via c#のCore版みたいな本があればベストです
- 35 :デフォルトの名無しさん (ワッチョイ 61a6-MTuc):2016/08/15(月) 23:45:32.74 ID:h2UINGDt0.net
- そんな本はありません
- 36 :デフォルトの名無しさん (ワッチョイ 1030-VMjw):2016/08/15(月) 23:49:58.31 ID:hCHaq+GR0.net
- そもそも1.0が出てまだ1ヶ月半よ
先走りすぎよ
- 37 :デフォルトの名無しさん (ワッチョイ 753c-3Vwo):2016/08/16(火) 00:44:20.03 ID:l4SUSpSs0.net
- >>34
とりあえず公式のチュートリアル全部やっとけ
- 38 :デフォルトの名無しさん (ワッチョイ 8d4a-oUwT):2016/08/16(火) 06:58:34.06 ID:djSHB6JS0.net
- >>16
>ASP.NET Core 用にプロジェクト作成したなら、
それはどうすればいいのさ?
- 39 :デフォルトの名無しさん (ワッチョイ 393a-3Vwo):2016/08/16(火) 09:59:36.48 ID:O7qQUoku0.net
- >>38
.NET Core の VS用拡張入れたら、
プロジェクトテンプレートに↓が出てくる
ASP.NET Core Web Application (.NET Core)
- 40 :デフォルトの名無しさん (ワッチョイ 8d4a-oUwT):2016/08/16(火) 10:40:44.52 ID:djSHB6JS0.net
- >>39
本当か!
試してみるわ
サンキュウ
- 41 :デフォルトの名無しさん (ワッチョイ 8d4a-oUwT):2016/08/16(火) 12:34:45.61 ID:djSHB6JS0.net
- 試そうとしたんだがまだpreview版なの?
正式版が出てから試そうかな
- 42 :デフォルトの名無しさん (ブーイモ MMa8-3Vwo):2016/08/16(火) 13:29:18.38 ID:207Q3q1vM.net
- >>41
.NET Core SDK は正式版まだだね。
C#7 のリリースにかぶせるつもりかな。
- 43 :デフォルトの名無しさん (ワッチョイ fcf0-3Vwo):2016/08/17(水) 20:13:30.73 ID:lxfDUTb20.net
- プログラミングの知識一切ないです
unity勉強し初めたんですが、c♯が主流みたいでおもっいっきり壁にぶち当たりました。
こんなばかやろうでも理解出来るような、はじめからc♯について解説されているサイトがあれば教えてください。
- 44 :デフォルトの名無しさん (ワッチョイ 4d09-VMjw):2016/08/17(水) 20:35:55.81 ID:HDxcYxzF0.net
- こんどプログラミング教育始まるらしいよ
小学校で
- 45 :デフォルトの名無しさん (ワッチョイ 45a1-xYo4):2016/08/17(水) 20:36:48.42 ID:R33z9cm40.net
- C#を本来のC#として勉強すると却って遠回りになりかねない気はする
この辺でどうにかならんか?
http://qiita.com/hiroyuki_hon/items/0718a50e6569b6c5037a
- 46 :スッキリ厨 (ワッチョイ 677b-Vk+x):2016/08/18(木) 01:28:49.83 ID:R+8gecQh0.net
- まずこの本で、みっちりとオブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊でお茶を濁す
猫でもわかるC#プログラミング 第2版、2010
C# ルールブック、2011、監修・電通国際情報サービス
本当のプロの話をするなら、この本が絶対条件だが、
Unity如きで、そこまでせんでもいい
Effective C# 4.0、2011
まず、スッキリを3回読んで、わからなければ、専門学校へ通え
- 47 :デフォルトの名無しさん (ワッチョイ bb41-GOit):2016/08/18(木) 07:19:12.56 ID:Bii/kgVa0.net
- 初心者潰す気まんまんのおじさん怖いなぁ
おれも初心者でしかも同じくUnity使うために
C#勉強しはじめたんだけど
逆にプログラミングに目覚めて遠回り中。
まずC#って完全初心者向けの適切な本って
多分ないわけよ
だから「苦しんで覚えるC」で本当に基本的な部分を何となく掴んでから
英語できるなら
DotNetPerlっていうサイトだったり
Channel9の完全初心者向けの動画みたり
の方がいいと思う
完全初心者がオブジェクト志向を理解しようとしても
まずなんでオブジェクト志向がいいのかすらが
理解できないしなー
そろそろUnityに移行したいんだけどね
- 48 :デフォルトの名無しさん (ブーイモ MM6f-wLiW):2016/08/18(木) 07:31:19.55 ID:XogBrdRsM.net
- 遠回りしていいならC言語からやるのが一番理解が深まると思う
- 49 :デフォルトの名無しさん (ワッチョイ bb41-GOit):2016/08/18(木) 07:56:42.00 ID:Bii/kgVa0.net
- CとC#はなんだかんだ違う言語だから
Cを深追いしようとすると大変だろうけど
枯れた言語だし教える側も熟練のおっさんだから
わかりやすいよ
C入門で検索して最初に出てくる
大学基礎教養レベルのサイトもオススメ
- 50 :デフォルトの名無しさん (ワッチョイ db06-HNW7):2016/08/18(木) 10:13:16.02 ID:nHhMEyrj0.net
- 変数を箱に例えるサイトに当たってポインタで詰まる未来が見える
- 51 :デフォルトの名無しさん (ワッチョイ 6f3c-HNW7):2016/08/18(木) 18:05:51.97 ID:zlGEfHsE0.net
- staticおじさんになるんじゃないぞ
- 52 :デフォルトの名無しさん (ワッチョイ 2bb3-HNW7):2016/08/18(木) 18:11:36.14 ID:VT/uRpp60.net
- includeの下に書いたら、static不要になったよ
- 53 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/18(木) 18:17:21.37 ID:hZtSok7sd.net
- ファイルを読み込んでそのデータを少し弄って全てファイルに上書き(1から作り直し)ってのはできるんだが、
ファイルを一部だけ更新みたいなことはできないのかな?アップデートみたいな
やろうとしてるのはcsvファイルと結果出力のテキストファイルを読み込んで、
双方比較してcsvが更新されているところを更新してテキストファイルに書き込み
全上書きは別にできるけども一部更新になるとどうすりゃええのかさっぱりや
- 54 :デフォルトの名無しさん (ワッチョイ 2bb3-HNW7):2016/08/18(木) 18:24:31.83 ID:VT/uRpp60.net
- stream.Seek(1000, SeekOrigin.Begin);
stream.Write(Data, 0, Data.Length);
- 55 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/18(木) 18:33:40.38 ID:Pxb0F6SP0.net
- 固定長レコードのファイルなら行けるが
可変長レコードのファイルだと変更位置から先は全て書き直しになる
これはどうしようもない
- 56 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/18(木) 18:34:49.71 ID:hZtSok7sd.net
- >>55
固定長レコードってのは行数って思えばええかな?
新しい新規については書き足して問題ない
すでにあるデータの場合は更新したい
- 57 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/18(木) 18:35:52.78 ID:Qi6POpo5a.net
- >>53
バイナリの並びを上書きすることはできるけど、可変長のデータの
置換挿入削除は単純なテキストファイルを前提にするなら当たり前だけど出来ないよね。
- 58 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/18(木) 18:38:43.21 ID:hZtSok7sd.net
- >>57
やはり無理が生じているのか
出来ないんじゃなくてできなくて普通だったか
- 59 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/18(木) 18:45:25.83 ID:Qi6POpo5a.net
- >>58
そりゃそうでしょw
配列じゃなく連結リストみたいなデータ構造を使わないと
自由にデータの挿入削除が出来ないのと同じことだよw
- 60 :デフォルトの名無しさん (JP 0H67-8yFy):2016/08/18(木) 18:50:03.39 ID:iO4p2OMAH.net
- レコード長を大きめにとって固定長として扱えばいい
- 61 :デフォルトの名無しさん (ワッチョイ 1723-D2ET):2016/08/18(木) 19:25:41.00 ID:sh92haT+0.net
- SQLiteかmdbでいいから、DB使うべき案件だと思うわ
- 62 :デフォルトの名無しさん (ブーイモ MM6f-wLiW):2016/08/18(木) 19:55:24.05 ID:oJeK6BjxM.net
- LocalDB便利
- 63 :デフォルトの名無しさん (ワッチョイ cb51-6SVL):2016/08/18(木) 20:06:29.74 ID:ayLBcVQH0.net
- >>50
箱の中に「右を見ろ」って書いた紙が入っているんじゃないのか
- 64 :デフォルトの名無しさん (ワッチョイ 8f98-HNW7):2016/08/18(木) 21:00:35.36 ID:duLWqog20.net
- >>63
箱に例えちゃうとアドレスの話するときメンドクサイ気がするんだよな
変数って箱そのものじゃなくて箱につけるラベルに例えた方がよくないか?
- 65 :デフォルトの名無しさん (ワッチョイ d37b-eS8V):2016/08/18(木) 21:05:32.88 ID:GA+6RMKW0.net
- そもそも喩えるのが良くない
- 66 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/18(木) 21:14:36.14 ID:hZtSok7sd.net
- やはりアドバイス貰ったようにデータベース扱う案件だよな
出力がテキストファイルだと固定なんだけどその場合は間にデータベースを無理矢理挟むか諦めるかの2たくだよなぁ
挟むことによってデータの不整合起きる可能性あるし問題ばかりだ
- 67 :デフォルトの名無しさん (アークセー Sx07-HNW7):2016/08/18(木) 21:21:54.83 ID:F2CvNJ0ux.net
- ローカルにポスグレ最高
- 68 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7):2016/08/18(木) 21:40:04.67 ID:AN0ChobI0.net
- ファイルベースでバッチ処理やるならインプレースでファイルを更新するという考え方は基本的にしない
出力は入力とは別のファイルに書き出して、完了後に入力ファイルが不要なら削除する
それがCOBOL時代からの伝統的なやり方で、元来ファイルってのはそういう使い方に最適化されてるんだよ
- 69 :デフォルトの名無しさん (ワッチョイ f349-84cZ):2016/08/18(木) 21:49:23.32 ID:HWXrThBv0.net
- >>56
1行当たりの文字数が固定である必要がある。
- 70 :デフォルトの名無しさん (ワッチョイ 2f66-dPDm):2016/08/18(木) 22:28:52.87 ID:duueCbzU0.net
- フォントに関する質問です。
フォントの閉じた線分の集まりPathFigureに右回りか左回りか
の情報はありますか?
- 71 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/18(木) 23:02:21.83 ID:hZtSok7sd.net
- >>69
1行当たりの文字数が固定な必要性か…
それじゃあダメだな…可変だからなぁ
- 72 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/18(木) 23:40:36.40 ID:8xTrQ31Bd.net
- テキストファイルの出力形式が変わってももとのプログラムの出力に関してを
変更せずともできるように作りたかったけどなかなか難しいな
結果の出力順序が変わったらそのまま受け入れるのが正しいのかな
ちなみに仮文字明らかに長い文字数で設定しておいて
そこを置き換えるってのも無理なのだろうか?
data1 : %xxxxxxxxxxxxxxxxxxxxxxxxxxx
⬇
data1 : aaa
みたいに。data1をキーにvalueを変えるイメージなんだが
- 73 :デフォルトの名無しさん (ワッチョイ cb3a-HNW7):2016/08/18(木) 23:54:59.76 ID:N8DsMdm30.net
- >>72
aaaの後ろをスペース埋めするなら良いんじゃない?
配列と同じで、byte数が減るなら隙間を詰める=後続のデータを書き換える必要がある
- 74 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7):2016/08/19(金) 00:02:43.00 ID:CvT4Ryaa0.net
- >>72
柔軟にしたいなら今時CSVに拘らなくてもJSON Linesとかでよくね
- 75 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/19(金) 01:31:38.22 ID:BbnnsChy0.net
- そろそろ鬱陶しい
- 76 :デフォルトの名無しさん (ブーイモ MM6f-wLiW):2016/08/19(金) 01:53:27.07 ID:P4xUYp/0M.net
- ファイル丸ごと更新はなんとなく嫌だというだけなら認識を変える
巨大なデータなのでファイル丸ごと更新は負荷がかかるならデータベース使う
理由はないけど諸々の都合により要件に組み込まれてしまっているならデータ構造を変える
- 77 :デフォルトの名無しさん (ワッチョイ c7cb-HNW7):2016/08/19(金) 01:54:28.69 ID:/Tj1MJ5i0.net
- 設定ファイル全部スクリプトにすればどんな変更がきても対応できるよ
Luaとかpythonおすすめ
- 78 :デフォルトの名無しさん (ワッチョイ c7cb-HNW7):2016/08/19(金) 01:56:16.67 ID:/Tj1MJ5i0.net
- まあ、プログラマの単価が一番安いから呼び出して修正させたほうが早いんだけどね
- 79 :デフォルトの名無しさん (JP 0H67-8yFy):2016/08/19(金) 02:11:49.84 ID:EQW6TlvjH.net
- 昔 Windows が レジストリを採用する前に
win.ini system.ini (プレーンテキスト) を使っててトラブルの嵐だった歴史を
逆行するのを見るような
- 80 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/19(金) 06:24:06.22 ID:Pc5pGuI4d.net
- >>73
>>74
>>76
しがらみ的なもんで要件を変えられないみたいだから
諦めて全更新にしようとおもう
色々とありがとう
- 81 :デフォルトの名無しさん (スフッ Sd6f-HNW7):2016/08/19(金) 08:11:52.75 ID:eNNweXTmd.net
- ってか、seekしてその行頭にコメントマーク打って、最後の行に新規行足せばいいんでないの?
sortedだとかなんか並びに意味があるなら別だけど。
- 82 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/19(金) 09:26:36.05 ID:BbnnsChy0.net
- 要件が全て明らかにされていないのにクイズ大会続けるのはよせ
- 83 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/19(金) 12:05:40.95 ID:bujk9JqBd.net
- data1 : xxx
data2 : yyy
data3 : zzz
num1 : aaa
num2 : bbb
num3 : ccc
こんな感じのデータを一律取得して
中身を一部変更して下記に変えたい
datファイルかテキストファイルに出力し直す感じ
data1 : xxx
data2 : nnn
data3 : zzz
data4 : mmm
num1 : aaa
num2 : bbb
num3 : ccc
左がラベルで右がintかstringの値
全部一つの文字列として取得まできて
その後にdata郡に一列追加や一部更新をしたいんだが
何か良いアイデアはないだろうか
data2の値を変えるよ!→りプレイス
data4を追加するよ!→文字列に挿入
この二つがしたい
- 84 :デフォルトの名無しさん (ワッチョイ db8c-HNW7):2016/08/19(金) 12:16:52.95 ID:Y3hjpxPr0.net
- >>83
言いたい事がいまいち分からん部分があるけど、
そういうListクラスが最初から.NETに無いか?
- 85 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/19(金) 12:22:10.72 ID:bujk9JqBd.net
- >>84
こんなのあるの?
data1 : xxx
data2 : yyy
data3 : zzz
num1 : aaa
num2 : bbb
num3 : ccc
こんなデータのファイルをstring tmpに読み込んで、
tmpをわちゃわちゃして下の結果を出力できたらなんでもええかなってなってる
- 86 :デフォルトの名無しさん (ワッチョイ db8c-HNW7):2016/08/19(金) 12:42:12.39 ID:Y3hjpxPr0.net
- >>85
相変わらずはっきり分からんが、
Dictionaryじゃ駄目なのか?
- 87 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7):2016/08/19(金) 12:48:21.70 ID:CvT4Ryaa0.net
- >>68の通り、マルチレコードファイルのバッチ処理でインプレース更新は普通やらない
それによりプログラ厶全体が入力ファイルを引数として出力ファイルを返す一つのステートレスな関数と見做せ、
テストやメンテナンス、再利用が容易になる
全部出力し直しが気持ち悪く感じるならその感覚の方を直した方がいい
- 88 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/19(金) 13:10:38.57 ID:BbnnsChy0.net
- 何が必須で何が必須でないのかはっきりしないから
お節介やきの虫が必須の範囲を超えてああしたらこうしたらって言い出す
- 89 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/19(金) 13:18:10.21 ID:BbnnsChy0.net
- 72と73でいいだろうがもう解決してる話なんだよ
アーキテクチャが美しいとか美しくないとか初心者は知ったことじゃねえんだ
これ以上したり顔でアドバイスする気になってんじゃねえ
黙ってろ
- 90 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/19(金) 13:19:35.47 ID:SITb9Fi/a.net
- >>89
気付いてないみたいだけどお前さんが一番場違いなんだけどw
馬鹿じゃなかろうか。
黙ってろ?お前だろそれ
- 91 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/19(金) 13:23:24.53 ID:BbnnsChy0.net
- >>90
例外を握り潰すさん久しぶり
相談室が住処のはずでしょ?
いつから初心者になったの?
- 92 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/19(金) 13:28:37.17 ID:BbnnsChy0.net
- だいたい
>しがらみ的なもんで要件を変えられないみたいだから
>諦めて全更新にしようとおもう
>色々とありがとう
って本人が言ってるのになぜ続ける
要件は変えられないんだってよ
要件は変えられないんだってよ
JSONだの何だの言いだしてる奴は耳と頭ついてんのかクソムシが
- 93 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/19(金) 13:31:27.48 ID:SITb9Fi/a.net
- なんだか知らないけど単に性格が異常なだけでなく
頭もオカシイことだけはよく分かるな。どんな悲惨な人生歩んでるかしらんが哀れだ。
- 94 :デフォルトの名無しさん (ワッチョイ 6f23-D2ET):2016/08/19(金) 13:33:06.60 ID:Idf4jtm20.net
- >>87
今回の件には適しているとは思えんが、DBが流行る前はISAMという手法でファイルの一部を書き換えるのは一般的だっただろ
何しろ当時のストレージは磁気テープだから、1レコード更新のたびに書き換えていたら話にならなかったからね
- 95 :デフォルトの名無しさん (ワッチョイ db08-rmPz):2016/08/19(金) 13:41:47.46 ID:UpDv6oUT0.net
- ちょっと落ち着け。
話を続けるかどうかはともかく、内容が千鳥足になってる感じはする。
どこに落とすのかは最初に決めてからアドバイスせえよ。
- 96 :デフォルトの名無しさん (スップ Sdef-HNW7):2016/08/19(金) 18:14:28.58 ID:XvFK3fY5d.net
- なあ 変数名をstring型に変換とかできる?
つかいどころは思い浮かばんけども
List<string> abc;
abc.add("ab");
abc.add("bc");
abc.add("abc");
ってあったとして
if("abc[1]"==abc[1]) ←の右辺が知りたい
出力
みたいなことがしてみたい
結果としては、bcが出てくると正解
- 97 :デフォルトの名無しさん (ワッチョイ abd6-6SVL):2016/08/19(金) 18:23:26.41 ID:PifX2i8C0.net
- 変数名の取得なら
var hoge = nameof(abc);
でできるけど
>if("abc[1]"==abc[1]) ←の右辺が知りたい
これは何がしたいの?
- 98 :デフォルトの名無しさん (スップ Sd6f-HNW7):2016/08/19(金) 18:26:26.31 ID:LLlOsx2Jd.net
- >>97
少し略すけど
for(int i)
if("abc[1]"=abc[i])
こう考えてくれ
- 99 :デフォルトの名無しさん (スップ Sdef-HNW7):2016/08/19(金) 18:31:19.59 ID:3wjXryfNd.net
- abc[i]が変数名として一致したらと考えてください
- 100 :デフォルトの名無しさん (ワッチョイ d37b-eS8V):2016/08/19(金) 19:33:20.91 ID:n7Ml93yQ0.net
- その例だとif文自体いらんじゃん
もうちょっと必然性のある例が欲しいな
- 101 :デフォルトの名無しさん (ワッチョイ bf02-lWG2):2016/08/19(金) 20:28:45.34 ID:KsVkCJ+y0.net
- "abc[i]"という文字列が与えられた場合に、変数abc[i]の値を知りたいってことだろ
C# Evalあたりでググったらなんかヒントあるんじゃね
- 102 :デフォルトの名無しさん (ワッチョイ fb3c-HNW7):2016/08/19(金) 21:15:40.47 ID:zfseOXRh0.net
- すでにnameofがあげられてるだろが
- 103 :デフォルトの名無しさん (ワッチョイ bf02-lWG2):2016/08/19(金) 21:22:54.69 ID:KsVkCJ+y0.net
- >>102
変数名を取得したいならnamoeofでいいんだが
変数名が知りたいんじゃじゃくて、
変数名からその変数の値を知りたいんじゃないのかって話をしてるんだが
- 104 :デフォルトの名無しさん (ワッチョイ dbcb-rmPz):2016/08/19(金) 21:30:47.56 ID:dXcload80.net
- それなら変数名をstring型なんて言わないだろ
- 105 :デフォルトの名無しさん (ブーイモ MMa7-wLiW):2016/08/19(金) 22:08:07.52 ID:vHFGN9rUM.net
- 出来たとしてなんに使うんだろ
- 106 :デフォルトの名無しさん (ワッチョイ 6f23-D2ET):2016/08/19(金) 23:34:59.79 ID:Idf4jtm20.net
- そもそものnameofの使いドコロもよく分からん
- 107 :デフォルトの名無しさん (ワッチョイ d37b-eS8V):2016/08/19(金) 23:39:20.67 ID:n7Ml93yQ0.net
- PropertyChangedイベントとか
ArgumentException系のメッセージ作る時とか
- 108 :デフォルトの名無しさん (ワッチョイ cb3a-HNW7):2016/08/19(金) 23:48:49.31 ID:89EPNWEA0.net
- nameofは単純だけど便利になった機能の代表格だね
- 109 :デフォルトの名無しさん (ワッチョイ 6f23-D2ET):2016/08/20(土) 00:28:02.21 ID:1/Nu7lx90.net
- >>107
PropertyChanged(()=>hoge);
なら、インテリセンスも効くしnameofより短いな
ArgumentExceptionのメッセージ程度なら、コピペで十分だし
仮に多少のスペルミスが有っても何とかなる
イマイチ利用価値が不明ですわ
まあ公式に作ったんだから何らかの理由があるだろうが、ちょっと興味あるね
- 110 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/20(土) 00:36:06.93 ID:R6ay4zez0.net
- PropertyChangedイベントで使うのはそうなんだが
nameofを書くのはOnPropertyChangedの方だ
- 111 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/20(土) 00:37:47.63 ID:R6ay4zez0.net
- あと、スペルミスがどーたらこーたらについては
文字列でなければリファクタリング機能で追従できることの方が主眼だろう
- 112 :デフォルトの名無しさん (ワッチョイ 6f23-D2ET):2016/08/20(土) 00:55:10.11 ID:1/Nu7lx90.net
- >>110
ごめん、OnPropertyChanged(()=>hoge);が正解だわ
Prismだと、引数にラムダ式入れると、インテリセンス利くんだよね
- 113 :デフォルトの名無しさん (スプッッ Sdef-HNW7):2016/08/20(土) 01:14:01.40 ID:+FsAY6HRd.net
- 混乱させてすまんな
使い所なんて一切思い付いていなくて
ただ変数名を出力できれば何でも良かった
int a = 1;
Console.writeline(convert.tostring(a));
これだと1を表示させるが
aを出力させてみたかった
それを配列でもできるんかなと
a[1]とかの中身じゃなく、出力をa[1]にさせたかった
- 114 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/20(土) 02:49:26.79 ID:asaMbvjZa.net
- まあ少なくともa[1]は変数名ではないよね。
変数名はあくまでもaでしょ。
コード上の文字列をそのまま文字列として取得するコード(何言ってるのか訳わからないけど)が
欲しいってことならそんなものは無意味だね。
ソースコード上の文字列はコンパイル時に確定してるんだからそんなの
直接文字列リテラル書くのと何も変わらないでしょ。
- 115 :デフォルトの名無しさん (ワッチョイ 7bf6-HNW7):2016/08/20(土) 03:07:29.96 ID:1vm2r2jx0.net
- nameofは地味だけど実装コストもリスクも低いから入れたんだろうね
- 116 :デフォルトの名無しさん (ワッチョイ bfc6-9eTD):2016/08/20(土) 06:44:18.97 ID:pVJC6Sdr0.net
- >>115
いやいや。
コンパイラで完結して>>112みたいなオーバーヘッドを生まないからだろ
リスク低いとか関係ない
コンパイラオプションのCallerMemberNameを補うものとして入れられた
- 117 :デフォルトの名無しさん (スプッッ Sdef-HNW7):2016/08/20(土) 08:32:34.40 ID:N/12Rv8ld.net
- ないか
なんかのテンプレ作ってそこには配列番号として入れよう…みたいなことをしようとしてたけど無理っぼいね
流れを一回考え直すわ
- 118 :デフォルトの名無しさん (ワッチョイ ebdc-be1M):2016/08/20(土) 11:52:22.97 ID:B6Zc+FaI0.net
- >>116
実装コストやリスクというのはコンパイラを実装する側にとっての話だと思うよ。
例えばasync/awaitみたいなクソ複雑な機能はどうしてもバグが入りやすいわけ。
コンパイラにバグがあるままリリースしてしまうと後で非常に直しづらくなってしまうから、
テストを無茶苦茶しっかりやらなきゃいけない。コストとリスクというのはそういうこと。
その点nameofは実装もテストも簡単。ラムダやLINQみたいに文法に大きく手を入れるわけでもない。
- 119 :デフォルトの名無しさん (ワッチョイ 77c9-ECR0):2016/08/20(土) 13:15:37.71 ID:dVX2KuZX0.net
- nameof(abc) + "[" + i.ToString() +"]"
$"{nameof(abc)}[{i}]"
いくらでもあるが
- 120 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/20(土) 13:38:20.78 ID:CiESb+Iia.net
- どうでもいいけどToStringは不要だよw
- 121 :デフォルトの名無しさん (ワッチョイ abd6-6SVL):2016/08/20(土) 13:56:19.19 ID:p35lV3XS0.net
- >>120
VBスレに帰れ
- 122 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7):2016/08/20(土) 14:01:32.90 ID:B6Zc+FaI0.net
- 何でも明示的に書かないと気が済まない人なら>>119の下の方の{}内もToString省いちゃダメよ
- 123 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/20(土) 14:17:45.67 ID:CiESb+Iia.net
- >>121
おいおいw
ToStringが不要な理屈もわからない程度の人間は人をVBer呼ばわりかよw
- 124 :デフォルトの名無しさん (ワッチョイ abd6-6SVL):2016/08/20(土) 15:00:56.27 ID:p35lV3XS0.net
- ああ左辺がstringだからか
すまんな
- 125 :デフォルトの名無しさん (ワッチョイ 7bf6-HNW7):2016/08/20(土) 15:21:43.57 ID:1vm2r2jx0.net
- >>116
リスクは文法的にもあって、よく考えずに機能追加するとその機能をなくすわけにはいかなくて将来的な機能追加の際に矛盾や手間が生じることがある
Roslynでタプルとかパターンマッチングで長いこと議論してるのもそれを防ぐため
一回実装を作ったけど正式版に入れず、パターンマッチング入れるときに一緒に再検討するわってなってるissueが結構ある
- 126 :デフォルトの名無しさん (スプッッ Sdef-HNW7):2016/08/20(土) 16:36:58.64 ID:feu//gSLd.net
- >>119
俺も結論これになったわ
>>114のレスを参考にして
ありがとう
- 127 :デフォルトの名無しさん (ワッチョイ 77c9-ECR0):2016/08/20(土) 18:37:53.94 ID:dVX2KuZX0.net
- +だと頭にstring以外が来た時にToStringつけることになって統一できないから中に書くときもToStringするようにしてるんだよね
別にJSみたいに""+ってやればいいんだろうけども
- 128 :デフォルトの名無しさん (ブーイモ MM6f-wLiW):2016/08/20(土) 18:43:34.78 ID:jBkZ+arHM.net
- +演算子で次元の異なる項を繋げるのが心地悪い派の人はToStringして書くよね
- 129 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/20(土) 18:53:24.93 ID:Z40WUM3ma.net
- >>127
>+だと頭にstring以外が来た時にToStringつけることになって
ならないよw
https://msdn.microsoft.com/ja-jp/library/k1a63xkz.aspx
- 130 :デフォルトの名無しさん (ワッチョイ 77c9-ECR0):2016/08/20(土) 20:23:12.46 ID:dVX2KuZX0.net
- >>129
マジだ
Javaと同じでなると思い込んでたし>>127もJavaのときからの癖だから完全に思い込みだった
- 131 :デフォルトの名無しさん (ワッチョイ d37b-eS8V):2016/08/20(土) 21:14:42.59 ID:+QWhmcFO0.net
- 非文字列 + 非文字列 + 文字列
なら問題だし…
まあ今となってはもう$""で全部済ませてもいいような気がするけど
- 132 :デフォルトの名無しさん (ワッチョイ c7cb-HNW7):2016/08/20(土) 23:06:07.27 ID:I8KEPvsp0.net
- デバッグ版じゃ起きないストップ系のバグ追ってるときに
ソースファイル名とメソッド名と周辺の変数名とその値を出したいときはある
- 133 :デフォルトの名無しさん (ワッチョイ 6f23-D2ET):2016/08/20(土) 23:17:01.50 ID:1/Nu7lx90.net
- >>132
そういう時は、大体出力位置の近くで変数を使っているから
変数名をコピペしたほうが早いと思うわ
- 134 :デフォルトの名無しさん (ワッチョイ c7cb-HNW7):2016/08/20(土) 23:59:51.75 ID:I8KEPvsp0.net
- >>133
全くわからないって状況の作戦だから
機械的にすべてのメソッドで出力したいんだけど
そんな機能ないんだよね
- 135 :デフォルトの名無しさん (ブーイモ MM6f-wLiW):2016/08/21(日) 11:47:12.64 ID:ks5UHXiEM.net
- InとOutは気になるけど変数が気になる事は滅多にない
そのためだけに変な機能追加されるのはちょっと…
- 136 :デフォルトの名無しさん (ワッチョイ db8c-HNW7):2016/08/21(日) 12:08:15.53 ID:2IjB3D5o0.net
- >>132
ストップ系のバグってどういうやつ?
例外処理忘れとか?
- 137 :デフォルトの名無しさん (ワッチョイ 675e-6SVL):2016/08/21(日) 14:29:48.93 ID:I3WTYBIb0.net
- デバッグだと動くけどRelease版ビルドしてみたらエラーになったってことは何回かあるなw
try-catchで囲んでおけばcatchはしてくれるんだが
デバッガで見つけられないんで当たり付けて検証用コード入れて変数表示しながらチェックしていた
- 138 :デフォルトの名無しさん (ワッチョイ 4f90-D2ET):2016/08/21(日) 14:43:24.19 ID:5a3gdZHH0.net
- お前らVS のバージョン幾つつかってる?
俺VS2010 古すぎるかな。
- 139 :デフォルトの名無しさん (ワッチョイ d3c0-D2ET):2016/08/21(日) 14:51:22.35 ID:paqk3e4j0.net
- 仕事で未だにVS2010縛りなのが辛い
async/await使いたいよ
- 140 :デフォルトの名無しさん (ワッチョイ f349-84cZ):2016/08/21(日) 14:58:57.44 ID:vxp5N5TZ0.net
- >>139
っ Microsoft.Bcl.Async
- 141 :デフォルトの名無しさん (ワッチョイ 4f90-D2ET):2016/08/21(日) 15:14:57.49 ID:5a3gdZHH0.net
- >>139 >>140
そんな製品でてたのか。
- 142 :デフォルトの名無しさん (ワッチョイ cb3a-HNW7):2016/08/21(日) 15:20:44.70 ID:rj7c0P/h0.net
- Windows Mobile の開発案件降ってきて、VS2008使ったわ。
System.Core.dll読まないと色々出来ないこと多いねぇ。
- 143 :デフォルトの名無しさん (ワッチョイ db4a-lWGj):2016/08/21(日) 16:46:04.27 ID:LVvSDMx80.net
- svhost.exeって何よ?
- 144 :デフォルトの名無しさん (ワッチョイ 17ff-TwJM):2016/08/21(日) 16:57:26.86 ID:9HvdvFgU0.net
- サービスを実行するためのもの
- 145 :デフォルトの名無しさん (ワッチョイ 17ff-TwJM):2016/08/21(日) 16:58:02.19 ID:9HvdvFgU0.net
- ってそりゃ svchost か、、、、 svhost はわからん
- 146 :デフォルトの名無しさん (ワッチョイ db4a-lWGj):2016/08/21(日) 17:00:12.29 ID:LVvSDMx80.net
- >>144
何のサービスよ?
- 147 :デフォルトの名無しさん (ワッチョイ c7cb-HNW7):2016/08/21(日) 17:05:31.11 ID:VzoLMAMq0.net
- >>137
そんな状況になるよね
MSのクラスとか落ちるときあるしね
- 148 :デフォルトの名無しさん (ワッチョイ 17ff-TwJM):2016/08/21(日) 17:25:15.99 ID:9HvdvFgU0.net
- >>146
いや、、、サービス全般
起動すると svchost.exe が個々のサービスを子プロセスとして起動する
サービスってデーモンのことね
- 149 :デフォルトの名無しさん (ワッチョイ df73-D2ET):2016/08/21(日) 18:01:19.42 ID:6BM+Z7tN0.net
- 質問ですが、今R232で接続しているものが
USBでも接続できるみたいなのでUSBで制御してみたいのですがいい方法が教えてくれませんか。
調べた範囲で
CDCはPIC通信で使う用で使えない?
LibUsbDotNetを登録して↓で通信を試してみたのですが MyUsbDevice = null になり接続先が見つかりません。
//ベンダーID、プロダクトIDが間違っていないと思うので、接続先が見つからない原因がわからないです。
using LibUsbDotNet;
using LibUsbDotNet.Main;
private void button1_Click(object sender, EventArgs e)
{
UsbDevice MyUsbDevice;
UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x058F, 0x6366);//ベンダーID、プロダクトID
MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);
if (MyUsbDevice == null) throw new Exception("通信不可");
}
- 150 :デフォルトの名無しさん (ワッチョイ db8c-HNW7):2016/08/21(日) 18:28:31.13 ID:2IjB3D5o0.net
- >>149
何したいのか分からんが、普通にSerialPortクラスじゃだめなのか?
- 151 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/21(日) 18:29:52.67 ID:DgJ/lQO2a.net
- >>149
その質問の仕方じゃ誰も回答してくれないと思うよw
せめて相手のデバイスが何かぐらい書いた方がいいんじゃないの?
- 152 :デフォルトの名無しさん (ワッチョイ db4a-lWGj):2016/08/21(日) 19:15:25.11 ID:LVvSDMx80.net
- >>148
そのsvhost.exeが有ると何がいいのさ?
- 153 :デフォルトの名無しさん (ワッチョイ df73-D2ET):2016/08/21(日) 19:22:08.02 ID:6BM+Z7tN0.net
- >>150>>151
今はD-sup9pin-D-sup9pinでPC同士を接続しているんですが
ノートPC側でD-sup9pinが無いのもあるのでD-sup9pin-D-sup9pinを
USB-USBケーブルでつないで同じことをできないかなと思って調べています。
ノート側は変換ケーブルを使えばいけるけど、今後の為やれないかなと思っているんですが。
SerialPortクラスでUSBケーブルでつないで同じことがやれるのかな?
自分の調べた範囲だとできそうにないので参考になるサイト教えてもらえると助かります
- 154 :デフォルトの名無しさん (ワッチョイ 4b1e-HNW7):2016/08/21(日) 19:59:57.12 ID:zJoAoSIM0.net
- >>153
相手側のデバイス(製品名)はなんなのん?
ベンダIDとデバイスIDでググると中身はMulti Flash Readerみたいだけど
http://pcidatabase.com/search.php?device_search_str=v
- 155 :デフォルトの名無しさん (ワッチョイ df73-D2ET):2016/08/21(日) 20:18:17.66 ID:6BM+Z7tN0.net
- >>154
相手側は会社いかないとわからないんです。
↑のコードは家のPCのUSBハードディスク等を認識できるかためしていたのです。(何だったか覚えてない)
↓これはBUFFALOのUSBメモリです。(これであってるのかな)
UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x0EA0 0x2168)
- 156 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/21(日) 20:32:30.78 ID:Dux4CGuya.net
- >>155
結局何がしたいのかよく分からないし、俺自身はLibUsbDotNetとやらを
使ったことがないんで間違ってるかもしれないが、LibUsbDotNetを使って
アクセスしたいデバイスのドライバは(infファイルを書き換える等の方法で)
WinUSBである必要があるんじゃないの?
ついでに言うと、それでLibUsbDotNetでアクセスできるようになったとしても、
当たり前だけど使うエンドポイントや通信プロトコルはデバイスごとの独自実装だから
そのデバイスの仕様が分からない限り何も出来ないと思うよ。
- 157 :デフォルトの名無しさん (ワッチョイ df73-D2ET):2016/08/21(日) 20:57:48.80 ID:6BM+Z7tN0.net
- >>156
LibUsbDotNetで認識しないと何も試せないなと思って聞いてみましたが
WinUSBとかもう少し調べてみます。ありがとうございました。
- 158 :デフォルトの名無しさん (ワッチョイ ef9f-ODkp):2016/08/21(日) 21:00:04.02 ID:ZpLYPGtl0.net
- USBプロトコルの規格外の事をやりたいんじゃないの?
ドライバ書けば出来るかもしれないしUSBホストコントローラを専用に
設計し直すとこから始めないといけないかもしれない
完全にC#の範疇ではない
- 159 :デフォルトの名無しさん (ワッチョイ 4b1e-HNW7):2016/08/21(日) 21:09:24.86 ID:zJoAoSIM0.net
- デバイスの開発元がUSB用のドライバ公開していそうなもんだけど
もしくは、取説に制御方法書いてあるとか
- 160 :デフォルトの名無しさん (ワッチョイ df4a-NRoR):2016/08/21(日) 21:10:37.11 ID:szKxnr3V0.net
- 次のうち、当てはまるものを選べ?
・その機械は、RS-232CでPCと通信できる
・その機械は、USBでPCと通信できる(汎用ドライバ)
・その機械は、USBでPCと通信できる(専用ドライバ)
・PCに、RS-232Cポートがある
・PCに、RS-232Cポートがない
・PCに、「変換ケーブル(USB接続のRS-232Cポート)」をつなぐ
- 161 :デフォルトの名無しさん (ワッチョイ f349-84cZ):2016/08/21(日) 21:13:54.55 ID:vxp5N5TZ0.net
- >>153
そもそもPC⇔PCはどちらもUSBホストなのでケーブルだけで繋げないよ。
- 162 :デフォルトの名無しさん (ワッチョイ df73-D2ET):2016/08/21(日) 21:26:24.72 ID:6BM+Z7tN0.net
- >>159>>160
デバイスの開発元がUSB用のドライバは公開している
取説に制御方法書いていました。 内容はRS-232Cと同じ
・その機械は、RS-232CでPCと通信できる
・その機械は、USBでPCと通信できる(専用ドライバ)
・PCに、RS-232Cポートがある
・PCに、「変換ケーブル(USB接続のRS-232Cポート)」をつなぐ
RS-232Cポートはあるけど、
USBで制御できるみたいなのでやれる目処をつけたいなと思ってます。
- 163 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/21(日) 21:39:24.39 ID:Dux4CGuya.net
- >>162
制御方法が書いてあるぐらいなら専用USBドライバと一緒にdllもついてるでしょw
なぜ素直にそれを使わずにLibUsbDotNetを使うの?
っていうか、どうしてそう頑なに具体的なデバイス名を明かしたくないの?w
- 164 :デフォルトの名無しさん (ワッチョイ f349-84cZ):2016/08/21(日) 22:14:34.26 ID:vxp5N5TZ0.net
- >>162
そのドライバーはUSBで繋いでも仮想のCOMポート(RS-232C)に見えるタイプだろ。
ドライバーをインストールして、(必要ならCOMポート番号を設定して)、
SerialPortクラスで今まで通り制御するだけだぞ。
- 165 :デフォルトの名無しさん (ワッチョイ df73-D2ET):2016/08/21(日) 22:37:25.58 ID:6BM+Z7tN0.net
- >>163>>164
取り説軽く見ただけなのでわからないけど、それなら何もしなくてよさそう確認してみます。
助かりましたありがとうございます。
- 166 :デフォルトの名無しさん (ワッチョイ ab17-bKw2):2016/08/21(日) 22:46:48.67 ID:0CARPj6M0.net
- (なんで >>161 がスルーされてるんだろう。直結でやるなら一番重要そうなことなのに。)
- 167 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/21(日) 22:57:30.28 ID:Dux4CGuya.net
- >>166
実際はそういう製品も存在するよw
もちろん内部的には双方のホストからデバイスに見えるだけで、
USBの企画上ホスト対ホストがあるわけじゃないけどね。
- 168 :デフォルトの名無しさん (ワッチョイ db8c-HNW7):2016/08/22(月) 02:27:50.99 ID:7w77Vh180.net
- なんかもう、ものすごく馬鹿なのかと思う。
- 169 :デフォルトの名無しさん (ワッチョイ bfeb-D2ET):2016/08/22(月) 13:20:23.33 ID:HM+rrgAV0.net
- C#初心者はl、独習C#で始めるのが良い
- 170 :デフォルトの名無しさん (アウアウ Sa47-wLiW):2016/08/23(火) 10:04:09.31 ID:Pa9Uofyma.net
- コンストラクタ内で別のクラスを返したいんだけど。
class Shape { Point origin; }
class Circle : Shape { double r; }
class Triangle : Shape { Point a, b, c; }
みたいな感じで、ファイルから読んでクラスを決める
public Shape(StreamReader r)
{origin.x=r.ReadByte(); origin.y=r.ReadByte();
// その他、共通の初期化
switch(r.ReadByte())
case 1:this=new Circle(r); break; // 続きは各クラス内で
case 2:this=new Triangle(r);break;
}
}
こんなイメージなんだけど
- 171 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/23(火) 10:11:48.68 ID:6POiz1Kha.net
- >>170
コンストラクタじゃなくてファクトリーメソッドでいいでしょ
- 172 :デフォルトの名無しさん (アウアウ Sa47-wLiW):2016/08/23(火) 10:27:53.96 ID:Pa9Uofyma.net
- >>171
今思いついた。
class Shape {
public Init(StreamReader r){ return new Circle(r);}
}
s=new Shape().Init(r)
これでいいのか?
- 173 :デフォルトの名無しさん (ワッチョイ 4fe1-HNW7):2016/08/23(火) 10:45:02.64 ID:3XGzHbAv0.net
- >>172
それだとInitの呼び忘れがあるだろ
ファクトリーメソッドでググったか?
- 174 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7):2016/08/23(火) 11:28:03.95 ID:0RGf95YO0.net
- >>172
名前が悪い
var s = new ShapeReader(reader).ReadShape();
これならおかしくはない
もしくは上の人も言ってるようにファクトリメソッドで
var s = Shape.FromStream(reader);
- 175 :デフォルトの名無しさん (スププ Sd6f-HNW7):2016/08/23(火) 11:57:38.54 ID:ZcVGgUHod.net
- みんな言ってるけど、Factoryがこれほど似合うパターンは無いな。
Shapeはabstruct classにして、
staticな関数として、
Shape createInstance(StreamReader s)
を作って、各子クラス返えす。
あとは要りそうな関数をabstructで定義しとけば便利じゃないかな。
- 176 :デフォルトの名無しさん (ワッチョイ ebdc-HNW7):2016/08/23(火) 12:23:20.88 ID:0RGf95YO0.net
- >>175
ちゃんとfactoryやるならfactory自体も抽象化した方がいいよ
Func<StreamReader, Shape>(もちろんインターフェイスでもいいけど)を外から受け取るようにする
そうすることで特定のファクトリメソッドがすべての派生クラスを知っている必要がなくなり、
派生クラスの追加や単体テスト時の差し替えが容易になる
パブリックなライブラリでstaticなファクトリメソッドが多いのは、
その性質上ありうる派生クラスが決まっていることが多いし利用者の利便性を優先しているため
アプリだと派生クラスがポコポコ増えるので考え方は違ってくる
- 177 :デフォルトの名無しさん (スププ Sd6f-HNW7):2016/08/23(火) 14:51:59.69 ID:ZcVGgUHod.net
- >>176
いやー、Shapeは流石に、既にかなり抽象的じゃないの?
逆に、Factoryが派生クラスを知ってる範囲で作るべきだとは思うけどな。こういうのは。
ShapeのcreateInstanceに、インスタンス生成関数のデリゲート渡せれば十分では?Javaでもあるまいし。
- 178 :デフォルトの名無しさん (JP 0Ha7-wLiW):2016/08/23(火) 15:00:53.30 ID:+9SSiQLZH.net
- >>175 他
イマイチわかってない
整理すると、
public class Shape {Point origin; // 共通のメンバー変数
}
public class Circle : Shape {double r;// 個別のメンバー変数
}
public class Factory{
static Shape Facrory(StreamReader r){
Shape s;
s.origin.x=r.ReadByte();s.origin.y=r.ReadByte(); // 共通の初期化
switch(r.ReadByte()){
case 1:s=new Circle(s, r);break;// Shapeも渡すのか?
}
return s;
}
先に作った親インスタンスを子にキャスト?コピー?出来ない?
Streamの頭に共通部があって、その後個別のデータが来て、共通部も持ってないと困るんだけど、別途持つしかないかな。
- 179 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/23(火) 15:29:21.18 ID:1+adrTFO0.net
- そもそもクラスと継承を半端に理解してるから
こんな下らないことになっているのではないか
https://ideone.com/iKZ5UJ
- 180 :デフォルトの名無しさん (アウアウ Sa47-wLiW):2016/08/23(火) 16:17:44.30 ID:L2g0FUtna.net
- >>179 thx
やっぱ共通部のメンバーは別途持って、子クラスに渡してあげるしかないのね。
ありがと
- 181 :デフォルトの名無しさん (スププ Sd6f-HNW7):2016/08/23(火) 16:56:14.55 ID:ZcVGgUHod.net
- >>180
別途持って?
あんな分かりやすいサンプル見てそういう感想なの?
- 182 :デフォルトの名無しさん (ワッチョイ db98-rmPz):2016/08/23(火) 17:40:46.64 ID:zVNOW8Fb0.net
- 俺も下らないって煽ったし別にいいんでね
- 183 :デフォルトの名無しさん (アウアウ Sa47-wLiW):2016/08/23(火) 17:43:37.24 ID:L2g0FUtna.net
- >>181
public static Shape FromStream(Stream stream)
の中で、x,yを別途持ってて、子クラスにstreamと合わせて渡してあげるんだよね。
共通の初期化部分だけで1つのクラスかstructにして、親クラスのインスタンスで持つ。
一時的な親クラスを起こして、子クラスの中でコピー後に殺すとかgcに任すとコストかかるだろうし。
- 184 :デフォルトの名無しさん (ワッチョイ db98-rmPz):2016/08/23(火) 17:51:14.99 ID:zVNOW8Fb0.net
- 初心者のうちからあまり神経質になってると、やる気が枯れてしまうぞ
- 185 :デフォルトの名無しさん (スププ Sd6f-HNW7):2016/08/23(火) 18:10:50.79 ID:ZcVGgUHod.net
- >>183
別途持ってるも何も、Circleの自分のプロパティだよ。継承してんだから。
子クラスのインスタンスで持ってるよ。
xとyは確かにコピー渡しだけど、プリミティブだからスタック乗って、そのまま居なくなるだろ。
理解しきってないのにコストとか考えない方がいいんでないの?
- 186 :デフォルトの名無しさん (スププ Sd6f-HNW7):2016/08/23(火) 18:15:21.17 ID:ZcVGgUHod.net
- base(x,y)は何者だと思ってるんだろうか。
ShapeはCircleではないが、CircleはShapeなんだから、キャストもへったくれも無いし、コピーする必要があるとかマジでわからん。
もしかしてIL上そんな表現になんの?
仮想関数ではなくて、プロトタイプの拡張みたいな真似してるのか?
- 187 :デフォルトの名無しさん (アウアウ Sad7-ZKfe):2016/08/23(火) 19:13:32.71 ID:C9GDU1A7a.net
- 質問者そっちのけで盛り上がってまんな
いや別に批判してるわけじゃないよw
- 188 :デフォルトの名無しさん (アウアウ Sa47-wLiW):2016/08/23(火) 19:15:45.80 ID:L2g0FUtna.net
- >>185 186
えーと。頭悪くてすまん。179だと、
子のCircleは(Factoryも)親がどう初期化されるかを知ってなきゃいけない。今回だと x, yをReadByte()
で、一時的に親を作って初期化すれば知らなくて済む。
みたいな事を考えてたんだけど
public class Factory{
public static Shape FromStream(Stream stream){
Shape s=new Shape(stream);
// int x = stream.ReadByte();
// int y = stream.ReadByte();
switch (stream.ReadByte()){
case 0:return s;
case 1:return new Circle(s, stream);//sはgcで殺す
default:throw new Exception();
}
}
}
public class Circle : Shape {
public double r;
public Circle(Shape s, Stram stream)
{base.init(s); // 親の初期化 :base(s)でいいか
r=stream.ReadByte();
}}
- 189 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/23(火) 20:16:30.27 ID:1+adrTFO0.net
- もちろんShapeがShapeを受け取ってもいいのよ(コピーコンストラクタ)
https://ideone.com/iKZ5UJ
- 190 :デフォルトの名無しさん (ワッチョイ 7730-rmPz):2016/08/23(火) 20:18:16.40 ID:1+adrTFO0.net
- URLが古かった
https://ideone.com/z8FM2j
- 191 :デフォルトの名無しさん (ワッチョイ f349-84cZ):2016/08/23(火) 21:31:33.19 ID:k64u2YsN0.net
- Shapre.Shape(Stream)を作るなら、
元のMemoryStreamをType, X, Y, (r)って順番にして、Circle.Circle(Stream)も作ったら。
public Circle.Circle( Stream stream )
: base( stream )
{
this.r = stream.ReadByte();
}
- 192 :デフォルトの名無しさん (アウアウ Sad7-HNW7):2016/08/23(火) 21:50:38.15 ID:ua608nkia.net
- >>188
Shapeが行う初期化はShapeを継承したCircleがやってる。Circleのbase。
Circleでは、原点の初期化してないでしょ。
ただ、ベースクラスのコンストラクタを書いてあるだけ。
一時的に親を作るも何も、子は親そのものでもあるんだから、子のメソッド使えばいいじゃん。
- 193 :デフォルトの名無しさん (ブーイモ MM6f-wLiW):2016/08/23(火) 22:48:29.33 ID:oA5rWJesM.net
- シリアル化でいいじゃん
- 194 :デフォルトの名無しさん (ワッチョイ 677b-Vk+x):2016/08/24(水) 00:03:58.53 ID:WeNRmuBC0.net
- 自製のデザインパターンかい?
「Effective C# 4.0、2011」を読みな
- 195 :デフォルトの名無しさん (ワッチョイ cb3a-HNW7):2016/08/24(水) 23:03:03.11 ID:vDf01Mys0.net
- >>194
書き込みに釣られてKindle版をポチってみた。
内容的には初歩の部分から書いてあって入門書の後に良さそう。
ちょっとくどい言い回しもあるけど、翻訳だから仕方ないか。
- 196 :デフォルトの名無しさん (ワッチョイ df41-hMGK):2016/08/25(木) 08:05:31.66 ID:grn46Te30.net
- あの翻訳はちょっとキツイっすわ
- 197 :デフォルトの名無しさん (ワッチョイ 68d4-hifv):2016/08/25(木) 14:18:42.12 ID:FPU8kcQL0.net
- ラムダ式とLinqの問題集みたいなのってありませんか?
- 198 :デフォルトの名無しさん (ブーイモ MMcd-t1qj):2016/08/25(木) 14:50:33.92 ID:qCyyh5n+M.net
- SQLの問題集でも買えよ
LINQに拘る必要は全く無い
- 199 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/25(木) 15:06:32.40 ID:dURn6wW4a.net
- >>197
お題スレでリクエストしてみるとか。
ラムダは問題集になるほど内容ないよw
- 200 :デフォルトの名無しさん (ワッチョイ 7999-FJIZ):2016/08/25(木) 16:19:49.88 ID:wSpRktRj0.net
- LINQ芸みたいなのを望んでるのか?
- 201 :デフォルトの名無しさん (ワッチョイ 68d4-hifv):2016/08/25(木) 17:38:43.75 ID:FPU8kcQL0.net
- LINQ芸というのかはわかりませんが、プロらしい記述をできるようになりたいんです
- 202 :デフォルトの名無しさん (ブーイモ MMcd-qQHP):2016/08/25(木) 18:51:36.97 ID:sgUV9GRkM.net
- プロの書くLinqは流れるようにメソッドチェインして美しい
初心者が書くとやたらとネストして悲しい気持ちになる
- 203 :デフォルトの名無しさん (ワッチョイ 7ddc-t1qj):2016/08/25(木) 18:57:55.62 ID:MmwMpV4v0.net
- COBOL時代さながらのコピペだらけの一行一行コーディングの方がある意味プロっぽいと思うけどな
この国の標準的なスキルの現場では、LINQやラムダを活用した抽象度の高いコードはレビュワーが理解できなくて差し戻し
- 204 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/25(木) 19:28:21.67 ID:dURn6wW4a.net
- またそれだけど、クエリ式は嫌いな人いるけどメソッド形式まで否定する人なんてまずいないでしょ?
ラムダ式まで否定するような奴はただの論外の無能だ。
- 205 :デフォルトの名無しさん (ワッチョイ 2dd6-dmM4):2016/08/25(木) 19:31:05.22 ID:U0LBqP7Z0.net
- いつものおじさんだな
- 206 :デフォルトの名無しさん (ワッチョイ 745b-qQHP):2016/08/25(木) 21:01:27.76 ID:qCQm6gES0.net
- ネストしてるlinqってどんなの?
逆に気になる。
- 207 :デフォルトの名無しさん (アウアウ Sa45-KSG3):2016/08/25(木) 21:06:37.97 ID:/5BbJmEUa.net
- bluetoothデバイス(マウスとか)の通信内容をコードで拾いたいのですが、
シリアル通信というものとの関係がわかりません。
初心者向けのサイトとかってないですか。
- 208 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/25(木) 21:25:01.50 ID:dURn6wW4a.net
- >>207
初心者の手におえる話じゃないと思うw
まずBluetoothのHIDの実装から理解する必要があるんじゃないの?w
- 209 :デフォルトの名無しさん (アウアウ Sa45-KSG3):2016/08/25(木) 21:43:29.06 ID:/5BbJmEUa.net
- ありがとうございます。
BluetoothのHIDの実装からググってきます
- 210 :デフォルトの名無しさん (ワッチョイ d51e-t1qj):2016/08/25(木) 22:08:59.67 ID:sWxqL1bB0.net
- >>201
とりあえずこれ読んどき
https://www.amazon.co.jp/dp/4774149756
- 211 :デフォルトの名無しさん (オイコラミネオ MM34-t1qj):2016/08/27(土) 10:14:43.52 ID:duxgOUpsM.net
- FirstOrDefaultで抽出してif文でnull判定するcodeを見るのが嫌
- 212 :デフォルトの名無しさん (ワッチョイ 3d4a-pcMj):2016/08/27(土) 10:19:43.26 ID:QM5rEsPk0.net
- DockPanelSuiteでDockingWindowを左側に1つだけ表示しているのですが
その同じ領域の下部にもう1つDockingWindowを表示して上下に2つ並べる場合は
SplitContainerが必要でしょうか?
- 213 :デフォルトの名無しさん (ワッチョイ 7f49-MiIF):2016/08/27(土) 12:05:47.58 ID:AzZGGFlW0.net
- >>211
どういうコードなら良いの?
- 214 :デフォルトの名無しさん (スプッッ Sdc8-t1qj):2016/08/27(土) 14:48:35.45 ID:oHWB6vBcd.net
- エラーハンドラみたいなの静的にを作っておいて
そこでエラーの文章とかを作成
そしてそれを集約例外に投げる
こんな感じの処理って普通?
- 215 :デフォルトの名無しさん (ワッチョイ b94a-hifv):2016/08/27(土) 17:44:06.89 ID:ZCfqwLYC0.net
- Win10のVS2015のC#で4.6.2の設定のConsoleプロジェクトで、
参照しているDLLの中に
1.0
2.0
3.5
4.0
などの古い環境でビルドしたDLLが混じっていても問題ないですか?
- 216 :デフォルトの名無しさん (ワッチョイ 9c5e-dmM4):2016/08/27(土) 17:51:41.04 ID:I2eF5JnT0.net
- >>215
CLRのバージョンが替わると原則互換性は保証されない事になっている
https://msdn.microsoft.com/ja-jp/library/bb822049%28v=vs.110%29.aspx
4.6.2なら4.0以降のみOK
- 217 :216 (ワッチョイ 9c5e-dmM4):2016/08/27(土) 17:59:32.01 ID:I2eF5JnT0.net
- ああ、動作環境で全てのCLRが入っているのなら問題ないか。ごめんw
- 218 :デフォルトの名無しさん (ワッチョイ b94a-hifv):2016/08/27(土) 18:13:48.57 ID:ZCfqwLYC0.net
- >>217
Win10クリーンインストールしたので
たぶん .net 4.6 しか入っていません。
- 219 :デフォルトの名無しさん (ワッチョイ 9c5e-dmM4):2016/08/27(土) 18:27:36.92 ID:I2eF5JnT0.net
- >>218
それなら1.0、2.0(3.5)相当のCLRをインストールするか4.0より前のものを参照するのを止めるか、どちらかにするのが無難
ついでに1.1以前は既にサポート外だから、いっそのこと現在の環境でDLLを全部ビルドしなおすのが一番無難かと
- 220 :デフォルトの名無しさん (スップ Sdb8-t1qj):2016/08/28(日) 13:03:52.77 ID:KugZAG5ld.net
- 集約例外にenumの型を投げることってできな…い?
メインのとこにenumで指定した番号だけ投げてメインでswitchなりなんなり使用して分岐させたいのだが
- 221 :デフォルトの名無しさん (ワッチョイ 7999-FJIZ):2016/08/28(日) 13:13:26.86 ID:h1JFz9az0.net
- C#用語使って喋れ
何言ってるんだか分かんねえよ
もしくはideoneかdotnetfiddleに「こう書きたい」ってC#のソースコード貼れ
- 222 :デフォルトの名無しさん (ワッチョイ 7999-FJIZ):2016/08/28(日) 13:19:24.91 ID:h1JFz9az0.net
- そもそもExceptionの派生型以外スローできないって理解してる?
じゃあenumの型を投げるとは?
- 223 :デフォルトの名無しさん (ワッチョイ 7f49-MiIF):2016/08/28(日) 13:22:33.99 ID:Nm6ziFTm0.net
- Exceptionクラスを継承してEnumのフィールドを追加したクラスを作れば良いじゃん。
- 224 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/28(日) 13:29:52.05 ID:0rJ/vUpYa.net
- それ以前に、そもそも個別の例外ごとに特別な処理が必要なら
一体何のために例外処理を集約するのかなっていう素朴な疑問が。
例外処理に明るいわけじゃないんで自信持って言えないけど、集約例外ってログを取りたいとか、
想定外の例外が起こった時に最低限ユーザーにメッセージぐらい表示したいとか、
その程度しか使い道ないと思うんだけど。
- 225 :デフォルトの名無しさん (スップ Sdb8-t1qj):2016/08/28(日) 13:31:40.36 ID:aVh8+nVCd.net
- エラー番号に応じてなんか表示させたいんでは
- 226 :デフォルトの名無しさん (ワッチョイ 9c5e-dmM4):2016/08/28(日) 13:38:34.46 ID:8HlIAn4s0.net
- 複数のメソッドで似たような例外処理があったときに(表示メッセージとか)同じ記述をするのと
可読性が良くなるから例外処理をクラスにしてまとめた事はあるな
Enumでどうしたいのか、どう必要なのか今一わからないけど
というわけで>>221の最後の行に賛成
- 227 :デフォルトの名無しさん (ワッチョイ b98c-t1qj):2016/08/28(日) 13:40:07.31 ID:XHPIJZGd0.net
- まさか、例外処理を通常の条件分岐処理のように使おうとしてないか?
例外処理は、あくまで「例外」のための処理だぞ。
- 228 :デフォルトの名無しさん (ワッチョイ 9c5e-dmM4):2016/08/28(日) 13:44:41.11 ID:8HlIAn4s0.net
- >>227
例外処理はコスト高いのは大抵の人は分かっているだろうし
もしその目的なら面倒なだけで何の得にもならない設計だな
- 229 :デフォルトの名無しさん (スップ Sdb8-t1qj):2016/08/28(日) 13:50:38.91 ID:wMiv4AuKd.net
- なあ どっちが良いとかオススメあるかな
管理するクラスが、ファイルパスを展開してデータを取得するクラスの関数を呼び出して…って時に、
ただ引数としてパスを渡すのと、コンストラクタで変数を初期化するのと…
データをもう一度使いたいとか使いたくないとかって差だけかな?
class A {
データアクセス(filepath){
処理
}
}
class A {
string filepath;
A(string filepath){
this.filepath = filepath
}
データアクセス(){
処理
}
}
- 230 :デフォルトの名無しさん (ワッチョイ 9c5e-dmM4):2016/08/28(日) 13:54:18.03 ID:8HlIAn4s0.net
- >>229
先の質問が片付いてからにしたら?
下のほうのメリットがまるでわからないけど
- 231 :デフォルトの名無しさん (スップ Sdb8-t1qj):2016/08/28(日) 13:57:32.87 ID:wMiv4AuKd.net
- >>230
すまんが先の質問ってなんだ
書き込んだのはじめてだ
- 232 :デフォルトの名無しさん (ワッチョイ 753a-t1qj):2016/08/28(日) 14:03:42.99 ID:xWdxGs/J0.net
- >>231
>>220 で弟さんが書き込んだ質問のことだね
- 233 :デフォルトの名無しさん (ワッチョイ 7dc9-qQHP):2016/08/28(日) 14:08:16.64 ID:c2+tORve0.net
- そのクラスがファイルパスを受け取ること前提の作りというか、必ず使うんだったらコンストラクタの引数にしちゃうね俺だったら
- 234 :デフォルトの名無しさん (ワッチョイ 72c6-aGiZ):2016/08/28(日) 14:48:01.49 ID:ZPntcgGW0.net
- スップ Sdb8-t1qj
- 235 :デフォルトの名無しさん (ワッチョイ de3c-t1qj):2016/08/28(日) 14:51:19.13 ID:6k1z50dx0.net
- >>229
その条件だけなら
> データをもう一度使いたいとか使いたくないとかって差だけかな?
でしょ
- 236 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/28(日) 15:00:50.32 ID:14dFRx50M.net
- >>229
何処からでもなんの形式でも良いからデータをとってくるクラスだったらコンストラクタで渡す
使う側が指定したファイルを読み取るクラスならメソッド引数で渡す
コンストラクタ形式は依存性注入でよく使うパターン
メソッド引数形式は基本的なライブラリやユーティリティで使うパターン
- 237 :デフォルトの名無しさん (ワッチョイ 7998-FJIZ):2016/08/28(日) 15:16:45.15 ID:sEQC69z60.net
- ワッチョイおもろいな
- 238 :デフォルトの名無しさん (スップ Sdc8-t1qj):2016/08/29(月) 19:17:53.06 ID:EoJ4HrxVd.net
- ワッチョイワッチョイ
- 239 :デフォルトの名無しさん (スプッッ Sdc8-t1qj):2016/08/29(月) 19:18:28.76 ID:Ygc5GEa7d.net
- 文字列を変数名にする方法ないかね
- 240 :デフォルトの名無しさん (ワッチョイ 34cb-t1qj):2016/08/29(月) 19:49:03.32 ID:iTXMu3d10.net
- >>229
上一択だろ
下はソースを読んでもらわないと動作が把握できない点がクソ
ドキュメント書いてみれば異質さに気づく
コンストラクタの引数に設定されたファイルを読み込む
とか、いやそれなんだよ
そもそも今設定されてるファイルパスなんだよ
ソースの行数が多くなってメソッドもたくさん増えると
ソースを上から下まで読んでみないと現在filepathにはいってるパスがわからない
可読性わるいんぬ
- 241 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/29(月) 20:26:13.16 ID:RwSm4WeTM.net
- >>240
業務用アプリケーションとかだと頻繁に使うよ
読み込んだデータは欲しいけど具体的なパスは知りたくない場合
というかパスどころかそもそもそれがファイルかどうかも知りたくない
データベースかもしれないしWebAPIかもしれないけどデータをとってくるということだけ知っていて具体的なデータソースは煩わしいから考えたくない
そういう時は下のパターンを使う必要がある
上のパターンはそれがファイルである事と物理的なパスを知っていないと使えない
- 242 :デフォルトの名無しさん (スプッッ Sdc8-t1qj):2016/08/29(月) 20:37:54.26 ID:v+VBJ2wid.net
- あとの事考えたら、分割して下かなぁ。
ストリーム食わすとか。
とりあえず抽象型で「データアクセス」だけ宣言して、実装は別けると思う。
- 243 :デフォルトの名無しさん (ワッチョイ 7ddc-mxSp):2016/08/29(月) 20:41:48.75 ID:HSXk2xhn0.net
- >>241
StreamやIEnumerable<>渡すならわかるが、
>>240の下だと結局ファイルパスに依存してるだろ
- 244 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/29(月) 20:53:22.10 ID:p/LyuZWra.net
- 要件次第でしょ。
なんか訳の分からんこと言ってる人がいるけど、質問者(>>229)の2つのコードの違いは
データを読み出すクラスがデータのソースの情報を内部状態として持つかどうかでしょ。
まあ、パスを状態として持つとか普通はあんまりないよね。
設定ファイルなんか読む時に、パスが指定されないバージョンのメソッドが呼ばれた場合は
デフォルトのパスのファイルを読み出す、みたいなのはあると思うけど。
- 245 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/29(月) 20:54:25.43 ID:r/JXef9/M.net
- >>243
最終的には物理パスに依存するけどAを使う側のクラスはそれを知らなくていい
- 246 :デフォルトの名無しさん (スプッッ Sdc8-t1qj):2016/08/29(月) 21:04:47.49 ID:v+VBJ2wid.net
- >>243
見るのは「データアクセス」だけなんだから、データアクセスだけ晒せば、そいつが何に依存してようが、
使う側はデータアクセスだけに依存するんじゃない?
- 247 :デフォルトの名無しさん (ワッチョイ 34cb-t1qj):2016/08/29(月) 21:29:30.67 ID:iTXMu3d10.net
- >>241
いや、やっぱねーよ
特殊ケースなんかいくつもないだろ
それはそんときとして別途くむとして
普段は自分の読み込むファイルパスの保持なんかやめろ
そもそも入力と出力が明示されていない処理を書く奴はだいっきらいだ
a.unko();
これでファイル読込してるの?
どうやってわかるの?
もうソース読ませるの前提じゃん
- 248 :デフォルトの名無しさん (ワッチョイ b7c0-gQqU):2016/08/29(月) 21:32:58.57 ID:vgWDJ4LL0.net
- なんかstaticメソッド好きそうやね
- 249 :デフォルトの名無しさん (ワッチョイ de3c-t1qj):2016/08/29(月) 21:42:51.97 ID:IVf1OSSE0.net
- >>245-246
インスタンスは誰が生成するんだよ...
- 250 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/29(月) 21:43:18.04 ID:p/LyuZWra.net
- と言うより、質問者には悪いけど>>229はダメな初心者が
引数使わずにフィールドでデータを渡そうとする問題臭い。
- 251 :デフォルトの名無しさん (ワッチョイ 7999-FJIZ):2016/08/29(月) 22:01:58.17 ID:shRUR2oh0.net
- Aの役務が判明しないことには何とも言えんだろ
FileStreamクラスならファイル名を保持しててもそれ程おかしくはない
初心者的なGodクラスだったら略
例外enumの話といい質問するのが下手くそだな
わざと急所に言及するのを避けてるようにすら見える
- 252 :デフォルトの名無しさん (ワッチョイ 2dd6-dmM4):2016/08/29(月) 22:02:25.51 ID:XJUgYycF0.net
- 毎度々々質問内容から離れて議論するよね
はっきり言って邪魔だから余所でやってくれよ
- 253 :デフォルトの名無しさん (スプッッ Sdc8-t1qj):2016/08/29(月) 22:06:06.10 ID:v+VBJ2wid.net
- >>249
好きなやつがインスタンス起こせば良くない?
それすら使う側には感知しなくて良い事だと思うけど。
入力と出力が明示されてないとかナンセンスじゃない?
ポリモーフィズムの欠片も無いじゃん。
- 254 :デフォルトの名無しさん (ワッチョイ ddcb-t1qj):2016/08/29(月) 22:47:13.84 ID:hdD+Q5Ck0.net
- >>253
入力と出力がわかるソースとわからないソースとどっちがいいの?
- 255 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/29(月) 23:20:12.78 ID:wLwWuZngM.net
- >>247
実装側のソースを読ませる前提じゃなくてむしろ実装側のソースなんてどうでもいいよってスタンス
パスをメソッド引数で渡す場合相手のクラスがファイルアクセスクラスでありファイルが何処にあってといった細かい情報を意識しないとコードが書けない
コンストラクタで渡せばそんな細かい情報は気にしないでも利用者側のコードが書ける
利用者側はそれがファイルである事すら知らなくてもコードが書ける
>>249
リゾルバーかファクトリー
ルートでnewしてもいい
>>253
必要な入出力がわかればいい
それ以外は知らなくて済むなら知らない方がいい
全ての入出力を明示しなければならないとしたらあっという間に引数が泥団子になり管理不能になる
- 256 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/29(月) 23:23:24.31 ID:wLwWuZngM.net
- もちろん>>236でも書いたように詳細まで入り込んで実装側のコードを書くとなった時はメソッドに引数を渡す形式の方が扱いやすい
- 257 :デフォルトの名無しさん (ワッチョイ ddcb-t1qj):2016/08/29(月) 23:27:16.43 ID:hdD+Q5Ck0.net
- >>255
は?
いや、バグってる処理明らかにお前んとこなんだけど?
見えないことにメリットすでにないよね?
- 258 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/29(月) 23:34:58.10 ID:wLwWuZngM.net
- >>257
すまない
何を言いたいのかよくわからない
- 259 :デフォルトの名無しさん (ワッチョイ ddcb-t1qj):2016/08/30(火) 01:22:01.52 ID:I1jO9oPr0.net
- >>258
だからぁ、隠して意味があるのって
あくまで俺がそのライブラリのユーザでソースの中身を絶対みない保証がある時だけだよな?
同じソースつついてチーム開発やってるときに隠すコードに意味なんかないよね?
としたときにさ、お前のコードって処理が終わったときに結果として何が変わったのか分かり難いどころか
全くわからない
入力は何でそれに対して出力は何なの?
これが把握できないとソースが追えない
組んだお前はわかるんかもしんないけど
テストもやりにくいっていうか出来ない
入力と出力が明示されていないから
- 260 :デフォルトの名無しさん (ブーイモ MM25-qQHP):2016/08/30(火) 01:55:52.66 ID:Pu1c7+TjM.net
- >>259
・コンポーネントの疎結合と凝集性を維持するには実装詳細の隠蔽が常に不可欠でありメンテナであるかどうかは関係ない
・別チームの成果物の詳細を知らなければ自チームの開発ができないならばチームを分ける意味がない
・データ消費コンポーネントはデータの何が変わったのかを完全に知っているしデータアクセスコンポーネントは何が要求されて何を永続化するかを完全に知っている
ただしお互いの持つ知識を知る必要はなく契約のみを知っていれば良い
・もしもあるコンポーネントが別のコンポーネントの詳細を知らなければメンテできないとしたら実装への依存が発生している密結合な設計という事になる
・データアクセスコンポーネントの入力はなく出力はデータ消費コンポーネントの処理可能なデータであるという契約により明確である
・データ消費コンポーネントのソースを追うのにデータアクセスコンポーネントのソースを追う必要はない
逆も全く同様にソースを追う必要がない
・ファイルシステムに依存するうえにデータ消費コンポーネントとデータアクセスコンポーネントが密結合した設計の方が遥かにテストしにくい
- 261 :デフォルトの名無しさん (アウアウ Sa47-1rH5):2016/08/30(火) 02:26:30.97 ID:BDB9i/HHa.net
- 何か訳のわからんこと言い合ってるけど、上にも書いたけどあくまでケースバイケースとはいえ、
データのソースをオブジェクトの状態として保持しなきゃならない場合なんてむしろレアケースだよw
これも繰り返しだけど、質問者は恐らく、ダメな初心者にありがちな
「引数を使わずにフィールドでデータを渡そうとする病気」の一種にかかってるだけw
- 262 :デフォルトの名無しさん (ワッチョイ 750c-dmM4):2016/08/30(火) 03:09:17.81 ID:NRLFxuy60.net
- .NET のクラスだと
StreamReader はコンストラクタで渡すタイプだね
メソッドで渡すタイプはなんだろ?
- 263 :デフォルトの名無しさん (ワッチョイ 753a-t1qj):2016/08/30(火) 04:04:48.87 ID:DZ7Cy/vX0.net
- System.IO.File.ReadLines(string) とか?
static なので、今回の例示とはちょい違うかもしれないけど。
- 264 :デフォルトの名無しさん (ワッチョイ 7dc9-qQHP):2016/08/30(火) 05:59:56.55 ID:4ZBC1DOb0.net
- >>263
それはコンストラクタで渡してるのと変わらない気がする
- 265 :デフォルトの名無しさん (スップ Sdc8-t1qj):2016/08/30(火) 06:12:16.45 ID:Is5DsxGEd.net
- dynamic json = jsonConvert.DeseriarizeObject<dynamic>(jsonString)
で受けたjson形式の中から任意の配列を取り出す方法ない?
json.netで出来ればやりたいんだが俺にはできなかった
dynamicJsonなどでもできるならその手解きしてほしいどうやって入れるのかさっぱりわからん
http://stackoverflow.com/questions/30804299/querying-json-with-jsonpath-or-selecttokens-with-json-net-in-c-sharp
この辺を参考にしています
id== 99176901と指定したら
"video": { "local_recording_device":
{ "codecs": null },
"preferred_string": "___PREFERRED___", "streams":
{ "99176901":
{ "id": "99176901",
"name": "PTZ Camera",
省略
"y": 737, "window_id": "197302", "camera_id": null
}
が返ってくるような処理
- 266 :デフォルトの名無しさん (スップ Sdc8-t1qj):2016/08/30(火) 06:29:25.55 ID:Is5DsxGEd.net
- こっちのが見やすいかも
http://www.newtonsoft.com/json/help/html/QueryingLINQtoJSON.htm
ここも参考にして一つの要素は取ることはできたんだけども
item配列の中のタイトルで一致させて
一致した以下の中身を取りたい
title == Json.NET 1.3 + New license + Now on CodePlex みたいに処理させたい
{ 'title': 'Json.NET 1.3 + New license + Now on CodePlex',
'description': 'Annoucing the release of Json.NET 1.3, the MIT license and the source on CodePlex',
'link': 'http://james.newtonking.com/projects/json-net.aspx',
'categories': [ 'Json.NET', 13 'CodePlex' ] }
- 267 :デフォルトの名無しさん (ワッチョイ 7ddc-t1qj):2016/08/30(火) 06:44:08.93 ID:vcGs2dWd0.net
- JSONPath使えば
- 268 :デフォルトの名無しさん (ワッチョイ 1e7b-FJIZ):2016/08/30(火) 06:50:17.14 ID:9vXZ0KL70.net
- ありません
次の方
- 269 :デフォルトの名無しさん (スップ Sdc8-t1qj):2016/08/30(火) 06:54:25.29 ID:Is5DsxGEd.net
- >>267
jsonpathってjson.NETの機能?
調べても英語サイトしか出てこんくて読めんかった
- 270 :デフォルトの名無しさん (ワッチョイ 7ddc-mxSp):2016/08/30(火) 06:58:22.58 ID:vcGs2dWd0.net
- >>269
http://www.newtonsoft.com/json/help/html/QueryJsonSelectTokenJsonPath.htm
仕様はググればいくらでも出てくる
英語は必須だから諦めて読め
- 271 :デフォルトの名無しさん (スップ Sdb8-t1qj):2016/08/30(火) 07:17:13.44 ID:Dvd/HI/Id.net
- >>270
ふえええ…
"$.Manufacturers[?(@.Name == 'Acme Co')]"のNameとかを変数にできんのかねこれ
C#色々と便利だけども使いこなせてない俺からすると難解すぎる
- 272 :デフォルトの名無しさん (ワッチョイ 7ddc-mxSp):2016/08/30(火) 07:30:13.27 ID:vcGs2dWd0.net
- >>271
普通に $”$.Manufacturers[?(@.Name == ‘{変数名}’)]” (VS2015でないならString.Format)でいいでしょ
インジェクション脆弱性になる恐れがあるからWebから受け取った値を使って結果をWebに返すようなアプリならエスケープが必要
- 273 :デフォルトの名無しさん (ワッチョイ ddcb-t1qj):2016/08/30(火) 07:34:30.37 ID:I1jO9oPr0.net
- >>260
その思想なら入力も出力もないメソッド呼び出させるぐらいなら完全にバックグラウンドで動けよ
newした時点でほかのメソッド呼び出させる自体が不具合
それができないなら内部の処理を呼び出し側が把握していないとお前のメソッドは呼べない
- 274 :デフォルトの名無しさん (ワッチョイ b7c0-gQqU):2016/08/30(火) 10:20:54.70 ID:+0POpDn70.net
- >>262
.netのReader/Writer系はコンストラクタでファイルパスやStream渡すからそれが当たり前だと思ってた
スレの先生方はこの手のソースをどう書いているのか一度見てみたいところ
- 275 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/30(火) 10:31:45.95 ID:bAuY2Feoa.net
- >>274
何か相変わらず訳わからんこと言ってるけど、それらがコンストラクタでストリームを取るのは
生きている間それを使いまわすつまり保持している必要があるからだw
何度も言ってるように、データソースのパスを保持する必要があるかどうかはケースバイケースだが、
普通はそんな必要はない。
- 276 :デフォルトの名無しさん (ワッチョイ 753a-t1qj):2016/08/30(火) 11:03:22.19 ID:DZ7Cy/vX0.net
- 例示も無しに『普通は』とか言い切っちゃうのは残念やね。
自分でコードを書く場合は、ってことかな?
- 277 :デフォルトの名無しさん (ワッチョイ 7a23-gQqU):2016/08/30(火) 11:33:59.30 ID:XXcHCJl60.net
- 抽象化は美しいけど大して役に立たないんだよな
- 278 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/30(火) 11:45:15.42 ID:bAuY2Feoa.net
- >>276
何か頭悪そうだけど、そもそも質問者が「どちらがいいか」と聞いてる時点で、
答えは出てる。意味分かる?
少なくとも質問者の要件を満たすうえでパスを保持しておく必要はないってことだ。
- 279 :デフォルトの名無しさん (オイコラミネオ MM34-t1qj):2016/08/30(火) 12:09:36.71 ID:fVgKPSWmM.net
- >>277
それはシステムの組み方によるな。
- 280 :デフォルトの名無しさん (アウアウ Sa01-hMGK):2016/08/30(火) 13:19:43.33 ID:Kix2dOMra.net
- 実務レベルで
そういうクラス分けについての判断は
やり始める時にある程度決めるのか
やってる途中で帰るのか
気になる
どっちもなんだろうけど
- 281 :デフォルトの名無しさん (ワッチョイ 753a-t1qj):2016/08/30(火) 13:21:38.04 ID:DZ7Cy/vX0.net
- >>278
>>229 のことなら、何回か同じパスを使うか、そうでないかは明示してないな。
あと、自分はFile.ReadLines()みたいなパターンを認めてるよ?
- 282 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/30(火) 13:42:31.90 ID:bAuY2Feoa.net
- >>281
だから、同じファイルを少しずつ読む必要があるとかランダムアクセスする必要があるなら、
>>229の最初のコードは最初から選択肢にならないよね。
もちろんやってできないことはないけど普通はしないよね。
もちろん質問者が普通じゃない可能性もあるわけだけど、その可能性は無視すれば
質問者の要件は自ずとわかるでしょ。
- 283 :デフォルトの名無しさん (ワッチョイ 7cd4-hifv):2016/08/30(火) 14:34:52.62 ID:/OGdet/T0.net
- 受けるわけじゃないけど試験 70-483Programming in C#の試験項目を見てたんだけどさ
https://www.microsoft.com/ja-jp/learning/exam-70-483.aspx
項目を見ると売れ筋の入門書って試験範囲の2割ぐらいしかカバーしてないのね
これみんな分かるもんなの?
- 284 :デフォルトの名無しさん (ワッチョイ 79d9-FJIZ):2016/08/30(火) 17:16:57.96 ID:qsOxDjRb0.net
- >>271
ところでお前の息子二人が書き込んだ質問で荒れてんだけどどう思う?
お前っていつもそういう態度取ってんの?
- 285 :デフォルトの名無しさん (ワッチョイ 79d9-FJIZ):2016/08/30(火) 17:18:44.03 ID:qsOxDjRb0.net
- そういう態度ってのは、質問に対してリアクションが帰っているのにスルーして違う質問を始めるって舐めた態度のことな
せめて質問を取り下げろ、カス
- 286 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/30(火) 17:19:49.06 ID:bAuY2Feoa.net
- 変なの来たなw
- 287 :デフォルトの名無しさん (ワッチョイ 7cd4-hifv):2016/08/30(火) 18:29:06.24 ID:/OGdet/T0.net
- 高卒フリーターだらけの世の中になってから、にちゃんは統合失調症だらけだよ
こんなの驚くことじゃありません
- 288 :デフォルトの名無しさん (ワッチョイ 7999-4yR4):2016/08/30(火) 18:50:14.16 ID:34wg0DNp0.net
- スップ Sdc8-t1qj
- 289 :デフォルトの名無しさん (スプッッ Sdc8-t1qj):2016/08/30(火) 19:38:27.94 ID:h7mqDNBAd.net
- >>272
サンクスありがとう
一応予定のは取れたよ
- 290 :デフォルトの名無しさん (ワッチョイ 7939-4yR4):2016/08/30(火) 19:43:53.59 ID:q9MYe/9f0.net
- 質問してたのはスプッ Sdc8-t1qjだろ
なりすましは止めとけ
- 291 :デフォルトの名無しさん (アウアウ Sa01-FiSL):2016/08/30(火) 20:22:52.29 ID:tVyn06Qka.net
- つーかさー
C#の入門書でまともな本なくね?
マジでブチ切れそう
日本語不自由なの多すぎ
- 292 :デフォルトの名無しさん (ワッチョイ 7c7b-aGiZ):2016/08/30(火) 20:29:23.95 ID:KZWXOdr20.net
- プログラミング言語なんて習うより慣れよ
手段であって目的ではないんだよ
- 293 :デフォルトの名無しさん (ワッチョイ 7141-FiSL):2016/08/30(火) 20:35:25.17 ID:n1CqpYHX0.net
- 自分なりに調べてなんとか慣れつつあるとはいえ
ちゃんとした書籍を持ってたいなと思ってるんだけど
じゃあこのまま突っ走るわい
- 294 :デフォルトの名無しさん (ワッチョイ ddcb-t1qj):2016/08/30(火) 21:02:55.93 ID:I1jO9oPr0.net
- >>292
言語のマイナー機能をあえて使う奴って設計ヘタクソだよな
- 295 :デフォルトの名無しさん (ワッチョイ 753a-t1qj):2016/08/30(火) 21:21:28.20 ID:DZ7Cy/vX0.net
- implicitとかさぞかし意味が有るのだろうと思って書いてみたのを思い出す……
- 296 :デフォルトの名無しさん (ワッチョイ 9c5e-dmM4):2016/08/30(火) 21:36:26.37 ID:EHChjX9a0.net
- >>294
初心者のスレだし、そういうのが趣味の人もいるかもしれないw
コード書く前に手法であれこれ悩んでいるの見るとイラッとするけど
- 297 :デフォルトの名無しさん:2016/08/30(火) 22:06:14.19 ID:4DCNbP1j6
- >>275
初心者相手に突っ込みいれるのも野暮だけど普通は使うよ
モダンな設計手法では当たり前に行う事だし、設計論から離れても遅延読み込みで使う
- 298 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/30(火) 21:53:29.11 ID:Q9l6tJm0a.net
- >>295
暗黙変換は普通に使いまくるよw
- 299 :デフォルトの名無しさん (ワッチョイ 2dd6-dmM4):2016/08/30(火) 22:05:54.75 ID:FkhIllLo0.net
- 変態的なライブラリを作る時にはお世話になる
- 300 :デフォルトの名無しさん (ワッチョイ 753a-t1qj):2016/08/30(火) 22:42:29.99 ID:DZ7Cy/vX0.net
- >>299
常用しない機能をたまに書くと楽しいよね
- 301 :デフォルトの名無しさん (ワッチョイ 7679-t1qj):2016/08/31(水) 10:50:08.29 ID:EN4ZQTF90.net
- >>291
C#自体は最初は覚える事が多いけどそんなに難しい言語じゃない
C#の入門書にまともなものがないと書いているけどそれはお前がまだ入門書も読めない位知識が無いってこと
まずどっかで軽くオブジェクト指向勉強してこい
話しはそれからだ
- 302 :デフォルトの名無しさん (ワッチョイ 7cd4-oLrM):2016/08/31(水) 11:40:54.21 ID:x8Mu4zVi0.net
- インターフェイスについて教えてください
インターフェイスはよくインスタンス化できないと説明されていますが
IEnumerable<string> myString = new{
- 303 :デフォルトの名無しさん (ワッチョイ 7cd4-oLrM):2016/08/31(水) 11:44:31.17 ID:x8Mu4zVi0.net
- ごめんなさい、サニタイジングされているのか途中で書き込みが切られてしまいました
インターフェイスはよくインスタンス化できないと説明されていますが
IEnumerable myString = new{(省略しないと書き込めない・・・・!?)
このような宣言を見ます
あたかもインターフェイスをインスタンス化しているかのように見えてしまいますが、一体どういうことが起きているのか教えていただけないでしょうか
よろしくお願いします
- 304 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/31(水) 11:52:41.19 ID:97WvllZya.net
- >>303
そのレベルならこんなところで質問するより真面目に入門書でも読んだ方がいいと思うw
本じゃなくてもC#のチュートリアルなんてweb上にもいくらでもあるよね
- 305 :デフォルトの名無しさん (ワッチョイ 7cd4-oLrM):2016/08/31(水) 12:06:50.43 ID:x8Mu4zVi0.net
- 本を読んでいてよくわからないんです
よろしくお願いします
- 306 :デフォルトの名無しさん (ワッチョイ 3d94-12yH):2016/08/31(水) 12:34:47.53 ID:lVEp965D0.net
- そのインターフェースを持ったクラスをインスタンス化してる
- 307 :デフォルトの名無しさん (ワッチョイ 725b-Ptq2):2016/08/31(水) 12:51:18.96 ID:sHLzsEsl0.net
- 実態を抽象的(インターフェース)に扱っている。
インターフェースは実装をもたないが、
実装(オブジェクト)はインターフェースを持つことができる。
結局は、インターフェースを介して、実態を扱っている。
- 308 :デフォルトの名無しさん (ワッチョイ 0448-40Y4):2016/08/31(水) 13:17:05.93 ID:/t7yyFm+0.net
- IEnumerableはすごく良く使うのでMSDNを熟読すべし
- 309 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/31(水) 13:58:18.12 ID:97WvllZya.net
- それで通じるならこんな質問はしないと思うよw
- 310 :デフォルトの名無しさん (JP 0Hcd-MmRS):2016/08/31(水) 14:29:09.86 ID:mqymnS7ZH.net
- 複雑すぎる実体に対して最小限の情報(の窓口)を求めている
タクシーに乗る時にどこの会社くらいは気にするけど
運転手が結婚しているかとか余分な情報はいらない
- 311 :デフォルトの名無しさん (ワッチョイ 68ee-Knxq):2016/08/31(水) 14:58:51.05 ID:6xfbGy8w0.net
- クラスとメソッドってなんですか?
- 312 :デフォルトの名無しさん (シャチーク 0C34-RDkh):2016/08/31(水) 19:00:04.92 ID:NdFTvm0OC.net
- string[] input;
string[] Name;
〜〜
Name = new input;
やりたいことは、inputの値渡しなのですが、こういうことはできないの〜〜?
- 313 :デフォルトの名無しさん (ワッチョイ b77b-Ne3O):2016/08/31(水) 19:23:40.95 ID:TqtXovwc0.net
- 配列をコピーしたいってこと?
ならCloneメソッドとか シャローコピーだけど
- 314 :デフォルトの名無しさん (シャチーク 0C34-RDkh):2016/08/31(水) 19:38:21.91 ID:NdFTvm0OC.net
- >>313 ありがとうございます!
- 315 :デフォルトの名無しさん (アウアウ Sa01-FiSL):2016/08/31(水) 20:09:09.62 ID:HmEUyXpka.net
- 普通にリモコンでいいんじゃないの?
電化製品をリモコン使って動かせるけど
内部の電圧だったりチップを直接は動かせないわけで
限定された操作を使用者に提示するというか
- 316 :デフォルトの名無しさん (アウアウ Sa45-1rH5):2016/08/31(水) 20:16:51.60 ID:97WvllZya.net
- >>315
それは普通隠蔽とかカプセル化とかって言うんだよね。
普通はそれをインターフェイスが提供する機能とは言わないよね。
- 317 :デフォルトの名無しさん (ドコグロ MM1c-Ptq2):2016/08/31(水) 20:24:53.36 ID:F//NfMCdM.net
- >>313
シャローコピーを使う場面ってどこですか?
変数が同じ参照持ってるなら、同じ実態扱うのとほぼ変わらないような。
- 318 :デフォルトの名無しさん (ブーイモ MMb8-qQHP):2016/08/31(水) 22:41:12.43 ID:4jzGw3cJM.net
- >>317
ディープコピーを実装する時とか
少しだけ変更した新しい値オブジェクトが欲しい時とか
並行処理の排他処理とか
- 319 :デフォルトの名無しさん (ワッチョイ f3dc-OoDU):2016/09/01(木) 00:05:55.99 ID:Xz8sejsg0.net
- string[]ならシャローコピーでいいだろ
- 320 :デフォルトの名無しさん (ワッチョイ 777b-UYCy):2016/09/01(木) 00:25:50.14 ID:nGqVI4Wr0.net
- 基本的に、C/C++以外の言語は、参照のコピー(シャローコピー)になる
それでは困る場合だけ、Cloneやディープコピーを考えればよい
ディープコピーでは、オブジェクト内にオブジェクトがあって、
その中にもオブジェクトがあって、再帰的に何階層まで、ディープコピーするかも考える
- 321 :デフォルトの名無しさん (ササクッテロ Sp8f-yYxc):2016/09/01(木) 06:32:14.88 ID:50/1x8Mup.net
- system.timers.timer
について質問です
system.timers.timerを使って一定時間後にダイアログを表示するプログラムを作りました
しかしダイアログが表示されるのは一定時間+10〜20秒です
ちゃんと一定時間後にダイアログを表示させたいのですどうすればいいでしょうか?
- 322 :デフォルトの名無しさん (ワッチョイ 931e-RETc):2016/09/01(木) 07:41:52.97 ID:lrlraAVg0.net
- 最小限の再現コード出さずになぞなぞするのやめてくれぇ?
- 323 :デフォルトの名無しさん (ササクッテロ Sp8f-yYxc):2016/09/01(木) 08:01:06.85 ID:50/1x8Mup.net
- >>322
他に同様な症状に陥った方はおりませんかね?
もしくは僕だけの問題なのでしょうか?
- 324 :デフォルトの名無しさん (ドコグロ MM1f-TXi9):2016/09/01(木) 08:22:02.35 ID:rDaq2EciM.net
- >>323
私もよくダイアログが出ずに、プログラムが落ちてしまいます。
心当たりあれば教えて欲しいです。
- 325 :デフォルトの名無しさん (ササクッテロ Sp8f-iG4w):2016/09/01(木) 08:27:09.11 ID:Uci5d0kTp.net
- あれなんなんだろうな
- 326 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/01(木) 09:49:34.21 ID:tRE5XnQ90.net
- 思った通りに動くのではなく
書いた通りに動くって話でせう
タイマーの件は何となく想像がつくが
俺もなぞなぞはしたくない
- 327 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/01(木) 16:20:07.57 ID:L3a4bYLCa.net
- 文字列にサロゲートペアが含まれる場合でも正確な文字数を返すメソッドって
やっぱりBCLには存在しない?
- 328 :デフォルトの名無しさん (ワッチョイ 9319-Z7wn):2016/09/01(木) 16:22:19.24 ID:aazltn1Z0.net
- StringInfo
- 329 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/01(木) 16:50:51.41 ID:L3a4bYLCa.net
- >>328
あーなるほど、こんなのあったのか。
しかし何だか存在意義のよくわからんクラスだな。
何でStringに実装されてないんだろう。
- 330 :デフォルトの名無しさん (ササクッテロ Sp8f-yYxc):2016/09/01(木) 17:53:52.76 ID:Yvhf9dDVp.net
- タイマーの剣ですけど
ソース出すんで待っててください!
- 331 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/01(木) 18:01:48.26 ID:L3a4bYLCa.net
- 今脳内で剣の舞が再生された件
- 332 :デフォルトの名無しさん (ワッチョイ 8fbd-vSVO):2016/09/01(木) 18:33:18.37 ID:pyrbLu4p0.net
- http://ideone.com/ahJjSD
- 333 :デフォルトの名無しさん (ワッチョイ 931e-RETc):2016/09/01(木) 19:57:36.99 ID:lrlraAVg0.net
- >>332
TimerのIntervalの単位はミリ秒
10秒後なら
this.Interval=10000
を設定
Function内のif(count == 600)はいらない
>>332でIntervalに設定している1000.0/60はおよそ16.66…ミリ秒だがWindowsはそこまで正確に時間を刻めない
こちらの環境だと
30ミリ秒±2ミリ秒くらいの間隔でFunctionが実行された
600回繰り返す間に誤差が蓄積されてズレが生じている
- 334 :デフォルトの名無しさん (ワッチョイ 037b-wh/5):2016/09/02(金) 16:48:49.83 ID:DQjRhVvF0.net
- 表示させたいデータのレコードを絞り込んでdataGridViewに表示させるには、BindingSourceのFilterプロパティを使うとできるみたいですが、
このサイト https://www.ipentec.com/document/document.aspx?page=csharp-database-bindingsource-filter
「BindingSourceコンポーネントについてはこちらの記事を参照してください。」へ進み、
「DataSetを作成します。手順はこちらの記事を参照してください。」にある「データ接続の追加手順はこちらの記事を参照してください。」が404で見るとこができなくて設定のやり方がわかりません。
データ接続の追加手順があるサイトか手順を教えてくれませんか?
- 335 :デフォルトの名無しさん (ワッチョイ 931e-RETc):2016/09/02(金) 20:47:16.80 ID:UQkwlVyK0.net
- >>334
リンク切れのページはこれかな?
https://www.ipentec.com/document/document.aspx?page=visual-studio-2012-add-data-connection-in-server-explorer
- 336 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 09:43:53.98 ID:qpsImhv/d.net
- コーディングのマイルールとかあるやつおる?
- 337 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/03(土) 10:00:54.78 ID:+PRxNCnW0.net
- その話C#に何の関係が
spmodeだから警戒しとくよ
- 338 :デフォルトの名無しさん (ワッチョイ 0351-10NS):2016/09/03(土) 10:01:55.70 ID:vFj9bHn70.net
- 改行可能なtextboxでの入力時にCtrl+Enterを押すとボタンが押されたときと同じ挙動をするようにしました
ボタンを押すとtextbox内の文字列は消えるのですがボタンのイベントが終わった後textbox内に改行だけが残ってしまいます
これを回避する方法はないのでしょうか?
- 339 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 10:05:25.65 ID:FcGf2P40d.net
- >>337
よくよく考えたら関係なかったわすまんな
コードレビューする度にしてくれる人の色合いが違いすぎて困ってて
何かしら注意点統一しようかと思ってた
- 340 :デフォルトの名無しさん (ワッチョイ 33d6-IPsc):2016/09/03(土) 10:14:00.19 ID:T8XOHxVQ0.net
- >>338
ソースも何もないのにどう助言しろと?
- 341 :デフォルトの名無しさん (ワッチョイ 775e-IPsc):2016/09/03(土) 10:37:28.92 ID:YP4M8m0R0.net
- >>338
単純にEnterが入力されているだけだろ?
イベントを入れたときに元の機能(入力)が無視される場合とそうでない場合があるみたいだから
イベントが呼ばれた後に本来の機能のEnter入力がされている
試してないけど通常のキー入力イベントで反応させる以上回避できない気がする
- 342 :デフォルトの名無しさん (ワッチョイ 7323-wh/5):2016/09/03(土) 10:43:14.24 ID:plPbA0im0.net
- >>338
BeginInvoke使ったらどう?
- 343 :デフォルトの名無しさん (ワッチョイ 0351-wh/5):2016/09/03(土) 10:46:39.70 ID:vFj9bHn70.net
- >>340
すみません最小構成にしました
http://ideone.com/YPB1Fv
>>341
Enterの捕捉はkeyPressイベントでおこなってみているのですがこのままではtextboxに改行が入れられません
また、このように書いても改行が入ることは防げませんでした
- 344 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/03(土) 10:50:44.58 ID:+PRxNCnW0.net
- AcceptReturn(だったかな?)でお茶を濁すとか
- 345 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/03(土) 10:56:04.10 ID:+PRxNCnW0.net
- Control.WndProcでフックしても行けるかな
- 346 :デフォルトの名無しさん (ワッチョイ 0351-wh/5):2016/09/03(土) 10:56:06.08 ID:vFj9bHn70.net
- >>342
BeginInvoleを使う場合どこに入れればいいのでしょう?
>>344
このようにしても改行は挿入されました
http://ideone.com/CInXQo
- 347 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/03(土) 11:06:00.35 ID:+PRxNCnW0.net
- いや、違うか
TextBoxにEnterが入力されるのはWM_CHARを処理しているからで
WM_CHARはTranslateMessageが送出している
これを止める(GetMessageの後TranslateMessageを呼ばない)必要があるが、これを止める手段はWinFormsに存在しない
>>341と同じく無理じゃねって結論
- 348 :デフォルトの名無しさん (ワッチョイ 0351-wh/5):2016/09/03(土) 11:10:03.28 ID:vFj9bHn70.net
- >>347
無理でしたか
ありがとうございます
余談ですがCtrl+Enterでは改行が入力されるもののAlt+EnterやShift+Enterでは入力されませんでした
- 349 :デフォルトの名無しさん (ワッチョイ 775e-IPsc):2016/09/03(土) 11:17:23.85 ID:YP4M8m0R0.net
- >>343
発想を変えてそのミニマムコードにあわせて機能を一応再現はできるw
http://ideone.com/phWpFp
でもスマートじゃないし、別の部分と衝突する可能性もある(結局改行が残ったり)から使えないとは思うが
- 350 :>>348 (ワッチョイ 775e-IPsc):2016/09/03(土) 11:27:16.81 ID:YP4M8m0R0.net
- ごめんボタン押した後入力できなくなってたw
http://ideone.com/MSHEoM
こっちで
- 351 :デフォルトの名無しさん (ワッチョイ 33d6-IPsc):2016/09/03(土) 11:41:22.74 ID:T8XOHxVQ0.net
- http://ideone.com/QRQWOC
適当だけど作ってみた
- 352 :デフォルトの名無しさん (ワッチョイ af17-tB3X):2016/09/03(土) 11:52:39.55 ID:dB9eMxpA0.net
- textBox1_KeyPressで潰すだけでいい
private void textBox1_KeyPress( object sender , KeyPressEventArgs e )
{
if ( e.KeyChar == '\n' && Control.ModifierKeys == Keys.Control )
{
button1_Click( sender , null );
e.Handled = true;
}
}
- 353 :デフォルトの名無しさん (ワッチョイ 0351-wh/5):2016/09/03(土) 12:00:44.84 ID:vFj9bHn70.net
- >>350->>352
すべて試してみてどれでも解決できました
状況によって使い分けたいと思います
ありがとうございます
- 354 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/03(土) 15:07:55.98 ID:GFDCUR4+0.net
- C#始めたばかり。
ちょっと悪いけど、暇すぎる人居たらこの記述書いてくれない?
それをもとに勉強するです。
ファイル群{
引数 = ディレクトリ位置;
配列 = 引数の位置にあるファイル全部;
戻し(配列);
}
標準出力 {
文字列の配列 = 引数;
出力( 引数の配列を、\nで結合した物 );
}
main{
ファイルパス集 = ファイル群(引数);
標準出力(ファイルパス集);
明示的にプロセス死んでくださいexit;
}
ちなみにメソッドや関数の書きかたも知らん。
なにもかも全部読むんで、コンパイルできるように書いてくださいな。
- 355 :デフォルトの名無しさん (ワッチョイ 0bc0-wh/5):2016/09/03(土) 15:10:49.96 ID:lAR6fNJc0.net
- 宿題他人にやらせるとかさすがやね
- 356 :デフォルトの名無しさん (ワッチョイ 775e-IPsc):2016/09/03(土) 15:13:39.26 ID:YP4M8m0R0.net
- >>351
こっちの発想しかなかったけど
>>352
これが一番良さそう
>>354
一つ一つ調べるか
C#,C#の宿題片付けます。
http://echo.2ch.net/test/read.cgi/tech/1197620454/
へどうぞ
- 357 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/03(土) 15:15:15.21 ID:GFDCUR4+0.net
- ついでと言ってはなんだが、一般的なプログラムデザインも教えてくれると超助かる。(ファイルの分割単位とか、関数群のまとめかたとかそんなの)
- 358 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/03(土) 15:19:52.24 ID:GFDCUR4+0.net
- ではそちらにいきます
- 359 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/03(土) 15:32:53.69 ID:GFDCUR4+0.net
- とりあえずメソッドの宣言は分かった。
mainもメソッドなの?どうゆう種類のオブジェクトのどうゆうメソッド?
関数というものはないの?
あと識別子に日本語で書いてみたら何も怒られることなく動作したんだけど、
問題は発生しないの?
- 360 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/03(土) 15:42:18.03 ID:GFDCUR4+0.net
- スタティックな変数と言うのはないのだろうか
全部自分で調べるとあれから無駄に30分も経過してるぜ
- 361 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 17:03:18.56 ID:FcGf2P40d.net
- >>360
一分で終わる
スタティックな変数用のクラス作る
- 362 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/03(土) 17:26:35.67 ID:HDnGX34na.net
- スタティックな変数が何なのかよく分からないけど、VBのアレのことを言ってるなら一筋縄じゃいかないね
- 363 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 18:03:50.74 ID:FcGf2P40d.net
- jsonってもしかしてなんだが配列は数字かクラスしか受け付けない?
- 364 :デフォルトの名無しさん (アウアウ Sa0f-6goY):2016/09/03(土) 18:13:14.35 ID:yrPVMfsIa.net
- スタティックってカタカナで書くのやめて
- 365 :デフォルトの名無しさん (ワッチョイ f3dc-RETc):2016/09/03(土) 18:17:48.70 ID:NvN4PBVL0.net
- >>363
JSONは単なるデータフォーマットだ
お前の言うJSONというのが何を指しているのか正確に書け
- 366 :デフォルトの名無しさん (ワッチョイ d748-R3iF):2016/09/03(土) 18:41:26.03 ID:zijBnKSi0.net
- 性的な変数
- 367 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 18:46:50.72 ID:FcGf2P40d.net
- >>365
違いをよく理解してない
形式のことがjsonというのかね
{
"json" : [
0x555,
11111
]
}
こんなのならOKなんだが
この数字のところを文字列にするとダメになる
判断基準はVS2015のデータ形式指定のはりつけでエラーになってる
- 368 :デフォルトの名無しさん (ワッチョイ f3dc-RETc):2016/09/03(土) 18:54:55.72 ID:NvN4PBVL0.net
- >>367
JSONでググって適当に目を通せ
JSONっていうのはXMLやCSVに相当するもの
- 369 :デフォルトの名無しさん (オッペケ Sr8f-RETc):2016/09/03(土) 18:56:38.66 ID:6Br7/h+ar.net
- 答えられないから質問者を煙に巻いた上から目線の意味のないレスをするしか能がない
それが367
- 370 :デフォルトの名無しさん (ワッチョイ 7323-wh/5):2016/09/03(土) 19:44:01.34 ID:plPbA0im0.net
- ホッケーのマスクをしてチェーンソー振り回す奴
- 371 :デフォルトの名無しさん (ワッチョイ 17c9-10NS):2016/09/03(土) 19:48:35.54 ID:y9cXT+t40.net
- さすがに質問が意味不明でしょ
何をしたいのか、何をしてどんなエラーが出たのか全く分からない
- 372 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/03(土) 20:07:38.42 ID:+PRxNCnW0.net
- だってspmodeだもの
いつもの質問が適当な彼でしょ
- 373 :デフォルトの名無しさん (ワッチョイ 0338-k8l2):2016/09/03(土) 20:16:57.40 ID:EbRISh520.net
- C#とJSONに何の関係があるんや
VSの話ならVSスレで聞け
- 374 :デフォルトの名無しさん (オッペケ Sr8f-RETc):2016/09/03(土) 20:30:48.76 ID:Fd820eSXr.net
- 質問は至って明確
何をしたいのかも明確
どんなエラーが出たかは質問と関係ない
日本語が理解できないそれが370
- 375 :デフォルトの名無しさん (ワッチョイ 0339-k8l2):2016/09/03(土) 20:40:49.86 ID:JJ5tUh1G0.net
- 煽っても答えない
カニンガムの法則に従っても答えない
餅は餅屋でかってや
- 376 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 21:39:07.77 ID:FcGf2P40d.net
- >>373
C#のJson.NETを利用してやってるからここかなと思った
- 377 :デフォルトの名無しさん (ササクッテロ Sp8f-10NS):2016/09/03(土) 21:59:00.49 ID:fJl2MMtjp.net
- >>363
JavaScript Object Notation(=JSON)の書式はC#ではないのでスレ違い
JSONに入れられる値をざっくり挙げると、文字列、数値、true、false、null、オブジェクト、配列
書式はC#じゃないので自分で調べるか他所で聞け
↓はわりと便利
http://json2csharp.com
- 378 :デフォルトの名無しさん (ワッチョイ 0399-k8l2):2016/09/03(土) 22:06:22.19 ID:28oZslrG0.net
- >>376
Json.NETについて質問してるわけじゃないじゃん
JSONのフォーマットと、VSがエラーを起こしてる点が核心やろ
やっぱりC#関係ねーわ
- 379 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/03(土) 22:17:35.80 ID:GFDCUR4+0.net
- 今日の色々疑問だった部分が色々一通り解決した。統合環境の使いかた以外。
おまえらが情報の出し惜しみするからすげぇ時間が掛かったぜ。
予定では思いついた疑問をかたっぱしから書いたら5分以内にレス来る予定だったと言うか願望だったんだがな
で、聞きたいんだけどこれはスクリプトなの?
どうゆうつもりで勉強するかかなり変わってくるので教えてくれ
スクリプトならPerlとかPythonのテンションでやる。
プログラム言語ならCのノリでやる。
- 380 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/03(土) 22:30:49.87 ID:+PRxNCnW0.net
- >>379
https://ja.m.wikipedia.org/wiki/C_Sharp
- 381 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/03(土) 23:00:14.68 ID:FcGf2P40d.net
- >>377
ありがとう
とてもわかりやすいわ
配列型のstringがなぜエラーなのかを読んで解決してみる
>>378
たしかに
- 382 :デフォルトの名無しさん (ワッチョイ 8fe1-RETc):2016/09/04(日) 01:45:20.93 ID:dQFc65WQ0.net
- >>381
ちなみに、Json.NETが一番有名だけど、他にもライブラリがあるから質問するときはライブラリの名前を明示したほうがいいよ
- 383 :デフォルトの名無しさん (ワッチョイ 8fe1-RETc):2016/09/04(日) 01:47:46.88 ID:dQFc65WQ0.net
- >>379
基本的にスクリプト言語ではないな
経験者なら初歩的なことは聞くより本買うなりしていっきに身につけたほうが楽かと
- 384 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/04(日) 02:59:55.86 ID:J/FJHK0dd.net
- >>382
上にも記載してる人が居るように俺の悩みはjson.NET以前にjsonの話だったわ
(VS2015に形式で張り付けてなんでエラーなの?って悩んでるレベルの)
あと原因も一応わかったよ
オブジェクトにしたかったら、下記の数字を""で挟む必要があっただけやったわ
{
"json" : [
0x555,
11111
]
}
- 385 :デフォルトの名無しさん (ワッチョイ 037b-wh/5):2016/09/04(日) 03:15:02.22 ID:Ck/keC5V0.net
- >>335
探してくれてありがとうごいます
そのページ読みましたが、サーバーを使って管理するんですね。
おこずかい帳を作っていて、大規模じゃないのでオフラインで十分なんですよねぇ・・
サーバーを使わないでBindingSourceのFilterプロパティが扱えるサイト探してみたいと思います。
ありがとうございました。
- 386 :デフォルトの名無しさん (ワッチョイ 0be6-mASB):2016/09/04(日) 06:49:04.34 ID:5SDmlLW20.net
- https://www.embarcadero.com/jp/products/delphi/downloads
現在、RAD Studio(Delphi、C++Builderのセット)が無料でダウンロード可能だよ
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
- 387 :デフォルトの名無しさん (ワッチョイ 0be6-mASB):2016/09/04(日) 07:06:03.09 ID:5SDmlLW20.net
- >>386はDelphiのみでした
すいません、C++Builderはこっちです
https://www.embarcadero.com/jp/products/cbuilder/downloads
現在、C++Builderが無料でダウンロード可能です
右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
(無料ダウンロードは、2016年8月22日から9月9日までの期間限定)
DelphiとC++Buiderは別個にダウンロードが必要な模様
- 388 :デフォルトの名無しさん (ワッチョイ 1351-wh/5):2016/09/04(日) 09:15:28.45 ID:ND5rYxtb0.net
- スレチだけどこれはナイスな情報。ありがとう。
- 389 :デフォルトの名無しさん (ワッチョイ 335b-iG4w):2016/09/04(日) 09:27:08.26 ID:wey0BvvO0.net
- 今からC#の勉強をしたいと思ってます。以下本の購入を考えてますがご意見お願いできますでしょうか
・作って覚えるVisual C# 2015 デスクトップアプリ入門
・独習C# 第3版
・C# ポケットリファレンス
- 390 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/04(日) 09:39:18.42 ID:H1SSXvzud.net
- using(streamwriter sw=new streamwriter(path,.....))
sw.write(書き込み内容)
引数は一部省略してます。
.txtを開いて書き込むみたいな処理を仕様としてるんですが
メモ帳なりなんなりで既に開かれていたらアクセスができないようにしたいです
どうしたら良いのでしょうか…
集約例外に投げることが出来ればそれで問題ないのですが
- 391 :デフォルトの名無しさん (ワッチョイ 0320-k8l2):2016/09/04(日) 10:34:55.49 ID:hxeLo9OH0.net
- openfilesコマンドをProcess.Startから実行して
該当するファイルが出力にあるか確認するのが手っ取り早い
内部的には
NtQuerySystemInformation
SystemHandleInformation
GetFinalPathNameByHandle
を使っているらしいので、自力でこれらを呼べば外部コマンド不要で実現可能かもしれない
(ただし、これらのAPIについての質問はWin32APIスレでやれよ)
集約例外とやらは知らない
それが大事な要素なら解説してくれ
- 392 :デフォルトの名無しさん (ワッチョイ 0bc0-wh/5):2016/09/04(日) 10:38:50.28 ID:ZZxJ/rt80.net
- 集約例外君にレスするなら安価つけてやれよ
ワッチョイでNGする意味ねえじゃん
- 393 :デフォルトの名無しさん (ワッチョイ 777b-UYCy):2016/09/04(日) 12:20:21.99 ID:C66L8/dk0.net
- そもそも、他のプロセスが開いているファイルを、開けるのか?
共有ロックできるのは、双方のプロセスが、読み取り専用の場合だけだろ
例えば、TeraPadで修正中のJSファイルを保存しても、Edgeで開けない。
保存してファイルを閉じれば、Edgeで開ける
- 394 :デフォルトの名無しさん (ワッチョイ e7eb-wh/5):2016/09/04(日) 13:14:28.42 ID:YgDG3bQz0.net
- >>389
あなたが他のプログラム言語をすでに習得しているなら、「C# ポケットリファレンス」
全く初めてなら、「独習c#」をやり、"いける!"と感じてある程度読んだら「作って覚える〜」を買う
- 395 :デフォルトの名無しさん (ワッチョイ f7de-wh/5):2016/09/04(日) 13:27:59.68 ID:46wwYnAY0.net
- >>389
俺は勉強中の素人だけど・・・。
「作って覚えるVisual C# デスクトップアプリ入門」は、他の言語の経験がない初心者には良いと思う。
書いてあることに従って手を動かしていけば、簡単なGUIアプリをいくつか完成させることができた。
全くの初心者が文法の本だけを読むと「知識は得たけどどうやってアプリケーションを作るのかわからない」
ってなりかねないけど、この本ならアプリケーション作成の一通りの流れがわかる。
ただし「作って覚える〜」は、文法とかは最低限の解説しかない。
なので「独習C#」みたいな文法の本を、「作って覚える〜」の前かあとで勉強したほうが良いと思う。
「C# ポケットリファレンス」は買ったけどあまり読んでない。
文法の本で基礎的なことを勉強したあとは、ググって見つけた断片的な情報でも理解できることが多くなったし
Visual Studioのオンラインヘルプもあるので、それらで事足りた。
あって困ることはないけど、入門段階の人がこの本を持っていても役立つ機会は少ないかもしれない。
- 396 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/04(日) 14:13:25.05 ID:+MWVunUCd.net
- >>391
その辺のAPIについて調べてみます
>>393
ワードとかエクセルは開けなく
メモ帳は関係なく開けるみたい
それでむしろ困ってる
- 397 :デフォルトの名無しさん (ワッチョイ f3c9-10NS):2016/09/04(日) 14:25:32.78 ID:fDfBjjCZ0.net
- メモ帳はロックしないんだよね
- 398 :デフォルトの名無しさん (ワッチョイ c7ff-/sqZ):2016/09/04(日) 14:26:32.68 ID:NFfxFQpB0.net
- 自分が排他で開けばメモ帳でもひっかからない?
- 399 :デフォルトの名無しさん (ワッチョイ c7ff-/sqZ):2016/09/04(日) 14:37:52.81 ID:NFfxFQpB0.net
- FileShare.None でメモ帳で開いてたらダメだったよ
- 400 :デフォルトの名無しさん (ワッチョイ f77b-wh/5):2016/09/04(日) 16:48:42.62 ID:SuCh+UCd0.net
- >>386-387
これ30日だけ無料っややつだよね?
- 401 :デフォルトの名無しさん (ワッチョイ 6f3c-RETc):2016/09/04(日) 17:35:56.52 ID:xp6EP8jq0.net
- >>400
> 右側のStarter Edition100% Offをクリックするとダウンロードページに飛べます
- 402 :デフォルトの名無しさん (ワッチョイ 335b-iG4w):2016/09/04(日) 19:09:00.92 ID:wey0BvvO0.net
- >>394>>395
ありがとうございます
今日本屋に行ってみたら作って〜はあったので中身確認出来ました。予備知識がある程度あったので別の本が良さそうで見送りました
独習をネットで注文しました
文法の勉強が一通り終わってリファレンス本必要と感じたら購入したいと思います
秀和の逆引きとどっちがオススメでしょうか
- 403 :デフォルトの名無しさん (ワッチョイ 8f90-wh/5):2016/09/04(日) 21:22:56.95 ID:vP0Mcd/O0.net
- C#でExcelを開いて値を入力しています。
そこで気になったのですが、 Value2 とサンプルコードではなっていますが
Valueでも普通に値の入力は出来ます。
Value と Value の違いは何なのでしょうか?
for (int i=1; i < 20; i++) {
Range rgn = ws1.Cells[i, 1];
rgn.Value2 = i;
}
参考にしたサイト
https://www.ipentec.com/document/document.aspx?page=csharp-save-excel-new-file-and-write
- 404 :デフォルトの名無しさん (ワッチョイ 0b7b-T4ZI):2016/09/04(日) 21:39:19.51 ID:jyxhfMV30.net
- value value2
で検索検索ゥ!
- 405 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/04(日) 21:41:46.59 ID:gv6Up0S3a.net
- >>403
http://echo.2ch.net/test/read.cgi/tech/1467142749/474
同じ人かな?
- 406 :デフォルトの名無しさん (ワッチョイ 8f90-wh/5):2016/09/04(日) 21:42:38.91 ID:vP0Mcd/O0.net
- ↑
わかった!
- 407 :デフォルトの名無しさん (ワッチョイ 8f90-wh/5):2016/09/04(日) 21:58:31.41 ID:vP0Mcd/O0.net
- もう一つだけ質問があります。
Textbox1 と Textbox2 をFormの上に配置しました。
FormLoadイベントでそれぞれ
Txtbox1.text = "aaa";
Txtbox2.text = "bbb";
と値を設定したところ、なぜか画面が起動すると TextBox1の文字列が
選択状態になってしまっています。
Focusを当てる様なコードは書いていないのですが
何が原因なのでしょうか? テキストボックスの中の文字を選択状態にしたくありません。
- 408 :デフォルトの名無しさん (ワッチョイ 8f90-wh/5):2016/09/04(日) 21:58:58.04 ID:vP0Mcd/O0.net
- >>405
マジで違います。
- 409 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/04(日) 22:11:28.32 ID:gv6Up0S3a.net
- >>407
入力フォーカスを持った時全選択状態になるのはTextBoxの仕様でしょ。
その仕様を変えるのは普通は良くないと思うので、タブオーダーを変更して
起動時に別のコントロールがフォーカスを持つようにしたらどうだろう
- 410 :デフォルトの名無しさん (ワッチョイ 33d6-IPsc):2016/09/04(日) 22:11:53.78 ID:HNp7LJHt0.net
- ぐぐれば10秒で見つかるけどどんな検索の仕方してるんだよ
http://www.atmarkit.co.jp/fdotnet/dotnettips/226winloadfocus/winloadfocus.html
- 411 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/05(月) 00:29:44.94 ID:1CMVulACd.net
- あれ?昨日のペッパーって全ての店で297やったんか?
- 412 :デフォルトの名無しさん (スプッッ Sd5f-RETc):2016/09/05(月) 00:30:15.57 ID:1CMVulACd.net
- すまん ミスった
- 413 :デフォルトの名無しさん (ワッチョイ 8f90-wh/5):2016/09/05(月) 00:45:18.10 ID:UJz/T9P90.net
- >>409
btn_XXX.Focus();
にしましたが、やっぱりTextBoxの中に設定した文字列が選択状態になってます、、、気持ち悪いので何か良い方法はありませんか?
- 414 :デフォルトの名無しさん (ワッチョイ 33d6-IPsc):2016/09/05(月) 01:14:39.18 ID:f1PqJ2bb0.net
- 409のURLに記載されている内容を試してからレスしてね
- 415 :デフォルトの名無しさん (ラクラッペ MM4f-PdOa):2016/09/05(月) 11:31:22.21 ID:DJNBznkTM.net
-
キチガイの集まり・創価学会・公明党!
人殺しの殺人鬼が政治活動・創価学会・公明党!
池田大作・人殺しの殺人鬼・創価学会・公明党!
あやかりドチンピラの池田糞作・創価学会・公明党!
- 416 :デフォルトの名無しさん (ササクッテロ Sp8f-10NS):2016/09/06(火) 09:32:27.04 ID:zuNdDCHOp.net
- スレチかもしれませんが
ホームネットワーク内のPCにメール送受信させるにはどうすればいいのでしょうか?
- 417 :デフォルトの名無しさん (ワッチョイ f3dc-RETc):2016/09/06(火) 09:54:20.10 ID:48j2+J3I0.net
- それはリモート操作でということ?
WinRM使ってPowerShellスクリプトを実行させるのが楽じゃないかな
- 418 :デフォルトの名無しさん (ササクッテロ Sp8f-10NS):2016/09/06(火) 10:02:40.08 ID:zuNdDCHOp.net
- >>417
説明不足でした
市販アプリでメール通知してくれる物がありまして、その通知をインターネット経由では無くホームネットワーク内で完結出来ないものかと思ったのですが…
- 419 :デフォルトの名無しさん (ワッチョイ f3dc-RETc):2016/09/06(火) 10:43:55.56 ID:48j2+J3I0.net
- ローカルでメールサーバーを立てればできるけど、
構築や運用に非常に手間がかかるので素直にインターネット経由にした方がいい
そしてC#全く関係ないからスレチ
- 420 :デフォルトの名無しさん (ワッチョイ f7d4-V3yE):2016/09/06(火) 14:17:43.23 ID:exBFNrjj0.net
- 最近売れ筋の入門書にはyieldについて解説されていないようですが、これは廃れたのでしょうか?
- 421 :デフォルトの名無しさん (ワッチョイ 6730-l4Vs):2016/09/06(火) 14:35:42.66 ID:t1C08fjS0.net
- 具体的にどの入門書です?
- 422 :デフォルトの名無しさん (オッペケ Sr8f-RETc):2016/09/06(火) 18:13:23.66 ID:W4987S5sr.net
- 独学でc#やってるけど、他人が作ったコード組み合わせるだけでどんなアプリでも作れるね
あとはITリテラシー低い連中に高く売りつければいいだけ
楽すぎる
- 423 :デフォルトの名無しさん (スププ Sd5f-JXyZ):2016/09/06(火) 18:20:39.68 ID:ltEGP2sud.net
- そのコードを見つけてくる検索力がすごい
- 424 :デフォルトの名無しさん (ワッチョイ 17cb-RETc):2016/09/06(火) 23:37:15.30 ID:Sfilc/xC0.net
- >>422
俺の知らない(pcのダウンロード履歴にないでおk)エロ動画を自動でダウンロードするアプリを頼む
- 425 :デフォルトの名無しさん (ワッチョイ 8f90-wh/5):2016/09/06(火) 23:56:35.73 ID:FO29RTxa0.net
- yeild とか現役で開発してた時にすら
使った事ない
構造体もだ
- 426 :綴りw (ドコグロ MM9f-RETc):2016/09/07(水) 08:07:05.36 ID:AUiAMendM.net
- >>425
確かに俺もないわ
構造体の方はあるけど
- 427 :デフォルトの名無しさん (オッペケ Sr8f-RETc):2016/09/07(水) 08:15:44.73 ID:X+3Ie8TTr.net
- >>424
なんかできそうな気するわ
金になるならやる
- 428 :デフォルトの名無しさん (ワッチョイ c7ff-/sqZ):2016/09/07(水) 11:31:58.86 ID:8SeVjemL0.net
- yeildはUnityにいったら急に使うようになったw
- 429 :デフォルトの名無しさん (ワッチョイ c7ff-/sqZ):2016/09/07(水) 11:32:29.22 ID:8SeVjemL0.net
- おっとコピペしたから綴りは無視で。。。
- 430 :デフォルトの名無しさん (ワッチョイ 6bd4-V3yE):2016/09/07(水) 12:00:19.60 ID:eVTUc00Y0.net
- Unityの場合、言語仕様が謎でAwait/Async(C#5)が使えず、コルーチンを使わざるを得ない場面が多くてyield必須になってくるんだろうけどさあ・・・・
これに関連して思い出したんだけど、UnityのC#の言語仕様ってどこかに公開されてないのかな?
一説にはC#3相当とは言われているものの、ちょっと試してみた感じだとラムダ式でメソッドを記述(C#6)できたり、インデックス初期化子(C#6)が使えたりと謎だらけだ
- 431 :デフォルトの名無しさん (ワッチョイ 133a-RETc):2016/09/07(水) 12:11:19.15 ID:qSRr1oiT0.net
- >>430
.NET Framework 3.5 相当で動けば、C#の記法は新しくても良いとか?
でも、謎な部分あるよね。
- 432 :デフォルトの名無しさん (ドコグロ MMaf-TXi9):2016/09/07(水) 13:10:41.28 ID:QfykF8DQM.net
- >>430
シンタクックスシュガーなら内部的に構文に変換されるから使えるって話だろ。
- 433 :デフォルトの名無しさん (オッペケ Sr8f-RETc):2016/09/07(水) 13:47:51.01 ID:P9Zqjq7xr.net
- awaitとかの非同期つかうとawaitの外の配列への格納が非同期に格納されてうまく処理できない
- 434 :デフォルトの名無しさん (ワッチョイ c723-wh/5):2016/09/07(水) 14:06:02.75 ID:Wz/3zuTl0.net
- >>433
lock使ってもダメかな?
- 435 :デフォルトの名無しさん (オッペケ Sr8f-RETc):2016/09/07(水) 16:54:21.54 ID:P9Zqjq7xr.net
- >>434
試してみる!
- 436 :デフォルトの名無しさん (ワッチョイ eb7b-RETc):2016/09/07(水) 18:51:19.99 ID:ZWT9hR9W0.net
- visualstudioでコンパイルするビット数指定できると聞いたんだけど
これを外部ファイルとかで指定してビルドする方法ってないよね…?
ビット数指定のexeで指定したら、主のプログラムが指定されたビット数でビルドされるみたいな
- 437 :デフォルトの名無しさん (ワッチョイ 775e-IPsc):2016/09/07(水) 18:54:41.93 ID:G9ygDtLc0.net
- >>436
x64かx86かAnyCPUとかって話ならVSのバージョンも明示したほうがいいと思うぞ
- 438 :デフォルトの名無しさん (ワッチョイ eb7b-RETc):2016/09/07(水) 18:59:01.76 ID:ZWT9hR9W0.net
- >>437
まさにそれ
アドバイスありがと
VS2015
anyCPUってなんなんだろうな
今日はじめてこの機能知ったよ
ビット数指定なんて
- 439 :デフォルトの名無しさん (ワッチョイ eb7b-RETc):2016/09/07(水) 19:00:39.41 ID:ZWT9hR9W0.net
- 連レスですまない
communityです
- 440 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/07(水) 19:24:16.85 ID:aWoJ1pFca.net
- >>439
ん?
質問はもう解決したんだよね?
- 441 :デフォルトの名無しさん (ワッチョイ eb7b-RETc):2016/09/07(水) 19:28:03.66 ID:ZWT9hR9W0.net
- >>440
途中まではGoogle先生の検索を変えたら解決した
環境変数とか指定してコマンドラインから実行できるんだねってはなった
ただまだ全ては解決してない。
- 442 :デフォルトの名無しさん (ワッチョイ eb7b-RETc):2016/09/07(水) 19:28:52.39 ID:ZWT9hR9W0.net
- C#関係ないから別スレで頼んでくるわ
スレ汚しすまん
- 443 :デフォルトの名無しさん (ワッチョイ 6fb6-10NS):2016/09/07(水) 22:22:39.17 ID:ctWbCCsJ0.net
- for eachがインデックスの順番通り処理され(る保証が)ないのは有名だけど、yield returnで順番に返すようにしたデータをfor eachで処理する場合も順番通りにならないことってある?
調べてもそのあたりよくわからないんだけど誰かわかる人いるかな
- 444 :デフォルトの名無しさん (アウアウ Sacf-NO8Q):2016/09/07(水) 22:32:19.49 ID:aWoJ1pFca.net
- >>443
列挙子の吐き出すデータをわざわざシャッフルする馬鹿なフレームワークはありえないと思いますw
- 445 :デフォルトの名無しさん (ワッチョイ 133a-RETc):2016/09/07(水) 22:56:51.05 ID:qSRr1oiT0.net
- >>443
enumerator.MoveNext()の順に処理される
- 446 :デフォルトの名無しさん (ワッチョイ f3dc-OoDU):2016/09/07(水) 23:59:32.17 ID:If+GZyVf0.net
- >>443
どこの時空で有名なんだ?
連番のインデックスが定義されているということは即ち要素に順序が定義されているということなので、
普通は列挙子はインデックスの順番通りに要素を返すように実装するぞ
少なくとも.NET Frameworkで提供されているコレクションについては、
順番通りに要素を返さないようなクソ実装してるものはないはず
Dictionaryの順序が定義されないとかの話と混同してないか?
- 447 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/08(木) 00:10:49.36 ID:ll3GZTXWa.net
- >>446
なんか突っ込むところズレてると思うw
コード書いた人がそう保証してない限り、列挙子がインデクサと同じ順番でデータを吐き出すことを
期待してはいけないのは>>443の言う通りだよw
- 448 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/08(木) 00:24:26.03 ID:4zgfpHKTM.net
- 順序のあるコレクション列挙した順番は不定
列挙子が返す順序とforeachで列挙する順序は同じ
yieldで返した順序と列挙子が返す順序は同じ
- 449 :デフォルトの名無しさん (ワッチョイ 34cb-j70e):2016/09/08(木) 00:31:31.37 ID:YkLgKLZQ0.net
- 仮にそれが確定した仕様だったとしても自分も勘違いしちゃうような
マイナー仕様を他人にも見せるコードで書くのは好かんな
- 450 :デフォルトの名無しさん (ワッチョイ e6b6-Te6E):2016/09/08(木) 00:32:09.36 ID:Tb74UpNz0.net
- よかった、さすがにyieldで順番に返してるつもりのデータが狂った準備で処理されることはないんだね
これからも安心してyieldを多用できるよthx
- 451 :デフォルトの名無しさん (ワッチョイ 34cb-j70e):2016/09/08(木) 00:36:07.17 ID:YkLgKLZQ0.net
- foreachでしかアクセスできないようなクラス使わされて
要素を削除するときにどうしてもケツから消さないとインデックスがおかしくなるのに
foreachでしかアクセスできなくて俺はキレた
- 452 :デフォルトの名無しさん (ワッチョイ 34cb-j70e):2016/09/08(木) 00:38:11.71 ID:YkLgKLZQ0.net
- >>450
えーでもさ
お前その動作が分かり難いって身を持って体験したのに
他人にはそういうコード見せちゃうんだ?
- 453 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/08(木) 00:45:18.97 ID:4zgfpHKTM.net
- ちなみにFCLの順序有りコレクションは列挙順も同じになると保証されている
- 454 :デフォルトの名無しさん (ワッチョイ e6b6-Te6E):2016/09/08(木) 00:54:44.18 ID:Tb74UpNz0.net
- みせないよ
全部dllにするしprivateメソッド内でしか使わないから
- 455 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/08(木) 00:56:43.05 ID:ll3GZTXWa.net
- >>451
余程パフォーマンスの要求が厳しいとかじゃなきゃ、列挙してるコレクションからアイテム削除するって
あんまり良い作法とは思えんなあそもそも。
列挙と操作は分ければいいのに。
列挙字に削除するアイテムをLilstに入れるとか、逆に残す方にするとか、
やり方いろいろあるよねえ。
- 456 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/08(木) 07:40:16.14 ID:b73KNLmzd.net
- >>443
これ本当なのか?
- 457 :デフォルトの名無しさん (ワッチョイ 9823-tq+X):2016/09/08(木) 09:05:54.31 ID:lIlJcuEY0.net
- シーケンスを自分で組めば作ったように動くが、MSのライブラリなどは保証していないってことでしょ
- 458 :デフォルトの名無しさん (ワッチョイ 11dc-j70e):2016/09/08(木) 09:16:49.80 ID:mLK2BL1B0.net
- いや基本的に「コレクションの要素順」に返ることは保証されてるよ
Dictionaryみたいに「挿入順」を保持しないものは存在するけど、コレクションの要素順に返ることには違いない
https://msdn.microsoft.com/ja-jp/library/s793z9y2(v=vs.110).aspx
- 459 :デフォルトの名無しさん (ワッチョイ f053-Te6E):2016/09/08(木) 12:37:21.85 ID:BaIwaWl+0.net
- となると順序のあるコレクションではその順に処理されると考えていいな。
列挙子がコレクションの順序と違う順に返したらそれもう順序のあるコレクションじゃないわけだし。
- 460 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/08(木) 12:52:34.95 ID:jmQRCRWra.net
- >>459
スタックなんかインデクサはLIFO、列挙した場合はFIFOでもおかしくないし
そういう実装されても文句は言えないと思うけどw
- 461 :デフォルトの名無しさん (ワッチョイ f053-Te6E):2016/09/08(木) 13:51:27.50 ID:BaIwaWl+0.net
- その場合インデクサの大小が逆になっていると考えれば良いのでは。
- 462 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/08(木) 15:24:52.02 ID:r2DjRlBp0.net
- C#って、Perlで言う所のこんなことできる?
#まずハッシュとか配列に処理を入れる。(これはハッシュ)。
$hash{name1} = sub {処理}; #関数を宣言と同時に変数に代入
$hash{name2} = sub {処理};
$string = <>; #どっか外部から文字列を入手する
$hash{$string}->(); #実行 (エラー処理は今は書いてない)。
- 463 :デフォルトの名無しさん (ワッチョイ 11dc-j70e):2016/09/08(木) 15:26:54.32 ID:mLK2BL1B0.net
- >>462
Dictionary<string, Action>にラムダ式を入れる
- 464 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/08(木) 16:24:01.08 ID:r2DjRlBp0.net
- >>463
ありがとう。
検索したけどずっと動かないと思ったら.NetFrameWorkのバージョンのせいだった
- 465 :デフォルトの名無しさん (ワッチョイ 98d4-T8i7):2016/09/08(木) 16:54:52.72 ID:2NLKCBtb0.net
- ちょっとやそっと.NetFrameworkが古いぐらいじゃ動くと思うけどな・・・・
- 466 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/08(木) 18:02:45.61 ID:xMRsbH3+d.net
- 初歩の初歩の質問だと思うのだけど教えてくだされ
.net frameworkってdll形式なの?
開発環境と実行環境異なってたら使えなかった
exeファイル入ったプロジェクトそのまま持っていけば動くと思ったけど甘かったんでしょうか
- 467 :デフォルトの名無しさん (スプッッ Sd78-j70e):2016/09/08(木) 18:06:19.95 ID:tu6IqL7jd.net
- 1.0でも使ってんじゃね
- 468 :デフォルトの名無しさん (スプッッ Sd78-j70e):2016/09/08(木) 18:08:40.15 ID:tu6IqL7jd.net
- >>466
ランタイムもインストールしないと
- 469 :デフォルトの名無しさん (ワッチョイ 81d6-XNJE):2016/09/08(木) 18:42:01.82 ID:rYr1hc3Z0.net
- windows updateを忘れずにしていれば最新版が勝手に入ると思うんだけど
いまどき.net frameworkが入っていないパソコンってあるのか?
- 470 :デフォルトの名無しさん (ワッチョイ 93c0-tq+X):2016/09/08(木) 19:14:04.67 ID:hJk2TQC90.net
- 最近のOSで3.5以前のEXEを動かそうとして失敗するケースはよく見かける
- 471 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/08(木) 19:19:20.69 ID:xMRsbH3+d.net
- 書き方がまずかったすみません
開発環境には2015入ってて実行環境には何も入ってない
ただプロジェクトフォルダそのまま持っていけば全部梱包されてるからできるだろーって
やってみたらできなかった…って感じです
本当に初歩の初歩ですまないが教えて下さい
- 472 :デフォルトの名無しさん (ワッチョイ 3d38-ZwPk):2016/09/08(木) 19:22:09.82 ID:X4kUfY+40.net
- >>471
>>468
- 473 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/08(木) 19:35:45.77 ID:xMRsbH3+d.net
- >>472
ランタイムぐぐってくる
ありがとう
教えてくれた人ともう一度教えてくれた人
- 474 :デフォルトの名無しさん (ワッチョイ e53c-j70e):2016/09/08(木) 19:37:21.52 ID:d9ZZl7aD0.net
- >>469
4.6Xって可能性もあるだろ
- 475 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/08(木) 19:46:50.92 ID:GLpY6Jp90.net
- >>473
https://msdn.microsoft.com/ja-jp/library/5a4x27ek(v=vs.110).aspx
- 476 :デフォルトの名無しさん (ワッチョイ 93e2-GoLj):2016/09/08(木) 19:49:07.02 ID:qh7bbUgC0.net
- await Task.Run(() => { cal(); });
(略)
private int cal(){
return 100;
}
上のタスクはどう記述すれば戻り値を受け取れますか?
voidをintにできないとエラーがでます
- 477 :デフォルトの名無しさん (ワキゲー MM4e-Td3s):2016/09/08(木) 20:04:29.51 ID:wSgtkTSYM.net
- Task<int>
- 478 :デフォルトの名無しさん (ワキゲー MM4e-Td3s):2016/09/08(木) 20:06:49.75 ID:wSgtkTSYM.net
- あとブロックにするなら明示的にreturn
{return cal();}
- 479 :綴りw (ドコグロ MMde-j70e):2016/09/08(木) 20:09:46.27 ID:ZGDN5kDfM.net
- >>471
とりあえず開発環境と実行環境のOS書けよ
- 480 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/08(木) 20:36:39.68 ID:5+Utboodd.net
- >>479
開発環境 win10
実行環境 xp
長い間アプデできてない当たり前だけど
- 481 :デフォルトの名無しさん (ドコグロ MMde-j70e):2016/09/08(木) 20:56:01.20 ID:ZGDN5kDfM.net
- >>480
> 実行環境 xp
> 長い間アプデできてない当たり前だけど
>>469 の懸念が現実のものになるとは...
> いまどき.net frameworkが入っていないパソコンってあるのか?
- 482 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/08(木) 21:00:01.99 ID:GLpY6Jp90.net
- XPだと.NET Framework 4だから、
プロジェクトの対象のフレームワークを.NET Framework 4にしないと生け贄を捧げても動かない
VS2015だとデフォは.NET Framework 4.5.2のはず
まとめると
プロジェクトは対象フレームワークを.NET Framework 4に変更してビルドし直す
XPには.NET Framework 4をインストールする
- 483 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/08(木) 21:03:27.90 ID:5+Utboodd.net
- >>481
>>482
そう言うことか
ってかネットフレームワークって標準なんだな
ビジュアルスタジオについてくるもんだと思ってたよ
- 484 :デフォルトの名無しさん (ワッチョイ 3e90-tq+X):2016/09/08(木) 21:15:22.43 ID:UTR6V9h30.net
- Google Analytics の調子が悪い
- 485 :デフォルトの名無しさん (ワッチョイ bc42-tq+X):2016/09/08(木) 22:19:22.26 ID:A7Pb5oFv0.net
- おまいの個人データぶっこ抜くのに忙しいんだよ
- 486 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/09(金) 07:42:45.67 ID:Im9/6uOtd.net
- C#でdll・ヘッダファイルに定義されてる関数を
テキストファイルやxmlファイルから読み込んで動的に呼び出す手法は以下以外にあるかな
別スレでこんな意見を頂いた
他にも手法あるならそれと比べて設計考えてみたいんだ
69 以下、無断転載禁止でVIPがお送りします 2016/09/08(木) 21:10:41.799 ID:BdEIRhbW0
>>65
相手のコードがc#でビルドされてるのが前提で
事前にAssembly.LoadFromでdll取得して
後はテキストから関数名と引数引っ張って事前に読み込んだassemblyからGetTypeで型とってGetMethodでメソッドとって引数は配列に詰めてInvokeする
- 487 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/09(金) 10:58:24.81 ID:7hmX2uTk0.net
- >>486
呼び出される側(dll側)は何で開発されているかはっきりさせてくれ
別スレの人も
>相手のコードがc#でビルドされてるのが前提
と断ってるが
>dll・ヘッダファイルに定義されてる関数を
という部分を考えると、相手のコードはC#で開発されているように見えない
- 488 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 12:46:53.61 ID:dr6bYi/v0.net
- C#始めたばかりなんですが、
当たり前のようにフィールドって言葉を使われ始めました。
ちょっと解説してください。
- 489 :デフォルトの名無しさん (ワッチョイ 4919-u8AM):2016/09/09(金) 12:50:28.56 ID:wNOotapd0.net
- class {
int a; // <= フィールド
int B { get { return a; } set { a = value; } } // <= プロパティ
int C() { return a; } // <= メソッド
}
- 490 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 12:56:02.44 ID:dr6bYi/v0.net
- >>489
クロージャってこと?
違うか?
- 491 :デフォルトの名無しさん (ワッチョイ 98d4-T8i7):2016/09/09(金) 12:59:18.99 ID:/qYjDQsk0.net
- フィールドってクラスに属してる変数のことだよ
- 492 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 13:01:49.33 ID:dr6bYi/v0.net
- ふむふむ
その変数は、インスタンスごとに個別に発生する値で、なおかつクラス内で共有ってことですか?
- 493 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 13:05:04.75 ID:dr6bYi/v0.net
- 質問連打ですみませんが、メンバもよく分かりません。
メソッドのことですか?
- 494 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 13:26:54.06 ID:dr6bYi/v0.net
- 分かってきました。
C#は、コンストラクタの実行時にメソッド以外にも色々インスタンスが生成されて返される。
メソッドが生成されればメソッド。
変数が生成されればフィールド。
そうゆうのを全部まとめてメンバ。
って解釈でいいでしょうか?
- 495 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/09(金) 13:59:16.94 ID:7hmX2uTk0.net
- >>494
https://msdn.microsoft.com/ja-jp/library/ms173113.aspx
- 496 :デフォルトの名無しさん (ワッチョイ 6923-tq+X):2016/09/09(金) 14:00:32.59 ID:2SLUNITP0.net
- 横槍ですまんが、>>488がこれまでに触ったことがある他のプログラミング言語を言えばレスつけやすくなるんじゃないか?
- 497 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 14:14:29.68 ID:dr6bYi/v0.net
- すまん、ありがとう。
けっこう分かってきた。
処理構造はこう書けって決まってるというか、用意されてる感じの言語なのね。
ちなみにCとPerlです。
- 498 :デフォルトの名無しさん (ラクラッペ MMb1-tq+X):2016/09/09(金) 15:45:45.00 ID:+pScTfufM.net
- ChartのDataSourceにDataSetを割り当てて、SeriesのXValueMember, YValueMemberにDataColumnを割り当てたいのですが、
YValueMemberだけが0かnoneしかなく割り当てることができません。
とりあえず0とnoneに指定して動作させても、X軸だけ増える一方でY軸は表示されないままです。
どう設定すればY軸を指定できるのでしょうか?
参考サイトは以下です。
よろしくお願いします。
http://earth.air-nifty.com/blog/2011/10/cchart-7cb7.html
- 499 :デフォルトの名無しさん (ワッチョイ 4919-u8AM):2016/09/09(金) 17:05:47.56 ID:wNOotapd0.net
- 対象のDataTableに数値型の列が存在していないとか
- 500 :デフォルトの名無しさん (アウアウ Sa35-1gdI):2016/09/09(金) 19:08:06.31 ID:iXjGEKQTa.net
- あかん。c#勉強始めてフォームアプリ作ってみたが、全然クラス作らないで出来上がってしまう。。
クラスにするイメージがつかん。
- 501 :デフォルトの名無しさん (オッペケ Sr3d-j70e):2016/09/09(金) 21:08:50.87 ID:N6MOLrmlr.net
- そもそも動けばいいんだよ
中身なんて誰も知らんし
- 502 :デフォルトの名無しさん (アウアウ Sa09-j70e):2016/09/09(金) 21:41:17.78 ID:oMlYA35za.net
- F#で死人が出そう
- 503 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/09(金) 22:13:58.70 ID:dr6bYi/v0.net
- string.Joinがあるのにstring.Concatがあるのを教えてクレメンス
- 504 :デフォルトの名無しさん (ワッチョイ 81d6-XNJE):2016/09/09(金) 22:34:20.31 ID:skcsL2YB0.net
- JoinとConcatの引数を確認すりゃ分かるけど用途が違う
- 505 :デフォルトの名無しさん (スプッッ Sd78-j70e):2016/09/10(土) 00:00:05.31 ID:ERC4HZmfd.net
- >>487
両方ともC#です!
- 506 :デフォルトの名無しさん (ワッチョイ 9541-RG0E):2016/09/10(土) 00:47:28.10 ID:67HVyNly0.net
- >>500
そもそも中規模以上の開発における
諸問題への対応策として生まれたのが
オブジェクト志向なんだから
それでいいし
最初はあんま意識しなくていいと思う
- 507 :デフォルトの名無しさん (ワッチョイ 3e90-tq+X):2016/09/10(土) 01:15:23.70 ID:Wm1HNmHU0.net
- 朝日新聞大阪本社 記者
西村 圭史 (ニシムラ ケイシ)
nishimura-k5@asahi.com
取材させてください。
- 508 :デフォルトの名無しさん (オッペケ Sr3d-j70e):2016/09/10(土) 03:33:26.64 ID:OS/pxD32r.net
- 画素編集のFormアプリ作ってるんだけど、コンパイルしてんのに処理重いのはなんで?
フォトショップとか、なんでレイヤーいくつも重ねてもサクサク動くんだよ…作ってる奴らすげえな
- 509 :デフォルトの名無しさん (ワッチョイ c69f-wdYe):2016/09/10(土) 03:54:14.48 ID:Cc+a6CZq0.net
- 並列化を駆使して色々やってるからだろ
スレッドとかSIMDとかGPUとか
- 510 :デフォルトの名無しさん (ワッチョイ f053-Te6E):2016/09/10(土) 06:03:52.43 ID:4AzSt0BN0.net
- ちゃんと書けばそこまでしなくてもそんなに遅くない
- 511 :デフォルトの名無しさん (ワッチョイ bc7b-DgIw):2016/09/10(土) 06:47:02.70 ID:iNw4r1ei0.net
- 毎フレーム、全部の画素を、メモリにコピーするからだろ
最初にメモリにコピーしたら、そのメモリをずっと使えばいい
- 512 :デフォルトの名無しさん (ワッチョイ f053-Te6E):2016/09/10(土) 06:59:04.57 ID:4AzSt0BN0.net
- レイヤーが10枚あって8番目のレイヤーで作業してるときは、
・1〜7番レイヤーを合成済みの画像 *1
・8番レイヤー (編集対象)
・9〜10番レイヤーを合成済みの画像 *2
の3つを合成して表示すりゃいいんだよ。
*1、*2 はアクティブなレイヤーを切り替えるときに計算しておく。
これなら何十枚あってもブラシとかは軽いだろ?
- 513 :デフォルトの名無しさん (ワッチョイ c15b-1gdI):2016/09/10(土) 10:03:42.17 ID:zhSU2N3O0.net
- >>506
ありがと
ちょっとずつ機能を足しながらクラスの使い方勉強していくよ
- 514 :デフォルトの名無しさん (オッペケ Sr3d-j70e):2016/09/10(土) 10:11:09.24 ID:OS/pxD32r.net
- >>511
Bitmapに入れといてるよ
>>512
編集対象を8番目から5番とかに変えたら、また全部の合成の再計算になるよね?
アクティブなレイヤーを変えたり、レイヤーを表示・非表示に切り替えただけで全部再計算が必要な気がする
- 515 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/10(土) 10:14:34.09 ID:oyefpNCyM.net
- >>514
キャッシュを使う
- 516 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/10(土) 12:10:04.49 ID:7MaNMesA0.net
- C#のnamespaceは、Classを束ねる物として機能してるんですか?
なので、
a = new namespace.class();
a.hoge();
// NameSpace.Classname.MethodName みたいな関係になるというか
- 517 :デフォルトの名無しさん (ワッチョイ 937b-Td3s):2016/09/10(土) 12:13:09.95 ID:/+pbEB3C0.net
- クラスを束ねるものとして機能
っていうのがどういうの想定してるのか分からんからなんとも
- 518 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/10(土) 12:17:01.14 ID:8vECtVT4M.net
- 名前空間は名前を管理するもの
クラスを管理しているわけではない
- 519 :デフォルトの名無しさん (ワッチョイ 6923-tq+X):2016/09/10(土) 12:17:20.05 ID:Rv8WG5cB0.net
- namespace については↓
https://msdn.microsoft.com/ja-jp/library/z2kcy19k.aspx
下の方にある For More Information のリンク先も読むことをお勧めする
- 520 :デフォルトの名無しさん (ワッチョイ b5a1-Te6E):2016/09/10(土) 12:19:28.84 ID:qVsRfG5m0.net
- 名前空間自体はプレフィックスを構造化した物に過ぎない様な
.NET Frameworkにおいては確かに機能群を束ねるのに使われてるけど
- 521 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/10(土) 12:24:02.58 ID:8vECtVT4M.net
- >>520
機能を束ねてはいない
名前を束ねているだけ
- 522 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/10(土) 12:30:16.44 ID:7MaNMesA0.net
- 分かりました。
名前空間は型なのですね。
- 523 :デフォルトの名無しさん (ワッチョイ 81d6-XNJE):2016/09/10(土) 12:35:43.10 ID:mo9S6SVL0.net
- 何も分かっていないじゃん
- 524 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/10(土) 12:39:41.86 ID:7MaNMesA0.net
- 一応公式にはそのように記述されてたのですが・・・
違うと思った場合は、その旨に沿って返答いただけると質問に対する助けとなりますです。
- 525 :デフォルトの名無しさん (アウアウ Sa35-1gdI):2016/09/10(土) 12:42:31.05 ID:x75xnK8ka.net
- javaのpackageと同じかってことを言いたいのか?
- 526 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/10(土) 12:47:32.32 ID:8vECtVT4M.net
- >>524
引用して
- 527 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/10(土) 12:51:26.59 ID:7MaNMesA0.net
- 俺的には解決したからもういいよ
具体的な何かが出てきたらまた質問する
- 528 :デフォルトの名無しさん (ワッチョイ bc42-MXHb):2016/09/10(土) 12:55:43.79 ID:DPMvCIey0.net
- >>522
違います
例えば"報告書印刷"クラスが「営業」用と「総務」用と「経理」用の3種類あるとしよう
"営業報告書印刷"クラス、"総務報告書印刷"クラス、"経理報告書印刷"と別々のクラス名でもいいが
そういうふうにクラス名にいろんな情報を付加するとどんどんクラス名が長くなってしまうだろ
そこで、名前空間を使って整理するんだよ
例えば"業務"名前空間内に"営業"名前空間と"総務"名前空間と"経理"を置いて
そこにそれぞれの"報告書印刷"クラスを置くと
これで
業務.営業.報告書印刷クラス ※業務.営業が名前空間
業務.総務.報告書印刷クラス ※業務.総務が名前空間
業務.経理.報告書印刷クラス ※業務.経理が名前空間
という風に"報告書印刷"という単純なクラス名ながら、名前空間で区別、整理できて便利
※わかりやすく説明するためにクラス名や名前空間名は日本語にした
- 529 :デフォルトの名無しさん (ワッチョイ bc42-MXHb):2016/09/10(土) 13:00:54.61 ID:DPMvCIey0.net
- >>524
名前空間も含めたクラス名が型ってことだよ
- 530 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/10(土) 13:00:55.18 ID:7MaNMesA0.net
- ありがとう。
ただそれは最初の質問となにが違うのでしょうか?
一応質問の趣旨としては、名前空間とクラスが無関係であるケースの言語も多いから聞いたのですが。
- 531 :デフォルトの名無しさん (ワッチョイ bc42-MXHb):2016/09/10(土) 13:07:18.31 ID:DPMvCIey0.net
- >>530
あー、最初の質問は見てないわ
まー、名前空間ってそういうもんだと思っとけばいいよ
それ以上の詳しくは自分で勉強・研究してくれ
- 532 :デフォルトの名無しさん (ガラプー KK6b-viWw):2016/09/10(土) 14:18:37.23 ID:vbKJk9JlK.net
- 今始めたばかりの初心者なんだけどエラーがでる…
誰か解決してください!
main(){
print("やっほー!");
}
- 533 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/10(土) 14:19:45.47 ID:7MaNMesA0.net
- なんかな、cwて書いてタブを2回押すとええねんて
- 534 :デフォルトの名無しさん (ワッチョイ bc5e-XNJE):2016/09/10(土) 14:37:45.49 ID:6Xz+/qd00.net
- >>514
Bitmapは大きな画像になるとやたらメモリを食うし、バイト配列に変えて処理した方が速い場合もある
とりあえず画像処理やるのはC#(とGDI+)は向いていないと思う。Unityとかならともかく
合成はある程度の大きさがあって何枚もあったらC++でもそんな速くはならないからいろいろ工夫する必要があると思う
ググったらその手のことやっているところはいくつかヒットするよ
>>532
やりたいことは何か、表示されたエラーは何か書かないとな
ここにいるのは回答者も初心者が大半だからそれだけじゃわからん
もしくは↓へどうぞ
エスパーが質問に答えるスレ
http://echo.2ch.net/test/read.cgi/tech/1187922645/
- 535 :デフォルトの名無しさん (ワッチョイ 7d4a-chQw):2016/09/10(土) 15:30:38.68 ID:ViqXWo9H0.net
- // こういう同じメンバーを持つ二つのクラスがあって
public class MyClass1
{
public int id;
public string name;
}
public class MyClass2
{
public int id;
public string name;
}
// この関数を二つのクラスから使いたいのですが、
void func(MyClass1 mc1)
{
var id = mc1.id;
var name = mc1.name;
}
// こんな風にすると
void Main()
{
MyClass1 mc1 = new MyClass1();
func(mc1);
MyClass2 mc2 = new MyClass2();
func(mc2); //<====== 当然ここでエラーしますよね。
}
func()の引数のあたりをどうにか改造して、MyClass1でもMyClass2でも
引数で受けられるようにできますか?
- 536 :デフォルトの名無しさん (ワッチョイ 7d4a-chQw):2016/09/10(土) 15:36:54.17 ID:ViqXWo9H0.net
- 補足です。
MyClass1とMyClass2の定義は変更しないという条件でお願いします。
- 537 :デフォルトの名無しさん (ワッチョイ 693a-j70e):2016/09/10(土) 15:41:00.20 ID:S2i4VzyR0.net
- >>535
void func(dynamic mc1)
{
int id = mc1.id;
string name = mc1.name;
}
- 538 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/10(土) 15:42:02.88 ID:6z3ll4dhM.net
- void func(dynamic dmc) { 以下略
- 539 :デフォルトの名無しさん (ワッチョイ 7d4a-chQw):2016/09/10(土) 15:44:33.78 ID:ViqXWo9H0.net
- >>537
ありがとうございました。
助かりました。
- 540 :デフォルトの名無しさん (ワッチョイ 7d4a-chQw):2016/09/10(土) 16:08:06.37 ID:ViqXWo9H0.net
- 問題がありました。
本当は、funcの引数は
void func(MyClass1 mc1) {...}
ではなくて、
void func(List<MyClass1> mc1_list) {...}
という形式です。
そしてfuncの中でLinqを使っていて
var a = from e in mc1_list
where e.id == 10
select e.name;
みたいな処理があるのですが、
void func(dynamic mc1_list) {...}
にしたら、
ソース型 'dynamic' に対するクエリ式または型 'dynamic' の結合シーケンスのあるクエリ式は使用できません
と言うエラーが出ました。
どうすれば良いでしょうか?
- 541 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/10(土) 16:11:51.94 ID:6z3ll4dhM.net
- func(IEnumerable<dynamic> dmcs) { 以下略
- 542 :デフォルトの名無しさん (ワッチョイ 7d4a-chQw):2016/09/10(土) 16:19:03.49 ID:ViqXWo9H0.net
- >>541
ありがとうございました。
うまく行きました。
2chには優秀な人が多いですね。
助かりました。
- 543 :デフォルトの名無しさん (ラクラッペ MMb1-tq+X):2016/09/10(土) 19:38:25.00 ID:jNfWtnbnM.net
- >>499
ドロップダウンの中選ぶのではなく、直接文字を入力したらできました。
レスありがとうございました。
- 544 :デフォルトの名無しさん (ワッチョイ f053-Te6E):2016/09/10(土) 19:47:21.98 ID:4AzSt0BN0.net
- >>514
適当な枚数のレイヤーごとにコンポジション結果をキャッシュしておくとか色々工夫のしようがある。
分割統治法ね。
あと質問しといてアドバイスに反論すんなよ…議論したいなら質問じゃなく自分なりの意見やアイデアを書けよ。気分悪いわ。
- 545 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/10(土) 20:04:14.12 ID:qbdJrNQPa.net
- >>544
質問してる奴は反論するなってよー分からん感覚だなw
いっちゃ悪いけどそれで気分が悪くなるんならお前さんが人間的に幼すぎるんだよw
- 546 :デフォルトの名無しさん (オッペケ Sr3d-j70e):2016/09/10(土) 20:06:07.74 ID:OS/pxD32r.net
- >>534
むちゃくちゃありがとう!
といってももうすでにC#でBitmapで作ってしまってるのでなんとか頑張ります…
>>515
キャッシュも調べてみます!
- 547 :デフォルトの名無しさん (アークセー Sx3d-j70e):2016/09/10(土) 20:35:04.49 ID:lhsLes9jx.net
- >>544
バカ発見
- 548 :デフォルトの名無しさん (アウアウ Sa09-j70e):2016/09/10(土) 20:39:01.13 ID:vL431mpna.net
- ポリモーフィズムを使えよ
- 549 :デフォルトの名無しさん (オッペケ Sr3d-j70e):2016/09/10(土) 21:18:48.94 ID:OS/pxD32r.net
- >>544
ごめんw
そのつもりで書いたんじゃないけど再度読んだらそう見えるな…
- 550 :デフォルトの名無しさん (ブーイモ MM28-Te6E):2016/09/10(土) 21:24:42.77 ID:Vmp4NXtlM.net
- というか初心者は2chなんかで遊んでないで本を読んでteratailにでも行きなさい
- 551 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/11(日) 01:24:47.80 ID:KwUcbZQO0.net
- 始めたばかりでパブリックとスタティックとプライベートの違いが分からんのだけど、
namespace main_file
{
class Program {
static void Main(string[] args) {
file1.TestClass TestA = new file1.TestClass("引数1");
file1.TestClass TestB = new file1.TestClass("引数2");
TestA.pub = "てすと1";
TestB.pub = "てすと2";
TestA.method();
TestB.method();
}
}
}
namespace file1 {
class TestClass {
private string prv = ""; //クロージャ? インスタンスごとに個別くさい
static string sti = ""; //クロージャじゃないこと確定。インスタンス関係なくオブジェクトで共有。
public string pub = ""; //パブリック。インスタンスごとに個別でどこからでもアクセスできる?
public TestClass (string con){ //クラス名を同じにするとコンストラクタやねんて。でも呼ぶときはnewやん
sti = con;
prv = con;
pub = con;
}
public void method() {
Console.WriteLine("static: " + sti);
Console.WriteLine("private: " + prv);
Console.WriteLine("public: " + pub);
}
}
}
- 552 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/11(日) 01:25:09.11 ID:KwUcbZQO0.net
- Perlで書くとこれで合ってる?
{
package main_file;
my %TestA = file1::TestClass("引数1");
my %TestB = file1::TestClass("引数2");
${$TestA{pub}} = "てすと1";
${$TestB{pub}} = "てすと2";
$TestA{method}->();
$TestB{method}->();
}
{
package file1;
my $sti = ""; #スタティックな変数をシミュレート
sub TestClass {
my $prv = $_[0]; #クロージャとして機能させる
my $pub = $_[0];
$sti = $_[0];
my $sub = sub {
print "static: " . $sti . "\n";
print "private: " . $prv . "\n";
print "public: " . $pub . "\n";
return();
};
return( method => $sub, pub => \$pub); #パブリックは呼び出し元でアクセスできるようアドレスを返す
}
}
- 553 :デフォルトの名無しさん (ワッチョイ 1c7b-sMwW):2016/09/11(日) 02:34:05.89 ID:PXOT+RwB0.net
- perl厨お断り
- 554 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/11(日) 03:42:16.63 ID:K+OtkjhU0.net
- Perlやってると勉強はできなくなるらしいな
- 555 :デフォルトの名無しさん (ワッチョイ fb49-nhzf):2016/09/11(日) 04:05:19.92 ID:RiSeQbPk0.net
- >>551
public/privateとstaticはごっちゃにしたらダメ。
public staticとかprivate staticとか指定出来る。
- 556 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/11(日) 05:06:56.23 ID:KwUcbZQO0.net
- >>555
わかった。ありがとう。
- 557 :デフォルトの名無しさん (ワッチョイ 9342-tq+X):2016/09/11(日) 09:05:21.64 ID:BLHdbzh90.net
- Perlのような変態言語が組めるのに
なぜC#のアクセス指定子ごときで躓くのか
- 558 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/11(日) 09:19:28.13 ID:16fUBnygM.net
- こうも連日つまらない質問が来ると辟易すえうね
入門書ぐらいは読んでから質問したらどうなの
- 559 :デフォルトの名無しさん (ワッチョイ 693a-tq+X):2016/09/11(日) 13:58:37.76 ID:BlSjMya00.net
- >>552
blessを使わず、
わざわざhashぽく関数参照して呼び出す意図は?
- 560 :デフォルトの名無しさん (ワッチョイ 693a-tq+X):2016/09/11(日) 14:02:38.75 ID:BlSjMya00.net
- // C# のクロージャ例
Func<int> CreateClosure()
{
int i = 0;
Func<int> counter = () => ++i;
return counter;
}
- 561 :デフォルトの名無しさん (ワッチョイ 7d4a-chQw):2016/09/11(日) 15:44:20.04 ID:EHkX+KfY0.net
- 自作のソリューションにプロジェクトが数個あり、
参照設定がリビルドなどしたタイミングで参照が見つからない
と言うエラーになる場合があります。
でもエラーが出ていても正常に実行できます。
VSを再起動するとエラーは解消します。
何が原因でしょうか?
- 562 :デフォルトの名無しさん (ワッチョイ 98d4-T8i7):2016/09/11(日) 16:03:01.02 ID:b5d1ew5Y0.net
- Perlスクリプトの翻訳を続けてもベターCの域から出ないよ
JavaでもC#でもC/C++でも変わらないから人口も多いJavaスレにでも行ったほうが幸せじゃないの?
- 563 :デフォルトの名無しさん (ワッチョイ 98ff-Ai1A):2016/09/11(日) 16:07:30.28 ID:sDjieMc30.net
- >>561
参照欄にマークついたりしてない?
そこでフルパス見られるよ
32/64関係かも?AnyCPUかな
- 564 :デフォルトの名無しさん (ワッチョイ e63c-j70e):2016/09/11(日) 16:13:14.53 ID:zF4qt1T70.net
- >>561
ビルドの順序をちゃんと指定してないんじゃね?
- 565 :デフォルトの名無しさん (ワッチョイ 98ff-Ai1A):2016/09/11(日) 16:14:34.18 ID:sDjieMc30.net
- ああ、依存関係指定してないとかか
- 566 :デフォルトの名無しさん (ワッチョイ 7d4a-lDuG):2016/09/11(日) 17:23:25.51 ID:EHkX+KfY0.net
- >>564
何回もチェックしました。
>>565
何十回もチェックしました。
- 567 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/11(日) 17:29:29.42 ID:WnLcVcZ+a.net
- >>566
ないとは思うけど、ひょっとして
プロジェクト参照じゃなくてアセンブリを直接参照とかしてない?
- 568 :デフォルトの名無しさん (ワッチョイ 7d4a-lDuG):2016/09/11(日) 17:31:32.28 ID:EHkX+KfY0.net
- >>567
してますが何か問題有りますか?
- 569 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/11(日) 17:33:22.28 ID:WnLcVcZ+a.net
- >>568
現に問題起こってるじゃんw
- 570 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/11(日) 17:34:29.53 ID:16fUBnygM.net
- プロジェクトあるのにアセンブリ参照するのは何故?
- 571 :デフォルトの名無しさん (ワッチョイ 7d4a-lDuG):2016/09/11(日) 17:35:29.68 ID:EHkX+KfY0.net
- >>570
癖です
- 572 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/11(日) 17:36:34.78 ID:16fUBnygM.net
- >>571
癖なら仕方がないですね
- 573 :デフォルトの名無しさん (ワッチョイ 7d4a-lDuG):2016/09/11(日) 17:40:33.13 ID:EHkX+KfY0.net
- >>572
2013ではこの問題は出なかったのに
2015ではこの問題が出ます。
なぜですか?
- 574 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/11(日) 17:43:10.59 ID:16fUBnygM.net
- >>573
不思議ですね
- 575 :デフォルトの名無しさん (ワッチョイ 81d6-XNJE):2016/09/11(日) 17:44:42.34 ID:pxo2/Ce40.net
- >>573
おじいちゃんボケちゃったの?
- 576 :デフォルトの名無しさん (ワッチョイ 7d4a-lDuG):2016/09/11(日) 17:45:02.33 ID:EHkX+KfY0.net
- >>574
2015のバグでしょうか?
- 577 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/11(日) 17:46:10.32 ID:WnLcVcZ+a.net
- >>573
運が良かっただけだと思うよw
VS2005の時代によく分かってなくて同じチョンボをしたことがあるけど、
やっぱり>>561みたいな気まぐれに問題が起こる感じだった
- 578 :デフォルトの名無しさん (ブーイモ MMb1-Te6E):2016/09/11(日) 17:49:58.65 ID:16fUBnygM.net
- >>576
わかりかねます
Microsoftに問い合わせてみてはどうでしょうか
- 579 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/11(日) 18:56:50.78 ID:WnLcVcZ+a.net
- 静かになったのはやっぱり>>567が原因か?
これだけ騒いだんだから報告ぐらいして欲しいよね
- 580 :デフォルトの名無しさん (ワッチョイ fb49-nhzf):2016/09/11(日) 23:06:03.58 ID:RiSeQbPk0.net
- >>576
VSのバグじゃなくて、使い方が悪い。
アセンブリ参照する時は、そのアセンブリ自体はビルド時に更新されないことが前提。
もしそのビルドで更新されるなら、プロジェクト参照を使うべき。
- 581 :デフォルトの名無しさん (ワッチョイ b0eb-tq+X):2016/09/12(月) 11:37:15.05 ID:xRlv9baY0.net
- >>532
class sample
{
static void Main()
{
Console.WriteLine("ヤッホー(∩´∀`)∩\n");
}
}
- 582 :デフォルトの名無しさん (ワッチョイ 1c7b-tq+X):2016/09/12(月) 15:10:57.76 ID:dC9AlG3D0.net
- >>559 ブレスでクロージャは出来ない気がしたから。深い意味はない。
>>560 ありがとう
あと関係ないけど、今GUIの勉強で猫でも分かるなんちゃらってサイト見てるのだけど、
猫には分かっても俺にはわからないことがけっこうあるようなので、
そんな俺みたいなレベルの人にも分かるようなサイト知ってる人がもし居たら教えてください。
http://www.kumei.ne.jp/c_lang/index_form.html
- 583 :デフォルトの名無しさん (ワッチョイ 34ce-BWVR):2016/09/12(月) 17:51:17.34 ID:qDbI1d2i0.net
- 今32bit環境も想定して32bitで作成中なんですが、主に動かすのは64bit環境です。
それで、中身は主にWin32APIを使うプロジェクトなんですが、
DllImportした際に受け渡す構造体とかの32bit/64bit環境のサイズの情報ってどっかにまとまってないですかね?
今は一応動いてはいるけど、それで正しいのか判らんという状態で、
とても気持ち悪いのです。
- 584 :デフォルトの名無しさん (ワッチョイ 4919-u8AM):2016/09/12(月) 18:17:22.38 ID:5uM6sdA10.net
- 自分でC++で動かしてみるのが一番手っ取り早い
- 585 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/12(月) 18:26:13.35 ID:0pjXoVUQa.net
- >>583
言ってることがよく理解できんけどこういうの?
https://msdn.microsoft.com/ja-jp/library/fzhhdwae.aspx
- 586 :デフォルトの名無しさん (ワッチョイ f023-tq+X):2016/09/12(月) 18:53:04.14 ID:ZFI9hvo+0.net
- >>583
構造体のサイズといってもメンバを>>585のように読み替えるだけで
構造体情報はMSDNなりSDKのヘッダファイルに書かれていると思うけど
但しWindows2000の情報は古いのでダメだ、VC++のIntelliSenseを見るとか
基本的にはポインタ系とsize_t系くらいじゃない、これをIntPtrで定義する
refやoutが適切な時はそれで良いし、他[In,Out]やArrayWithOffsetを適宜
Unicode対応APIがあれば(安全で速い)Charset.Unicodeを使うとか
関数ポインタのデリゲートにはUnmanagedFunctionPointerを使うとか
繰り返し呼び出し速度が気になる場合はSuppressUnmanagedCodeSecurityとか
- 587 :デフォルトの名無しさん (ワッチョイ 98d4-T8i7):2016/09/12(月) 20:15:41.40 ID:dVnv8TGV0.net
- すまんが、XamarinStudioについているGit関連の機能って一度に1つバージョンを戻すことしかできないの?
それ以上のことはコンソールでやれってことなんかな・・・・
- 588 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/13(火) 02:06:56.94 ID:Pc6Wm7Aaa.net
- 質問するだけしてトンズラする感じ悪い奴多いな最近
- 589 :デフォルトの名無しさん (ワッチョイ 1ceb-tq+X):2016/09/13(火) 13:19:25.57 ID:KmoeAHv00.net
- 2ちゃんねるで見返りを求めてはいけない
ここはヤフー掲示板じゃない
礼などしなくていい、ただし、教えてもらったことは必ず身につけて
もし同じようなことを質問している人がいたら、かつての自分がしてもらったように
教えてあげなさい
- 590 :デフォルトの名無しさん (ワッチョイ bc42-tq+X):2016/09/13(火) 16:32:00.74 ID:q0gvgXcr0.net
- CommonSaveFileDialog でダイアログを閉じてからでないと FileName 等が取得できないようです
FileOk でフルパスを評価し「既に存在します上書きしますか?」みたいなことをやりたいのですが
良い方法を教えてください
- 591 :デフォルトの名無しさん (ワッチョイ 98ff-Ai1A):2016/09/13(火) 16:49:12.84 ID:PKqvRNpu0.net
- OverwritePrompt に true だと足りない?
- 592 :589 (ワッチョイ bc42-tq+X):2016/09/13(火) 17:13:31.09 ID:q0gvgXcr0.net
- >>591
ありがとうございます
この機能は問題ないのですが
既存の名前の他にある特定の名前でも独自メッセージを出すようにしたいのです
説明不足ですみませんでした
- 593 :デフォルトの名無しさん (アウアウ Sa09-nnaQ):2016/09/13(火) 17:42:42.66 ID:c6Y5aSJza.net
- CommonSaveFileDialogってWin7の時代に出たあれのか。
ググってもほとんど情報ないのが悲しいねw
やっぱりXPで使えないんじゃ仕事じゃ使えないよねまだまだ
- 594 :デフォルトの名無しさん (ワッチョイ 98ff-Ai1A):2016/09/13(火) 18:17:37.92 ID:PKqvRNpu0.net
- イベント時にファイル名取れないかって話か
SelChangeでもでてこないな、継承するかソースついてるからそれみて
なんとかするしかないかねえ
- 595 :デフォルトの名無しさん (スプッッ Sd28-j70e):2016/09/13(火) 18:32:54.04 ID:LmZnag12d.net
- テストケースを作る達人いるかね
- 596 :デフォルトの名無しさん (ワッチョイ bc42-tq+X):2016/09/14(水) 07:35:28.33 ID:LIctzWig0.net
- http://aster.or.jp/business/contest.html
- 597 :デフォルトの名無しさん (ワッチョイ 8185-MXHb):2016/09/14(水) 17:20:03.55 ID:DRF/iRYF0.net
- あるインターフェースの非同期メソッドを別の非同期メソッドを使って実装しなければいけないのですが、
どうすればいいでしょうか。GetXXXAsyncが実装しなければいけない非同期メソッドで
別のクラスのインスタンスyyyのGetYYYAsyncで実装しなければいけません。
XXXの結果はYYYに変換できるものとします。
public Task<XXX> GetXXXAsync() {
yyy.GetYYYAsync(t => {
var yyy = t.result // XXXをYYYに変換
return ????
}
}
- 598 :デフォルトの名無しさん (ワッチョイ 3279-tq+X):2016/09/14(水) 17:21:19.05 ID:5MgbrOE10.net
- <XXX>が一瞬<><><><>に見えた
- 599 :デフォルトの名無しさん (ワッチョイ 8185-MXHb):2016/09/14(水) 17:23:00.56 ID:DRF/iRYF0.net
- それとも、awaiを使うんでしょうか?
public async Task<XXX> GetXXXAsync() {
var yyy = await yyy.GetYYYAsync();
return ConvertToXXX(yyy); // YYYをXXXに変換
}
もちろん、上のコードではreturn文の型が違うのでコンパイルできませんが。
- 600 :デフォルトの名無しさん (ワッチョイ 8185-MXHb):2016/09/14(水) 17:24:07.03 ID:DRF/iRYF0.net
- >>597の
>var yyy = t.result // XXXをYYYに変換
は間違いいですね。YYYをXXXに変換するのでした。
- 601 :デフォルトの名無しさん (ワッチョイ 8185-MXHb):2016/09/14(水) 17:27:27.84 ID:DRF/iRYF0.net
- 変数名とかかぶtってたりポカやってますが。すみません。
var zzz = await yyy.GetYYYAsync();
zzzとかにします。
- 602 :デフォルトの名無しさん (フォォーッ MM63-tq+X):2016/09/14(水) 18:32:23.18 ID:rtwXtOmSM.net
- タイマーを使ってラベルの文字列を1文字ずつ表示する処理についての質問です
Column1列の0行目に入ってる文字列の長さを取得する方法がわからなくて困ってます
それがわかれば実現できそうな気はしてるのですが・・・
わかる方いたら教えてください
private void timer1_Tick(object sender, EventArgs e)
{
int nagasa =0;
label1.Text = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
nagasa +1;
if(nagasa > ココをどう書けばいいのかわからない)
{
nagasa = 0;
timer1.Stip();
}
}
- 603 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/14(水) 18:37:45.78 ID:ZbLz4+NF0.net
- 目が〜目が〜
まずインターフェースと別のクラスのシグニチャを正しく漏れなく記載するんだ
命取られる訳じゃねえ
落ち着け、推敲しろ
- 604 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/14(水) 18:38:44.13 ID:ZbLz4+NF0.net
- >>601
>>603
- 605 :デフォルトの名無しさん (ワッチョイ 9030-ZwPk):2016/09/14(水) 18:45:11.80 ID:ZbLz4+NF0.net
- >>602
StringにキャストしてLengthプロパティ参照ではあかんのですか
- 606 :デフォルトの名無しさん (ワッチョイ 8185-MXHb):2016/09/14(水) 18:47:20.85 ID:DRF/iRYF0.net
- >>603
まず、実装するのはUWPですがISupportIncrementalLoading.LoadMoreItemsAsyncです。
https://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.data.isupportincrementalloading.aspx
で、要はその実装の内部で、HttpClient.SendAsync()を呼んで、
レスポンスを加工して、LoadMoreItemsAysncの戻り値のIAsyncOperation<LoadMoreItemsResult> に
したいわけです。
- 607 :デフォルトの名無しさん (フォォーッ MM63-tq+X):2016/09/14(水) 19:17:14.13 ID:rtwXtOmSM.net
- >>605
レスありがとうございます
表示できるようになりましたが1文字ずつではなく一気に全部表示されます・・・
private void timer1_Tick(object sender, EventArgs e)
{
string str;
int nagasa =0;
label1.Text = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
nagasa +1;
str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
if(nagasa > str.Length)
{
nagasa = 0;
timer1.Stip();
}
}
- 608 :デフォルトの名無しさん (フォォーッ MM63-tq+X):2016/09/14(水) 19:27:05.98 ID:rtwXtOmSM.net
- コードを変えてみましたが1文字ずつ表示できませんでした
どう変えたらタイマーを使って1文字ずつ表示できるようになるんでしょうか
private void timer1_Tick(object sender, EventArgs e)
{
str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
foreach(char a in str)
{
label1.Text += a.ToString();
}
imer1.Stop();
}
- 609 :片山博文MZ ◆T6xkBnTXz7B0 (ガラプー KKb1-fLkO):2016/09/14(水) 21:59:20.32 ID:3NkcLiKmK.net
- >>608
カウンタ変数を使え
- 610 :デフォルトの名無しさん (ワッチョイ bc5e-XNJE):2016/09/14(水) 22:23:47.57 ID:idTcOFf/0.net
- >>608
strは配列じゃないんだからindexがないと全部表示されるのは当たり前だと思うんだが
str.Substring使うとかして1文字ずつ拾って表示しないと
- 611 :デフォルトの名無しさん (ワッチョイ 693a-tq+X):2016/09/14(水) 22:24:49.16 ID:+DlTv1Gs0.net
- >>608
せめて文法合ってるコードを張ってくれ
label1.Text = str.Substring(0, label1.Text.Length + 1);
if(label1.Text == str) timer1.Stop();
- 612 :デフォルトの名無しさん (フォォーッ MM63-tq+X):2016/09/14(水) 22:51:34.50 ID:rtwXtOmSM.net
- >>609-611
みなさんレスありがとうございます
>>609-610さんの意見を参考にコードを書きました
count
str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
label1.Text = str.Substring(0,count);
- 613 :デフォルトの名無しさん (フォォーッ MM63-tq+X):2016/09/14(水) 23:06:43.61 ID:rtwXtOmSM.net
- String str = dataSet1.Tables["dataTable1"].Rows[0].["Column1"].ToString();
label1.Text = str.Substring(0,label1.Test.Length +1);
if(label1.Test == str)
{
timer1.Stop();
}
途中で書き込んでしまったり>>612の途中のコードも貼ろうと思いましたが
なぜか書き込みできなかったので>>611さんのコードだけにしときます
レスしてくださったみなさん本当にありがとうございました
- 614 :デフォルトの名無しさん (ワッチョイ 037b-chWY):2016/09/15(木) 01:14:25.30 ID:BGRQA4DR0.net
- xmlからdataSetにセットした文字列がtextBoxやlabelで改行されないのですが、特別なことをしないといけないのでしょうか?。
試してみたxmlファイル
<Table>
<Column>あいう \r\n えお</Column>
</Table>
<Table>
<Column>"かき" + \r\n +"くけこ"</Column>
</Table>
<Table>
<Column>"さし" + CR + LF + "くけこ"</Column>
</Table>
textBox.Text = Convert.ToString( dataset.Tables{"Table"}.Rows[0]["Column"]);
結果は改行コードが認識されず(あいう \r\n えお)や("かき" + \r\n +"くけこ")といったように、そのまま出力されてしまいます。
解決策を教えてください。お願いします。
- 615 :デフォルトの名無しさん (ワッチョイ 5f02-Zdre):2016/09/15(木) 05:54:29.82 ID:jXLgVuef0.net
- Labelってそもそも改行して表示できたっけ?
TextBoxのMultilineがfalseとか言うオチじゃないのか?
まさか改行コードじゃなくて
- 616 :デフォルトの名無しさん (ワッチョイ 5f02-Zdre):2016/09/15(木) 05:57:21.93 ID:jXLgVuef0.net
- あれ、切れた
まさか改行コードじゃなくて ”¥r¥n”って文字列が入ってるってオチじゃないだろうな
と書いてたんだが(クォーテーション囲みのとこは半角で)
- 617 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/15(木) 07:54:18.77 ID:HtD/99ZTM.net
- C#よりまずC言語で基礎を学んできたほうがいい
- 618 :デフォルトの名無しさん (ワッチョイ 233a-chWY):2016/09/15(木) 09:37:13.88 ID:4hO/LARH0.net
- >>614
数値参照
- 619 :デフォルトの名無しさん (ワッチョイ 037b-chWY):2016/09/15(木) 11:56:00.29 ID:BGRQA4DR0.net
- >>616
labelでも改行されますよ。
textBoxで試す時はMultilineはtrueにしてますよ。
xmlのデータをそのまま書いてるので”¥r¥n”とはやってないです。
textBox.text → dataSet → writexmlで保存し、readxmlmi→ dataSet → textBox.textでロードしてます。
>>618
すみません。ちょっとわからないので、もう少し詳しく教えていただけないでしょうか。
- 620 :デフォルトの名無しさん (ワッチョイ bf41-jsoS):2016/09/15(木) 14:55:57.11 ID:oVe6chyL0.net
- >>617
ほんとこれ
クラスとかなんて後からでいいわ
- 621 :デフォルトの名無しさん (オイコラミネオ MM3f-wJFc):2016/09/15(木) 15:17:19.63 ID:tpr9+BX0M.net
- System.IOのPathクラスにメソッドを追加する方法はないですか?
Pathクラスは静的クラスなので継承できなくて困ってます
- 622 :デフォルトの名無しさん (ワッチョイ a7ff-oW7a):2016/09/15(木) 15:24:15.63 ID:cPNlrWMs0.net
- 拡張メソッド使えない?
- 623 :デフォルトの名無しさん (ワッチョイ 83dc-wJFc):2016/09/15(木) 15:24:43.91 ID:Cj/yMtkH0.net
- >>621
そんなことをする意味はない
独自にPathHelperクラスとか作ればいい
- 624 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/15(木) 15:26:31.74 ID:Spuf+iD10.net
- どうしてもやりたいならC#やめたらいいよ
無理だから
- 625 :デフォルトの名無しさん (ワッチョイ a7ff-oW7a):2016/09/15(木) 15:50:34.62 ID:cPNlrWMs0.net
- だから拡張メソッドでいいでしょ
やることは >>623 だけど、
>System.IOのPathクラスにメソッドを追加
したように見える
- 626 :620 (オイコラミネオ MM3f-wJFc):2016/09/15(木) 16:14:41.93 ID:tpr9+BX0M.net
- 拡張メソッドだとどう記述するんでしょう?
拡張メソッドって例えばstringクラスにメソッドを追加したように見せかけるには
メソッド名(this string オブジェクト名)
って感じにすると思うんですがこれだと静的クラスはできなくないです?
- 627 :デフォルトの名無しさん (ワッチョイ a319-tp8f):2016/09/15(木) 16:45:12.61 ID:rXzgatzr0.net
- うん、できない
624はPathクラスが静的クラスだったことを忘れてたんだな
- 628 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/15(木) 20:00:02.57 ID:/+11+XuH0.net
- >>619
暇つぶしに試してみたけど>>616であっているじゃないか
<Table>
<Column>あいう
えお</Column>
</Table>
でtextBox.Text = Convert.ToString( dataset.Tables["Table"].Rows[0]["Column"]);
どんな勘違いしたのか知らんが>>616に謝ったほういいと思う
>>615
ちなみにできないのはコンボボックスとか改行を区切りにしているコントロールだな
- 629 :デフォルトの名無しさん (ワッチョイ d37b-chWY):2016/09/15(木) 20:50:10.05 ID:4n2t8Mfb0.net
- >>628
こちらのxmlファイルのソースは、保存する時に改行コードだと認識されずに、下のように保存されてるみたいです。
<Table>
<Column>あいうえお</Column>
</Table>
複数のラベルに表示させる為に、データを入力するテキストボックスをデータグリッドビューへ変更しました。
プロジェクトをアップしたので、どこを変えたら改行コードを認識して>>628さんのようなxmlファイルになるのでしょうか。
http://fast-uploader.com/file/7029495252348/
>>616
こちらの勘違いでした。
すみませんでした。
- 630 :デフォルトの名無しさん (ワッチョイ 375b-eXu6):2016/09/15(木) 21:07:15.47 ID:iYCM94tJ0.net
- 💩💩 じゃないの?
って>>618も言ってるわけだが。
- 631 :デフォルトの名無しさん (ワッチョイ 5f02-+iqG):2016/09/15(木) 21:08:54.40 ID:jXLgVuef0.net
- >>628
Labelで改行、確かにできてるな
大昔のVS(2003で確認)のデザイナでは設定できなかったので勘違いしてたのかも
それでもコードで突っ込んだら改行してたわ
- 632 :デフォルトの名無しさん (ワッチョイ 375b-eXu6):2016/09/15(木) 21:09:25.57 ID:iYCM94tJ0.net
- ぁ。
&#13;&#10; の半角な。
- 633 :デフォルトの名無しさん (ワッチョイ fb17-dM7R):2016/09/15(木) 21:23:47.93 ID:kyc/d2BX0.net
- WinFormsはめったにやらないしやってもDataGridViewなんか絶対使わないが貼ってあるプロジェクトをDLして見てみた。
で、ちょっとググると http://dobon.net/vb/dotnet/datagridview/multiline.html
falseじゃねーか。trueにしたら改行されたぜ(手作りの改行入りXMLで)。
セル入力が改行入力できるのを確認してそのままセーブ。ちゃんとXMLに改行が保存されている。
- 634 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/15(木) 21:35:16.58 ID:/+11+XuH0.net
- >>629
それよくわからんし、古いVS使っているからそのままこちらでは使えん
http://ideone.com/UsVVAo
全部一体にしたソース上げておく
ボタン1で書き込み、ボタン2で読込み、ボタン3で表示
- 635 :デフォルトの名無しさん (ワッチョイ d37b-chWY):2016/09/15(木) 21:37:31.01 ID:4n2t8Mfb0.net
- >>633
データグリッドビューにも改行できるプロパティがあったとは。
しょうもない質問に、お付き合いくださった皆様本当にありがとうございました。
- 636 :デフォルトの名無しさん (ワッチョイ d37b-chWY):2016/09/15(木) 21:39:56.73 ID:4n2t8Mfb0.net
- >>634
わざわざソース作ってくれてありがとうございます。
ソースを確認して、解析したいと思います。
なにからなにまでありがとうございました。
- 637 :デフォルトの名無しさん (アウアウ Sa1f-NmdU):2016/09/15(木) 21:49:13.86 ID:JEiXRkBDa.net
- 横からすまんけどDataGridView使わないで、何で表示させるの?
区切りよく見せるやり方がわからない
- 638 :デフォルトの名無しさん (スップ Sdbf-wJFc):2016/09/16(金) 07:05:58.60 ID:EiAsfn7Ed.net
- Googletestすんごく便利じゃね?ってなった
- 639 :>>633 (ワッチョイ 175e-9vqT):2016/09/16(金) 18:45:59.06 ID:ad4eOHdw0.net
- button2_Clickのds.ReadXmlの前にds = new DataSet();を置かないとReadXmlの意味が無かったわw
申し訳ない
- 640 :デフォルトの名無しさん (ワッチョイ 17ea-Pgjg):2016/09/17(土) 02:09:38.81 ID:PLH+Fwg30.net
- 文字列形式の数字を数値形式で変数に格納するやり方について教えてください。
整数であれば
int num = int.Parse("123,456,789", System.Globalization.NumberStyles.AllowThousands);
これでOKですよね?
では、小数点以下が含まれていて、かつ1000以上の数字はどうすればいいのでしょうか?
たとえば987,654.3みたいな数字です。
単純にfloat.parseってしたら怒られちゃいました。
- 641 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/17(土) 02:35:45.70 ID:Lk1O5YzS0.net
- >>640
なんかいっぱい方法があるなw
http://dobon.net/vb/dotnet/programing/convert.html
string st = "987,654.3";
float f = float.Parse(st, System.Globalization.NumberStyles.Any);
decimal d = decimal.Parse(st, System.Globalization.NumberStyles.AllowDecimalPoint|System.Globalization.NumberStyles.AllowThousands);
double db = double.Parse(st.Replace(",", ""), System.Globalization.NumberStyles.Float);
自分で適当に試してくれ
- 642 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/17(土) 02:51:37.76 ID:0IJLfM4Ca.net
- こんな質問してる人がありえないとは思うけど、日本以外での展開も考えてるなら
非英語圏だとカンマとポイントが逆だったりして、最初によく仕様を決めておかないと
あとでハマるかもよw
- 643 :デフォルトの名無しさん (ワッチョイ 17ea-Pgjg):2016/09/17(土) 08:01:09.21 ID:PLH+Fwg30.net
- すいません、ありがとうございました
- 644 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/17(土) 08:15:17.67 ID:ZlGddzijM.net
- 国際化はプレゼンテーションに小細工するだけじゃ追いつかないよね
- 645 :デフォルトの名無しさん (ドコグロ MM3f-wJFc):2016/09/17(土) 11:24:57.53 ID:4J0ckOcAM.net
- 文字の長さが違うから
コントロールのサイズや構成自体を変えろとか言ってきたりするから
自動では無理だね
- 646 :デフォルトの名無しさん (ワッチョイ c35b-NmdU):2016/09/17(土) 12:15:36.41 ID:ChuD1bst0.net
- すみません。質問です
フォームアプリを作成中(勉強中)です
Form1.csのファイルをPertialで分割して別のソースファイルを作ったときに、分割して作ったソースファイルをエクスプローラーでForm1の子となるように表示させたいです。
プロジェクトファイルを変更して子表示には出来ましたがSubタイプをCodeに変えてもコンパイラに?Formに書きかえられてしまい、ダブルクリックでソースファイルを開けません。
どうしたらいいのでしょうか
- 647 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/17(土) 12:36:18.20 ID:HrJPJui6a.net
- >>646
ごめん何言ってるのか全然わからない
- 648 :デフォルトの名無しさん (JP 0H9f-nW2o):2016/09/17(土) 12:57:05.38 ID:qiyywEhcH.net
- プロジェクトのツリー構成をいじろうとして変なことしてるけど元に戻っちゃうよ〜
ってことかな
- 649 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/17(土) 13:03:02.02 ID:v/zQjqAf0.net
- ああ、「エクスプローラ」って「ソリューションエクスプローラ」のことか
- 650 :デフォルトの名無しさん (ワッチョイ 5b49-oG/L):2016/09/17(土) 13:09:04.40 ID:0+lykI9p0.net
- >>646
諦める。
partialって、デザイナーの自動生成ソースと分けるために使われてるけど、それ以外は普通使わない。
クラスを作って機能毎に分けるようになれば、そんなことする必要ないから。
- 651 :デフォルトの名無しさん (ワッチョイ c35b-NmdU):2016/09/17(土) 14:14:38.63 ID:ChuD1bst0.net
- >>647
>>648-650
のかたの認識で間違いないです
>>648-650
ありがとうございます
できない、やることに意味があまり意味ないってことで了解しました
連投で申し訳ないのですが
機能別にわけたクラスがForm1のコントロールにアクセスするのは、Form1.textbox1.textのような記述で行っていけばいいんでしょうか
普通どういう風にコーディングしていくのかがわかりません
- 652 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/17(土) 14:34:03.35 ID:v/zQjqAf0.net
- C#にはデフォルトインスタンスがないから
VBみたいにクラスからアクセスはできないぜ
(そのつもりで書いているのか分からないが)
C#入門のお手伝いをご希望なら
私どもではなく書籍か入門サイトを頼った方が無難である
- 653 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/17(土) 14:35:44.65 ID:Lk1O5YzS0.net
- >>651
http://dobon.net/vb/dotnet/form/accessanotherformdata.html
- 654 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/17(土) 15:16:11.27 ID:HrJPJui6a.net
- >>651
Formの外のクラスからFormの持つコントロールにアクセスするようなコードを書いてはダメ。
TextBoxのTextの変更はFormの責任でやる
- 655 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/17(土) 15:20:57.18 ID:exk5TsB4M.net
- VB6の被害者ってまだいたんだね
- 656 :デフォルトの名無しさん (ワッチョイ c35b-NmdU):2016/09/17(土) 15:45:47.87 ID:ChuD1bst0.net
- >>652-654
ありがとうございます
いえいえ、ここの方たちの意見は十分参考になります
入門用だとForm1クラスの中にクラスを作ってるものばかりなので、それに沿って記述していくとForm1のソース量が延々長くなり最初のような質問をさせていただきました
>>653
の方を参考に勉強してみます
また何かあれば質問させてください
ありがとうございました
- 657 :デフォルトの名無しさん (ワッチョイ 97d4-EMlz):2016/09/17(土) 17:51:24.24 ID:2hKXgH7u0.net
- メソッドの引数にオブジェクトがある場合に、デフォルト値(?)を設定することってできないのでしょうか?
class B{}
があった場合に
A(B b = new B())
のようなことがしたいのですが・・・・
- 658 :デフォルトの名無しさん (ワッチョイ 83dc-wJFc):2016/09/17(土) 18:03:49.90 ID:/l22qB3W0.net
- >>657
オーバーロードする
もしくはnullをデフォルトにしといて先頭でnullチェックして代入
- 659 :デフォルトの名無しさん (ドコグロ MM3f-wJFc):2016/09/17(土) 18:35:43.77 ID:4J0ckOcAM.net
- >>656
partialもいいよ
無駄にクラス分けて複雑になったら意味ないし
画面がでかいことと設計がどうとかって関係ないし
見た目Formにあるコントロールの処理がFormに無い時点で俺は気が狂う
- 660 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/17(土) 18:41:40.76 ID:kuAV8nPQM.net
- クラス別けても複雑にはならないだろう分け方が間違ってなければ
Partialは分業や自動生成のための物で機能分割のためのものではない
- 661 :デフォルトの名無しさん (ワッチョイ 03cb-wJFc):2016/09/17(土) 19:47:28.29 ID:UtwXhxtU0.net
- >>660
だから機能分割しないって
単に画面がひたすらでかいときってあるじゃん
その数百はあろうコントロールの載った画面の端っこにラジオボタンがあったとして
その処理がどこに書いてあればわかりやすいんだよって話よ
- 662 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/17(土) 20:09:00.98 ID:HrJPJui6a.net
- >>661
言いたいことは分からんでもないけど、部分クラスを使って「分ける」んじゃなくて、
regionを使って「整理する」方が得策だと思うよ
- 663 :デフォルトの名無しさん (ワッチョイ 03cb-wJFc):2016/09/17(土) 20:11:32.28 ID:UtwXhxtU0.net
- >>662
partialでいいじゃん
- 664 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/17(土) 20:14:20.19 ID:kuAV8nPQM.net
- >>661
そういう巨大なビューは容易に管理可能なサイズの子ビューに分割する
ビューは複数の子ビュー間の調停を行いそれ以外の最低限の処理しかしない
一度の分割では不十分な場合には子ビューが再帰的に子ビューを持っても良い
ラジオボタンの処理はラジオボタンが直接に配置されたビューに書けば良い
そして各ビューにはクラスを割り当てて実装する
PartialもRegionも使わない
- 665 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/17(土) 20:22:44.82 ID:HrJPJui6a.net
- >>663
部分クラスは一覧性がよくない。
コードの見通しをよくして見たい個所をすぐ探せるように分割したはずが、
結局複数のファイルをいちいち渡り歩いて探さなきゃならない本末転倒が起こる。
>>664はユーザーコントロールを使えと言ってるのかもしれないけど、
コードの見通しをよくするためにユーザーコントロールを使うのはちょっと違うと思う。
- 666 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/17(土) 20:24:29.74 ID:Lk1O5YzS0.net
- 職場の制約じゃないんだし、どっちでも好きなようにしたらいいと思うが議論スレでやれよ
- 667 :デフォルトの名無しさん (ワッチョイ 8394-1I2o):2016/09/17(土) 20:41:30.63 ID:qocRQo9a0.net
- 議論スレw
気に入らない奴らを追い出したいからとバカが作ったあのスレ
作るだけ作って自分でも盛り上げず過疎ってるあのスレ
…よくあんなとこに誘導しようと思うなw 作った人ですか?w
- 668 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/17(土) 21:25:21.29 ID:v/zQjqAf0.net
- 単芝くっさ
- 669 :デフォルトの名無しさん (ワッチョイ 179d-eXu6):2016/09/17(土) 22:16:24.50 ID:WMm2U5Oz0.net
- くっさとかくっさ
- 670 :デフォルトの名無しさん (ガラプー KK5f-Y+P+):2016/09/17(土) 22:21:10.33 ID:VM86FVmfK.net
- 草と書くっさ
- 671 :デフォルトの名無しさん (アウアウ Sa1f-NmdU):2016/09/17(土) 22:23:03.01 ID:KhWwRLFba.net
- まともな回答もできんやからが荒らすな
- 672 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/17(土) 22:29:33.53 ID:2JExcSSQM.net
- >>665
普通のクラスだろうとUIクラスだろうとプログラミングの基本は変わらないよ
分割して統治せよ
オブジェクト指向言語ではその手段が主にクラスであり
UIではコントロールやコンポーネントというだけの話
適切にクラス化すれば自然とプログラムの見通しは良くなるし
見通しをよくするための手段としてクラス化を選択するのは正当な判断だ
むしろリージョンやパーシャルで分割するという判断の方が良い習慣に逆らった邪道な判断だろうね
- 673 :デフォルトの名無しさん (ワッチョイ 977b-chWY):2016/09/17(土) 22:34:39.28 ID:bbRJl+Ku0.net
- >>670
優勝
- 674 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/17(土) 22:40:50.65 ID:HrJPJui6a.net
- >>672
端的に言えば、ネーミングに困るような分割は分割統治でも何でもないよ。
ただの細切れだ。
命名に困るよね?
>>664みたいな分割をしたら。
- 675 :デフォルトの名無しさん (ワッチョイ 83dc-U9f6):2016/09/17(土) 22:48:21.12 ID:/l22qB3W0.net
- 本当に必要なコードなら仕方ないけど、
巨大なクラスって大抵同じような処理がいろんなところに散らばってたりコピペまみれだったり
より上のレイヤでやるべきことをビューのコードと一緒くたにしてベタ書きしてたりするのが多いんだよね
まともなコードでソースファイル分けたくなるほどクラスが肥大化することは稀
- 676 :デフォルトの名無しさん (ワッチョイ 03cb-wJFc):2016/09/17(土) 23:00:37.63 ID:UtwXhxtU0.net
- >>675
単に使うからって理由で新聞みたいな細かさで配置されてる画面だってあるよ
上下左右に関連なんてなくてひたすらデータが羅列されてるだけみたいな
- 677 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/18(日) 01:02:53.73 ID:3bUsWpmg0.net
- エッジケースを一般論として語る
- 678 :デフォルトの名無しさん (ワッチョイ 03cb-D0fg):2016/09/18(日) 08:10:21.19 ID:Vs//CHex0.net
- public class ListValue {
public string Col1;
public string Col2;
public static void LoadFromFile(List<ListValue> list, string filename) {
if (File.Exists(filename)) {
using (StreamReader reader = new StreamReader(filename, Encoding.GetEncoding("shift-jis"))) {
while (!reader.EndOfStream) {
string line = reader.ReadLine();
string[] splitData = line.Split('\t');
var tmp = new ListValue();
tmp.Col1 = splitData[0];
tmp.Col2 = splitData[1];
list.Add(tmp);
}
}
}
}
}
のような感じでTSVをLISTに読み込んでいますが、列数が数十もあると
tmp.Col1 = splitData[0];
tmp.Col2 = splitData[1];
が面倒なのでループにしたいと思ってます。
イメージとしては
for(略) {
tmp[i] = splitData[i];
}
こんな感じですが、tmp[i]のような書き方はできないようです。
どのように書けばループに出来るでしょうか。
- 679 :デフォルトの名無しさん (ワッチョイ 37ce-D0fg):2016/09/18(日) 08:50:24.05 ID:Dby0x7420.net
- public class ListValue {
public string[] Cols;
public SetSize(int len) { Cols = new string[len]; }
public string this[int i] {
set { this.Cols[i] = value; }
get { return Cols[i]; }
}
(略)
var tmp = new ListValue();
tmp.SetSize(splitData.Length);
for(略) {
tmp[i] = splitData[i];
}
listAdd(tmp);
(略)
かな?
- 680 :デフォルトの名無しさん (ワッチョイ 83dc-U9f6):2016/09/18(日) 08:58:10.66 ID:FLMBUfED0.net
- >>678
メンバに順序は無いので、何らかの手段で順序情報を付加してやる必要がある。
その上で、リフレクションを使って動的に値をセットする。
たとえばカスタム属性を使って以下のようにする。(動くかどうかは知らん)
public class OrderAttribute : Attribute {
public Order(int value) { this.Value = value; }
public int Value { get; private set; }
}
public class ListValue {
[Order(0)] public string Col1 {get; set;}
[Order(1)] public string Col2 {get; set;}
}
public static class TsvLoader {
public static IEnumerable<ListValue> LoadFromFile<T>(string filename) =>
File.ReadLines(filename)
.Select(line => line.Split(‘¥t’))
.Select(DeserializeRow);
public static T DeserializeRow<T> where T : class, new() (IEnumerable<string> row) {
var propvals = typeof(T).GetProperties()
.OrderBy(prop => ((OrderAttribute)p.GetAttribute(typeof(OrderAttribute))).Value)
.Zip(row, (prop, val) => new { Property = prop, Value = val });
var obj = new T();
foreach (var propval in propvals) { propval.Property.SetValue(obj, propval.Value); }
return obj;
}
}
こんなことするより素直に>>679の方がいいと思うけど
- 681 :デフォルトの名無しさん (ワッチョイ 03cb-D0fg):2016/09/18(日) 10:43:54.66 ID:Vs//CHex0.net
- >>679
ありがとうございます。
列名を配列にするとLINQが使いにくいのかなと思っています。
以前にLISTのLISTを作った時にそうだったので、配列も同じかなと。
ですが、考え方は勉強になりました。
>>680
ありがとうございます。
こちらは列名がそのまま使えるのでいいかなと思ったのですが、
ハイレベルすぎてついて行けませんでした。
結局のところ私のようなレベルであれば、数十列あったとしても
全部書いてる方が間違いがないようです。
列が増えた時に忘れそうですが・・・
ありがとうございました。
- 682 :デフォルトの名無しさん (ワッチョイ 37ce-D0fg):2016/09/18(日) 11:08:30.68 ID:Dby0x7420.net
- 受け渡しがstring[]のままなら、
さっきの[]だけ定義して、コンストラクタで
public ListValue(string[] Cols_) { Cols = Cols_; }
list.Add(new ListValue(line.Split('\t')));
で1行に
- 683 :デフォルトの名無しさん (ブーイモ MMbf-eXu6):2016/09/18(日) 12:47:11.68 ID:Yxs7/HnaM.net
- 今だったらCSV読み込み用のNuGetライブラリを使う場面だろうけど
初心者で自作したいならCSVを読み込んでDataTableに詰め込む処理を作る
これは自前のファイル解析処理でもいいしOleデータアダプタを使ってもいいしなにか別の方法でもいい
そしてデザイナーで型付データテーブルを定義する
少し前までは平凡な現場ではこういう事をよくやっていたものだ
- 684 :デフォルトの名無しさん (ワッチョイ 333c-eXu6):2016/09/18(日) 19:05:10.98 ID:7K/Z8eac0.net
- C#でおしゃれなUIをデザインしたいんだけどどうしたらいいですか?
Visual studioのwindowフォームだと味気ないデザインしか出来なくてこまってます
どなたか教えてください
- 685 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/18(日) 19:11:21.49 ID:4IEY4Cwd0.net
- >>684
コントロールを自分で描画する
http://dobon.net/vb/dotnet/graphics/drawcontrols.html
変えるのが背景くらいでいいのならデザイナで設定できるけど
- 686 :デフォルトの名無しさん (ワッチョイ 83dc-wJFc):2016/09/18(日) 19:21:44.92 ID:FLMBUfED0.net
- >>684
UWP使えば
- 687 :デフォルトの名無しさん (ワッチョイ 97d4-EMlz):2016/09/18(日) 22:44:04.59 ID:dUd9O0RL0.net
- 共変性についてよく理解できないのですが・・・・
class A : B {}
の時に、
B b = new A();
のようなことができると入門書などに書かれていますが、
A b = new A();
とした場合と何が違うのですか?
- 688 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/18(日) 22:59:05.90 ID:tyXWdZhGa.net
- >>687
とりあえずそれは共変と全然関係ないよw
- 689 :デフォルトの名無しさん (ワッチョイ 83dc-W8Ns):2016/09/18(日) 23:11:20.92 ID:FLMBUfED0.net
- >>688
共変で間違ってないよ
https://msdn.microsoft.com/en-us/library/mt654055.aspx
- 690 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/18(日) 23:16:40.64 ID:tyXWdZhGa.net
- >>689
いや間違ってるからw
- 691 :デフォルトの名無しさん (ワッチョイ 97d4-EMlz):2016/09/18(日) 23:25:08.86 ID:dUd9O0RL0.net
- 共変なのかどうかよくわからずに言葉を使ってしまい申し訳ないのですが、例の2つはどういう違いがあるのですか?
型がAでもBでも変わりがないように見えてしまいます
- 692 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/18(日) 23:34:59.86 ID:tyXWdZhGa.net
- >>691
どのメンバーにアクセス可能かはオブジェクトの型ではなく変数の型で決まる。
だから上のbはAのみで実装されているメンバーにアクセスできない。
- 693 :デフォルトの名無しさん (ワッチョイ 333c-eXu6):2016/09/18(日) 23:45:27.02 ID:2anw7PLb0.net
- >>686
UWPってスキンとか変更できますか?
- 694 :デフォルトの名無しさん (ワッチョイ 97d4-EMlz):2016/09/18(日) 23:51:38.54 ID:dUd9O0RL0.net
- 今試しに手元でやってみたのですが確かに派生先のメンバにはアクセスできませんでした
b is Aみたいなことをした時にtrueが返ってくるために同じではないかと勘違いしてたのがやっと理解できました
ありがとうございます
- 695 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/19(月) 01:50:22.29 ID:x6oYh1MF0.net
- >>693
そんなもん標準では備わってない
せいぜいテーマ変えるくらい
https://msdn.microsoft.com/ja-jp/windows/uwp/controls-and-patterns/xaml-theme-resources
- 696 :デフォルトの名無しさん (ワッチョイ 2351-chWY):2016/09/19(月) 07:26:38.08 ID:byZSyyWN0.net
- Formsから移行するならWPFだろうが、なんでいきなりUWPなんて話になるんだろうか。
- 697 :デフォルトの名無しさん (ワッチョイ 333c-wJFc):2016/09/19(月) 07:56:49.85 ID:R4yOZzeH0.net
- >>696
なぜいまさらWPF?
- 698 :デフォルトの名無しさん (ワッチョイ 4723-chWY):2016/09/19(月) 08:21:41.59 ID:G088RuKS0.net
- >>697
先週からUWP始めたけど、C++のDLLが呼び出せないとか右クリックメニューが出来ないなど
面倒なこと沢山有るよな
コントロールが増えて楽しいってのはあるんだが
- 699 :デフォルトの名無しさん (ワッチョイ 2351-chWY):2016/09/19(月) 08:23:12.93 ID:byZSyyWN0.net
- >>697
Formsからの移行だから。
なんで見た目を変えたいってだけで制約の多いUWP薦めるのか理解不能だわ。
- 700 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/19(月) 08:31:37.25 ID:x6oYh1MF0.net
- WPFにしろUWPにしろ過疎過ぎて死亡
- 701 :デフォルトの名無しさん (ワッチョイ 03cb-wJFc):2016/09/19(月) 10:06:22.68 ID:bJUofi690.net
- >>697
オワコン確定なの?
- 702 :デフォルトの名無しさん (ワッチョイ 83dc-W8Ns):2016/09/19(月) 10:10:16.99 ID:jZTV89ee0.net
- 始まったことすらありません
- 703 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/19(月) 10:10:26.90 ID:vuaz7X22M.net
- 需要がなさすぎて終わる前に始まってすらいない
一般向けはブラウザかスマートデバイス向けのアプリばっかりだし
業務用デスクトップアプリは保守要員のスキル考えるとFormsしか採用できない
- 704 :デフォルトの名無しさん (ベーイモ MMff-qrXn):2016/09/19(月) 10:35:49.15 ID:bIVnttmtM.net
- XAMLがいけないのだよ
デスクトップ アプリを UWP アプリに変換する
https://developer.microsoft.com/ja-jp/windows/bridges/desktop
- 705 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/19(月) 10:36:25.30 ID:dWsrNIgMa.net
- むしろWPFは細々続いていくと思うけど...
ストアアプリみたいにまたいつ梯子を外されるかわらからないUWPなんか
覚えようって人は余程お人よしかMSラブとしか思えない
Petzoldとか、ストアアプリで本書いた人も恐らく相当怒ってるよねw
あんなことされたら今度はUWPで本書いてやろうって気にはなかなかならないはず
- 706 :デフォルトの名無しさん (ベーイモ MMff-qrXn):2016/09/19(月) 10:39:32.10 ID:3DxG+ajbM.net
- Microsoft、デスクトップアプリをUWPアプリへ変換するツールをWindowsストアで公開
http://pc.watch.impress.co.jp/docs/news/1020601.html
DesktopAppConverter
https://www.microsoft.com/ja-jp/store/p/desktopappconverter/9nblggh4skzw
- 707 :デフォルトの名無しさん (スプッッ Sdbf-wJFc):2016/09/19(月) 10:50:32.07 ID:CIKkLThgd.net
- >>705
むしろ書くネタを投入してくれてると考えないと
- 708 :デフォルトの名無しさん (エムゾネ FFbf-kmwO):2016/09/19(月) 11:13:31.53 ID:ezNHULaGF.net
- 下火も下火だもんな
- 709 :デフォルトの名無しさん (ワッチョイ fbc0-chWY):2016/09/19(月) 11:21:15.22 ID:9tbHw/9w0.net
- >>703
>保守要員のスキル
業務はこれだよな
WPFで作ってBinding楽すぎ!と使ってもらおうとしても、XAML見ただけで拒否反応示す人多すぎる
- 710 :デフォルトの名無しさん (ワッチョイ c730-4e/M):2016/09/19(月) 11:34:18.93 ID:x6oYh1MF0.net
- XAMLは書いても書いても頭に定着しなくてさぁ…
- 711 :デフォルトの名無しさん (ワッチョイ 179d-chWY):2016/09/19(月) 11:47:52.91 ID:Jh8jv4fs0.net
- つまりForms最高最強ってことですね?
これからも末永くよろしくお願いします
- 712 :デフォルトの名無しさん (ワッチョイ 23ba-eXu6):2016/09/19(月) 13:38:51.97 ID:VY3VanBz0.net
- WPFだけでなくVBScriptにSilverlightも
他ブラウザでは機能しない
つまり使えない
OS支配が偉大すぎだが
得意の後追い商法も効果なし
迷走Microsoft
- 713 :デフォルトの名無しさん (オッペケ Sr1f-wJFc):2016/09/19(月) 13:46:57.70 ID:4tgdktKzr.net
- Linqも全然使われてないですよね?
やっぱ処理が見にくいから?
- 714 :デフォルトの名無しさん (ワッチョイ 477b-chWY):2016/09/19(月) 15:52:15.40 ID:MNVYkncZ0.net
- 見にくくはないだろ
オッサンが読めないから使うなって言われてるだけじゃね
- 715 :デフォルトの名無しさん (ワッチョイ c3d6-9vqT):2016/09/19(月) 15:56:12.87 ID:Z/E4vnsc0.net
- >>713
定期巡回お疲れ様です
- 716 :デフォルトの名無しさん (ワッチョイ 03cb-wJFc):2016/09/19(月) 16:18:19.01 ID:bJUofi690.net
- >>713
圧倒的に読める奴は減るな
- 717 :デフォルトの名無しさん (アークセー Sx1f-wJFc):2016/09/19(月) 16:34:06.70 ID:eOwBF3hLx.net
- >>713
はいっ!
- 718 :デフォルトの名無しさん (ブーイモ MM9f-eXu6):2016/09/19(月) 16:56:56.28 ID:fik9yetTM.net
- 今でもたまにLinqが無かった時代のコードを保守する機会があるがあれは苦痛だ
- 719 :デフォルトの名無しさん (アウアウ Sa9f-8sPh):2016/09/19(月) 17:18:34.97 ID:dWsrNIgMa.net
- >>715
ラムダ式を出さなくなっただけ彼も進歩してるw
- 720 :デフォルトの名無しさん (オッペケ Sr1f-wJFc):2016/09/19(月) 18:27:21.89 ID:4tgdktKzr.net
- 誰のこと言ってんのかわからんけど、おれどちらかというとプログラマじゃないからここでアホみたいな質問すると思う
- 721 :デフォルトの名無しさん (ワッチョイ bf73-chWY):2016/09/19(月) 20:49:54.41 ID:DKrTn01q0.net
- TabControl1のtabPage3にLabel1を追加したいのですが
Label a1 = new Label();
this.tabControl1.Controls.Add(a1);
this.tabPage3.Controls.Add(a1);
と試してもうまくいきませんどうしたらよいでしょうか?
- 722 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/19(月) 20:58:18.08 ID:wipHk/080.net
- >>721
デザイナで設置しないのはなにか理由があるの?
Label a1 = new Label();
this.tabPage3.Controls.Add(a1);
a1.Text = "hoge"; a1.BringToFront();
最後の行は表示確認用
- 723 :デフォルトの名無しさん (ワッチョイ bf73-chWY):2016/09/19(月) 21:18:25.46 ID:DKrTn01q0.net
- >>722
ありがとうございます。
tabControl1にたいしてtabPage1〜かと思ったら
tabControl1,2,3含めてtabPage1〜が増えるんですね。
データが固定じゃないのでデータによって
tabControl1のtabPageを増やすのをできるようにしたかったのです。
- 724 :デフォルトの名無しさん (ワッチョイ bf73-chWY):2016/09/19(月) 21:19:03.49 ID:DKrTn01q0.net
- >>722
解決しましたありがとうございます。
- 725 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/19(月) 21:36:38.88 ID:wipHk/080.net
- とりあえずデザイナで設置してみてDesigner.csの中身を見てみればよかったな。
他のコントロールでも同じだけど
721も自分のDesigner.csの中身を見て書いただけだしw
- 726 :デフォルトの名無しさん (ワッチョイ 179f-AKTw):2016/09/20(火) 13:59:33.52 ID:qGlVjJF90.net
- >>723
デザイナでタブコントロール複数設置すれば一目瞭然だが
tabContorol変わってもtabPageは1に戻らないよ
tabControl1.TabPages[ページIndexまたはタブのName].Controls.Add(a1);
- 727 :デフォルトの名無しさん (ワッチョイ 1742-SOVl):2016/09/20(火) 22:11:37.32 ID:G5yMgC3y0.net
- >>709
俺、昔、HTML見ただけで拒否反応出たわ
Web系なんて一生やらんと思ってたのに今やってるわ
- 728 :デフォルトの名無しさん (ワッチョイ 1742-chWY):2016/09/21(水) 16:00:32.26 ID:2I665Pjk0.net
- ツリービューの幅をジャストフィットさせる方法を教えてください
ノードの右端の座標とか水平スクロールバーが現れる幅とかが取得できればと思うのですが
- 729 :デフォルトの名無しさん (ワッチョイ a319-tp8f):2016/09/21(水) 17:35:44.35 ID:b0Nua/000.net
- 表示されてるノードを走査してそれぞれのBounds.Rightを確認すればいいんじゃね
- 730 :727 (ワッチョイ 1742-chWY):2016/09/21(水) 18:35:23.37 ID:2I665Pjk0.net
- >>729
ありがとうございますピッタリできました
Bounds 見過ごしてました
これからはもっとよく確認します
- 731 :デフォルトの名無しさん (ワッチョイ 333c-D0fg):2016/09/21(水) 21:58:19.91 ID:lQOLvI1I0.net
- >HTML見ただけで拒否反応
これは解らんが
>Web系なんて一生やらんと思ってたのに今やってるわ
これは解る
- 732 :デフォルトの名無しさん (ワッチョイ c35b-NmdU):2016/09/21(水) 23:08:54.93 ID:JVLqoW6f0.net
- c#のお作法的に、フィールドに初期値をもたせるのって宣言と同時に直接代入するのとコンストラクタで設定するのってどちらが良いのでしょうか
- 733 :デフォルトの名無しさん (ワッチョイ 333c-D0fg):2016/09/21(水) 23:22:23.88 ID:lQOLvI1I0.net
- 親クラスのコンストラクタで、子クラスのフィールドを利用する事があるなら
フィールドの宣言時に初期値を持たせておく
- 734 :デフォルトの名無しさん (ワッチョイ 977b-a0dx):2016/09/21(水) 23:47:25.62 ID:o5hoVk+q0.net
- string hoge = "hogehoge";
string fuga = hoge;
とした場合、fugaにはhogeのオブジェクトがコピーされて入るのですか?
それともhogeの参照のみがコピーされるのですか?
- 735 :デフォルトの名無しさん (ワッチョイ 83dc-W8Ns):2016/09/21(水) 23:48:50.32 ID:bQEJ8r3q0.net
- >>732
一般論として、プログラムはなるべく宣言的に書くのが良い
その意味でベストなのは宣言時代入かつreadonlyで、それができる場合は迷わずそうするべき
readonlyにできない場合は好みの問題だな
初期値だけを特別扱いするのは不自然だと感じる人もいれば宣言時代入の方が宣言的で見やすいと感じる人もいる
- 736 :デフォルトの名無しさん (ワッチョイ 175e-9vqT):2016/09/21(水) 23:51:34.59 ID:49I69gX00.net
- >>734
変数の場合は値が代入される
クラスの場合は参照になる
- 737 :デフォルトの名無しさん (ワッチョイ 83dc-W8Ns):2016/09/21(水) 23:53:56.45 ID:bQEJ8r3q0.net
- >>734
参照のみがコピーされるけど、Stringに関しては実用的にはそれを区別する必要はない
なぜならStringオブジェクトはイミュータブル(変更不能)なので、
インスタンスに対する変更の影響が同じインスタンスを参照する他の場所に波及するようなことは起こらないから
- 738 :デフォルトの名無しさん (ワッチョイ 1690-5q76):2016/09/22(木) 00:26:12.39 ID:QaFi4YJK0.net
- さて、某月額費用の掛かるアダルトサイトの
動画をDLするプログラムを頑張って作ります。
ハマったらここに質問するので宜しくね!
ちまちま手動ダウンロードに付かれた。
出来たら便利で公開したいけど、公開したら俺ってばれるwww
- 739 :デフォルトの名無しさん (ドコグロ MMf4-xdvH):2016/09/22(木) 08:50:28.86 ID:pXuo09J0M.net
- http通信あたりから勉強したらどうだろう?
- 740 :デフォルトの名無しさん (ワッチョイ cd5b-aBDa):2016/09/22(木) 11:50:22.29 ID:TiDB0J3t0.net
- >>733>>735
ありがとうございます
参考になりました
- 741 :デフォルトの名無しさん (ワッチョイ 595b-xjL4):2016/09/22(木) 13:01:39.48 ID:R6k9xPvT0.net
- オラクルのプロシージャの引数を結合配列(構造体配列)とした時、C#(というか.NET)でどういう風にパラメータを設定すればいいのかご存じの方いますか?
たとえば、下のような結合配列の型「TEST_TBL」をパッケージの仕様部で定義して、プロシージャの引数にした場合、
これを.NETから呼び出す時、DataTableやListを引数に指定することはできるのでしょうか?
TYPE TEST_REC IS RECORD(
A varchar2(8),
B number
);
TYPE TEST_TBL IS TABLE OF TEST_REC INDEX BY BINARY_INTEGER;
PROCEDURE TESTPROCEDURE(
prmTBL IN TEST_TBL
)
ググっていろいろ試しているのですが、なかなかうまくいきません。
単項目(numberやvarchar2)の配列なら実現できたのですが、項目数が多くなると煩雑になるので、上記のようなやり方ができるととても便利なのですが・・・。
- 742 :デフォルトの名無しさん (ワッチョイ d7e2-NoHY):2016/09/22(木) 16:37:30.73 ID:wTxDVkWz0.net
- private async Task PageLoad()
{
TaskCompletionSource<bool> PageLoaded = new TaskCompletionSource<bool>();
webBrowser1.DocumentCompleted += (s, e) =>
{
if (webBrowser1.ReadyState != WebBrowserReadyState.Complete) return;
if (PageLoaded.Task.IsCompleted) return;
PageLoaded.SetResult(true);
};
while (PageLoaded.Task.Status != TaskStatus.RanToCompletion) { await Task.Delay(10) }
}
webbrowser1.navigate(URL)の読み込みを待つ関数なんですが、これはどういう原理で動いてるんですか?
DocumentCompletedのイベントにawaitタスクを挟んで非同期にして処理の終わりを待つんですよね?
でもDocumentCompletedはドキュメントの読み込みの処理の終わりにしか呼ばれないなら
ラムダ内部はSetResult()だけでいいのかと思えば、そうするとエラーでます。
- 743 :デフォルトの名無しさん (アウアウ Sa25-S2gS):2016/09/22(木) 18:25:46.65 ID:Xy0e3ZYia.net
- ゲームや家電のUIでよくある、背景色には透過がかかってるけど文字だけは
不透明みたいなウィンドウってWindows Formでは実現難しかったっけ?
- 744 :デフォルトの名無しさん (ワッチョイ 1c5e-xjL4):2016/09/22(木) 18:36:07.99 ID:BI5UtsIL0.net
- >>743
コントロール個別は無理だがForm全体は透過を設定できる。Form.Opacity
- 745 :デフォルトの名無しさん (ワッチョイ d78c-xjL4):2016/09/22(木) 19:09:11.54 ID:9JyT007J0.net
- 初歩的な質問ですみません
実行したら
アプリ(さんぷるA)にフォーカスが移り
F5
Ctrl + v
Tab
Enter
の順にキー入力するにはどうすればいいのですか?
また実行後アプリを終了するようにするにはどうすればいいのですか?
- 746 :デフォルトの名無しさん (ワッチョイ 1c5e-xjL4):2016/09/22(木) 19:17:50.59 ID:BI5UtsIL0.net
- >>745
多分この辺
http://whoopsidaisies.hatenablog.com/entry/2013/11/27/222127
終了はProcess クラス
https://msdn.microsoft.com/ja-jp/library/system.diagnostics.process%28v=vs.110%29.aspx
CloseMainWindow()かKill()
- 747 :デフォルトの名無しさん (ワッチョイ d78c-xjL4):2016/09/22(木) 19:24:09.54 ID:9JyT007J0.net
- >>746
ありがとうございます
- 748 :デフォルトの名無しさん (フォォーッ MM1f-5q76):2016/09/22(木) 19:42:42.51 ID:Kf3JakCfM.net
- >>743
バックカラーを透明色に指定すればできる
例
Label1.BackColor = Color.Transparent;
- 749 :デフォルトの名無しさん (ワッチョイ 9f49-Pb1R):2016/09/22(木) 20:16:17.95 ID:c0uylKlH0.net
- >>743
Opacityプロパティを設定すれば半透過には出来るけど、文字も含めてウィンドウ全体がそうなっちゃう.。
>>748
ウィンドウやコントロールに対しては設定できないよ。実行時にArgumentExceptionが出る。
- 750 :デフォルトの名無しさん (ワッチョイ 1c5e-xjL4):2016/09/22(木) 20:31:26.88 ID:BI5UtsIL0.net
- ああ、全ての表示が透過になるんだったなw>>744はダメだ
>>749
フォームかパネルの背景が見えてコントロールが透けるだけでいいのなら>>748で良くないか
一部Transparentにできないコントロールはあるけど
。
ボタンとかはできてトラックバーは反映されなかったと思う
- 751 :デフォルトの名無しさん (フォォーッ MM1f-5q76):2016/09/22(木) 20:50:15.82 ID:Kf3JakCfM.net
- >>743さんのやりたいことのバックがなんなのかわからないけど
PictureBox1.Controls.Add(Label1);
とやればピクチャーボックスが見えつつラベルの背景色を透明にできるけどどうなんだろう
- 752 :デフォルトの名無しさん (ワッチョイ 7e9f-djfZ):2016/09/22(木) 21:20:00.93 ID:TQKVxpQC0.net
- 背景を透過にする時は文字を縁取りしないとまともに読めないから面倒だよな
文字の描画を独自で作らないといけなくなって、「やってられるか」って手を抜くと
使えない機能が残って、結局ゴミアプリ度が上昇して終わる
- 753 :デフォルトの名無しさん (ワッチョイ 613c-UBrL):2016/09/22(木) 21:24:26.75 ID:yLq2H4nH0.net
- WPFでやれって話になるわけか
- 754 :デフォルトの名無しさん (アウアウ Sa25-S2gS):2016/09/22(木) 21:30:46.76 ID:s0Lz39vRa.net
- >>751
画像検索でググっても適当なのがなかなか見つからないけど、
例えばこれのメッセージ表示部のような感じ。
http://userdisk.webry.biglobe.ne.jp/014/515/82/N000/000/000/137165007335113123937_gamek-kaku2.png
>>744,>>748,>>749
とりあえずレスどうも。
やっぱりWindows Formでは少なくとも簡単は方法はなさそうですね。
昔調べてWin32API使う必要があるのは知ってましたが、上のようなUIもメジャーになってるし
さすがに今はもっと簡単な方法が提供されれるかもと思ったんですが、メンテナンスモードの
Windows Formにそういうのはやはり期待する方が間違ってるか。
まあ、WPF使えばいいんでしょうけどね。個人的に嫌いだからw
- 755 :デフォルトの名無しさん (フォォーッ MM1f-5q76):2016/09/22(木) 21:43:19.99 ID:q3QSoo39M.net
- >>754
その画像ならこれでできますよ
PictureBox1.Controls.Add(Label1);
Label1.BackColor = Color.Transparent;
- 756 :デフォルトの名無しさん (フォォーッ MM1f-5q76):2016/09/22(木) 21:47:08.11 ID:q3QSoo39M.net
- もう少し詳しく書くとこうです
PictureBox1.Controls.Add(PictureBox2);
PictureBox2.Controls.Add(Label1);
Label1.BackColor = Color.Transparent;
PictureBox1に背景画像を入れてPictureBox2にメッセージ画像を入れれば参考画像のようになりますよ
- 757 :デフォルトの名無しさん (フォォーッ MM1f-5q76):2016/09/22(木) 21:56:40.44 ID:q3QSoo39M.net
- あ、半透明ですかw
ここにサンプルありますよ
http://dobon.net/vb/dotnet/graphics/hadeinimage.html
- 758 :デフォルトの名無しさん (フォォーッ MM1f-5q76):2016/09/22(木) 21:57:49.20 ID:q3QSoo39M.net
- >>757 + Label1.BackColor = Color.Transparent;でできると思います
- 759 :デフォルトの名無しさん (アウアウ Sa25-S2gS):2016/09/22(木) 23:02:13.93 ID:s0Lz39vRa.net
- >>756
ああ、確かにウィンドウ内の一部の領域ということなら方法はありそうですね。
トップレベルウィンドウの背景の一部または全部を他のウィンドウに対して
透過する方法はやっぱりないですよね。
- 760 :デフォルトの名無しさん (ワッチョイ dddc-IfJd):2016/09/22(木) 23:06:35.01 ID:P28LZX5F0.net
- >>742
バグってるぞこれ
イベントハンドラを追加しっぱなしで削除してないから、PageLoadを呼ぶたびにイベントハンドラが増える
だからIsCompletedの条件を削除するとSetResultの2度目の呼び出しが発生してエラーになるはず
最後の馬鹿みたいな完了待ちループといい、これ書いた本人がTaskを正しく理解してないからこんなもん真似しちゃダメ
正しくはこんな風にする
private Task PageLoad(Uri uri) {
TaskCompletionSource<bool> pageLoaded = new TaskCompletionSource<bool>();
EventHandler handler = (s, e) => {
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete) {
webBrowser1.DocumentCompleted -= handler;
pageLoaded.SetResult(true);
}
};
webBrowser1.DocumentCompleted += handler;
webBrowser1.Navigate(uri);
return pageLoaded.Task;
}
- 761 :デフォルトの名無しさん (ガックシ 0694-pbYT):2016/09/23(金) 15:45:17.32 ID:LY9xYEOG6.net
- 下記のページで紹介されている
同じレベルのコントロールを含めて透明に表示するということをやりたいんですが
http://mitsu.three-atmarks.com/archives/10696#
僕の理解力がないせいで、上のページで言われている
要は、背面のコントロールを描画するときに、
Graphicsの原点を背面のコントロールの位置にずらせれば、
直接コントロールに描画出来るはず。
という部分について、なぜこのようにすれば直接コントロールに描画できるのか
理解できないです。もう少し分かりやすく説明していただける方が
いらっしゃればありがたいです。
- 762 :デフォルトの名無しさん (アウアウ Sa25-S2gS):2016/09/23(金) 17:38:10.48 ID:pqhQamNta.net
- >>761
コントロールAがForm上の(50, 50)、コントロールBが(100, 100)にある時、
Bから見て、つまりBの左上を原点とする座標系では、Aの位置は(-50, -50)
になるのは分かる?
つまり、Bの背景にAを画像として描画するとき、左上が(-50, -50)になる位置に
描画しなければならない。
全部は読んでないけど、君が引用してる部分が言ってるのはただそれだけの話だと思うけど。
- 763 :デフォルトの名無しさん (ガックシ 0694-pbYT):2016/09/23(金) 18:23:52.80 ID:LY9xYEOG6.net
- >>762
なるほどです
分かりやすい説明ありがとうございました!!
難しく考えてたみたいです
- 764 :デフォルトの名無しさん (ワッチョイ b4ce-UBrL):2016/09/24(土) 03:08:32.58 ID:y416C6jo0.net
- Win7とWin10でFormに動的に配置したコントロールの位置が変わってしまうんですが
10のバグでしょうか
- 765 :デフォルトの名無しさん (アウアウ Sa25-S2gS):2016/09/24(土) 03:11:46.60 ID:iY+8jZQKa.net
- >>764
まずは問題を再現可能なサンプルをプリーズ
こういう場合はまず間違いなくバグってるのはユーザーコードだと思うけどw
- 766 :デフォルトの名無しさん (ワッチョイ b4ce-UBrL):2016/09/24(土) 08:56:19.69 ID:y416C6jo0.net
- ↓のようなコードです。10の最新版だと下側のボタンがTextBox1に隠れてしまう
using System;
using System.Windows.Forms;
public partial class Form1 : Form {
public StatusBar StatusBar1;
public Button Button1, Button2;
public TextBox TextBox1;
private void Form1_Load(object sender, EventArgs e) {
StatusBar1 = new StatusBar();
StatusBar1.Text = "StatusBar1";
this.Controls.Add(StatusBar1);
Button1 = new Button();
Button1.Left = 5; Button1.Top = 5; Button1.Width = 100;
Button1.Text = "Button1";
this.Controls.Add(Button1);
TextBox1 = new TextBox();
TextBox1.Multiline = true;
TextBox1.ScrollBars = ScrollBars.Vertical;
TextBox1.Left = Button1.Left;
TextBox1.Top = Button1.Bottom + 5;
TextBox1.Width = ClientSize.Width - 10;
TextBox1.Height = ClientSize.Height - (TextBox1.Top + StatusBar1.Height + Button1.Height + 10);
TextBox1.Anchor = (AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right);
TextBox1.Text = "TextBox1";
this.Controls.Add(TextBox1);
- 767 :デフォルトの名無しさん (ワッチョイ b4ce-UBrL):2016/09/24(土) 08:57:08.71 ID:y416C6jo0.net
- Button2 = new Button();
Button2.Left = TextBox1.Right - Button1.Width;
Button2.Top = TextBox1.Bottom + 5;
Button2.Width = Button1.Width;
Button2.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right);
Button2.Text = "Button2";
this.Controls.Add(Button2);
}
public Form1() {
this.Load += new EventHandler(this.Form1_Load);
}
[STAThread]
private static void Main(string[] args) {
Application.Run(new Form1());
}
}
- 768 :デフォルトの名無しさん (ワッチョイ b4ce-UBrL):2016/09/24(土) 10:10:10.95 ID:y416C6jo0.net
- すいません気のせいでした。
スクリーンサイズが小さくなった時にウィンドウのボタンが画面外にあったのをを勘違いしてました。
あと別件ですが、Win7と10のバイナリを共通にしたいのですが、
OSデフォルトのNET3..5とNET4共通バイナリを作る方法ってないでしょうか。
ネイティブだと1本で済むのにOSランタイム毎にビルド管理とかちょっとやってられない、
そんな気がして。
- 769 :デフォルトの名無しさん (ワッチョイ 8dd6-xjL4):2016/09/24(土) 11:13:46.90 ID:oK3h3qVH0.net
- 3.5で作るかインストールPCにランタイム入れれば良いじゃん
それが嫌なら.Net Frameworkは使うな
- 770 :デフォルトの名無しさん (ワッチョイ a030-PAdl):2016/09/24(土) 11:29:43.09 ID:hsY2X9yo0.net
- (そんな方法は)ないです
って答えればいいんだよ
欲しがりは成長と進化の基礎だからいいの
- 771 :デフォルトの名無しさん (アウアウ Sa25-S2gS):2016/09/24(土) 11:52:58.88 ID:JwK8cJB+a.net
- ありますよw
厳密には指定できるのは.NET FRameworkのバージョンじゃなくてCLRのバージョンみたいだけど
https://msdn.microsoft.com/ja-jp/library/jj152935(v=vs.110).aspx
- 772 :デフォルトの名無しさん (ワッチョイ d7c0-5q76):2016/09/24(土) 12:00:45.52 ID:Of8aeM470.net
- こういうの見るとMSがテロ紛いでWin10にしたがる気持ちが判らんでもないな
- 773 :デフォルトの名無しさん (ワッチョイ 9f49-cp+5):2016/09/24(土) 14:46:53.85 ID:1AtHYWO90.net
- >>768
WindowsUpdateはしないの?
Windows7でも最新のWindowsUpdateまで適用すれば、Windows10と変わらんぞ。
- 774 :デフォルトの名無しさん (ワッチョイ d77b-su3J):2016/09/25(日) 15:25:15.21 ID:fq9dYi1p0.net
- インターネットからは遮断するからって言ってXP使うとかよくある話
こっそり繋ぐ奴がいるのもよくある話
- 775 :デフォルトの名無しさん (ブーイモ MMad-Px3x):2016/09/25(日) 16:36:01.47 ID:4xz/DsvPM.net
- 破滅的なコードのせいでマイグレートできないので古いシステムをごまかしごまかし使うしかないんだよね
我々も反省しなければならない
- 776 :デフォルトの名無しさん (ワッチョイ 5b5b-7Sel):2016/09/29(木) 00:23:18.02 ID:+0Qp1kVd0.net
- C#の勉強を始めたのですが
オープンソースでいいお題(アプリ)が置いてあるところ無いでしょうか
- 777 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/09/29(木) 01:40:43.54 ID:/9QwJEmmM.net
- Githubとかかな
- 778 :デフォルトの名無しさん (ワッチョイ 5b5b-7Sel):2016/09/29(木) 12:47:00.61 ID:+0Qp1kVd0.net
- >>777
ありがとうございます
GitHubで探してみましたが自分の探しかたがいけないのかいい感じのものがヒットしませんでした
また何かあれば宜しくお願い致します
- 779 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/09/29(木) 15:02:11.83 ID:Rdq+cK8X0.net
- C# で作られた他のソフトにある
ステータスバーのパネルの文字を取得する方法を教えてください
こちらを参考にしましたがパネルの情報が取れないよう
http://www.pinvoke.net/default.aspx/user32/SB_GETTEXT.html
- 780 :デフォルトの名無しさん (ワッチョイ 7b19-GPCj):2016/09/29(木) 15:07:55.35 ID:DKzjXM9a0.net
- まずそのステータスバーのパネルの文字ってのは
spy++でウィンドウ辿っていって見つかるかどうか
見つからなかったら無理 IAccessibleでワンチャンあるかも
- 781 :デフォルトの名無しさん (ワッチョイ 1f13-rzru):2016/09/29(木) 15:28:30.93 ID:VK4C2vGz0.net
- >>776
MSDNのサンプルコード
https://msdn.microsoft.com/ja-jp/library/z9hsy596(v=vs.120).aspx
- 782 :デフォルトの名無しさん (ワッチョイ 27ce-ETlQ):2016/09/30(金) 03:42:26.49 ID:j/prnWis0.net
- >>779への回答にはならないけど
昔ロボワードって製品があって、マウスカーソルがフォーカスするテキストを
GDIのTextOutを横取りする離れ業で文字列を取得して翻訳をポップアップ表示してた
今ってそういう事はできないかねえ
Spy++で取ってこれる程度ならいいんだけど
上相当を行う仕組みって用意されてないのかな
- 783 :778 (ワッチョイ 4742-RPp1):2016/09/30(金) 10:44:19.74 ID:IP2ANi1b0.net
- >>780 >>782
ありがとうございます
素人なのでちんぷんかんぷんですが
StatusStrip はステータスバーではないため SB_GETTEXT 等が反応しないようです
>>780 さんのいう通り IAccessible だと可能なようですね
他のコントロールや他言語での情報が見られました
粘ってチャレンジすれば素人の自分でもいけそうですが時間がなくてすぐにはムリそうです
>>782 さんの通り描画や極論 OCR みたいのでというアプローチも調べていましたが
実現できたとしても相当大変そうですね
皆様方にご検討いただき感謝しておりますが時間の関係上諦めることにします
- 784 :デフォルトの名無しさん (ワッチョイ 4fe1-rzru):2016/09/30(金) 11:09:21.12 ID:sdeI0aJe0.net
- 今はIAccessibleよりUIAutomationでは
- 785 :デフォルトの名無しさん (ワッチョイ 27ce-ETlQ):2016/09/30(金) 17:32:46.15 ID:j/prnWis0.net
- デバッガでステータスバー描画時に文字列を何のAPIを使って描いてるのか調べて
そのAPIを挿げ替えるか、下のようなのを試してみるとか
テキスト取得DLL※シェアウェア
http://www.vector.co.jp/soft/winnt/prog/se498161.html
- 786 :デフォルトの名無しさん (ワッチョイ 477b-RPp1):2016/09/30(金) 18:00:54.22 ID:Uo+9x4Cm0.net
- C#の質問ではないのですが、ラベルが最大100個必要とします。
その都度の場面で1個必要であったり、10個必要であったり、100個必要であったりします。
ラベルの最大数を抑える為に、ラベルの若い順に多用し、コードを書く方法と、
最大数が数倍に増えてたとしても、その場面専用のラベルを作成し、コードを書く方法はどちらが適切なんでしょうか。
C#の質問というより、プログラムの質問になりましたが、よろしくお願いします。
- 787 :デフォルトの名無しさん (ワッチョイ 4b6a-PJif):2016/09/30(金) 20:00:11.33 ID:JoKU75pb0.net
- 負荷が問題になるまでは見通しのよいコードを選ぶわ
- 788 :デフォルトの名無しさん (オッペケ Srb7-Xr8z):2016/09/30(金) 20:35:09.51 ID:gcbWMuu4r.net
- >>786
日本語で頼む
- 789 :デフォルトの名無しさん (ワッチョイ 27ce-ETlQ):2016/09/30(金) 20:48:47.86 ID:j/prnWis0.net
- >>786
表示する度に毎回作成するつもりだとしたら誤り。
最大100なら100個最初から用意して不要なのは非表示にしとく。
それとラベルは1個1個定義するんでなく適当なコンテナにまとめて管理する。
ただ子ウィンドウが100枚は環境によってはチラつきが目立ったりする要因になるから
1枚パネルに100枚分直接描画する事も検討した方が良い。
手間はラベル100個管理するより掛かるけど直接描画は圧倒的に処理が軽い。
- 790 :デフォルトの名無しさん (ワッチョイ c7d4-js6q):2016/09/30(金) 20:50:39.14 ID:FOsPpkI40.net
- 配列のメモリがいつ確保されるのかについて教えて欲しいのですが
int[] i = new int[10000];
このような配列の宣言とメモリの確保した場合、参照用変数10000個分のメモリは確保されていてもint型10000個分のメモリは未だ確保されていないという認識であっているのでしょうか?
- 791 :デフォルトの名無しさん (ワッチョイ 9bdc-rzru):2016/09/30(金) 20:56:17.43 ID:4hxo3I+i0.net
- >>790
intは値型だから参照を介さない
int型1000個分のメモリが確保され、配列オブジェクトへの参照がiへ入る
- 792 :デフォルトの名無しさん (スププ Sd8f-rzru):2016/09/30(金) 22:20:33.12 ID:Fmt1sBQdd.net
- >>786
そういうのはListViewコントロールに任せちゃうね
- 793 :デフォルトの名無しさん (ワッチョイ 177b-RPp1):2016/10/01(土) 02:32:14.82 ID:wBNDJc4Z0.net
- >>787-789
説明下手および説明不足ですみません。
見通しの良いコードを選ぶということは、分割したほうがいいということでしょうか。
ラベルだけだと説明が足りないので、ボタン3個も追加します。
ラベル100個とボタン3個で色々なパターンの処理を書いた場合についてですが、
例1
ボタン1のクリックイベントにラベルを10個表示するコードを書きます。
そして、ボタン2のクリックイベントにラベルを50個表示するコードを書きます。
最後に、ボタン3のクリックイベントにラベルを100個表示するコードを書きます。
例2
ボタン1のクリックイベントに、if文を書いて、もし場面1ならラベルを10個表示し、
もし場面2ならラベルを50個表示し、もし場面3ならラベルを100個表示する。
というようなコードを書いたとします。
この2つの処理は、例1だと処理を分散することによって読みやすくなると思います。
例2だとボタンを2個削減することができますが、コードが長くなって読み難くなると思います。
行数が増えれば増えるほど、例1が扱いやすくなって、例2は扱いにくくなると思います。
みなさんは、例1と例2ではどちらの書き方を選ぶのでしょうか。
もしくは、もっと管理しやすい別の書き方はありませんでしょうか。
- 794 :デフォルトの名無しさん (アウアウ Sa17-uEQG):2016/10/01(土) 02:39:53.61 ID:zlQj50UYa.net
- >>793
結局何を聞きたいの?
そういう処理が本当に必要なわけ?
たぶん違うよね?
実現する必要もない処理の実現方法を聞いて何になるの?
- 795 :デフォルトの名無しさん (ワッチョイ 9730-PJif):2016/10/01(土) 02:54:00.68 ID:MIaIeT8n0.net
- そんなコード書かないからどちらも選ばないね
- 796 :デフォルトの名無しさん (ワッチョイ 4fe1-rzru):2016/10/01(土) 02:56:03.71 ID:tNbhSEQ70.net
- >>793
利用者目線で使いやすい方を選ぶ
どっちのパターンでも見やすくすることは簡単
- 797 :デフォルトの名無しさん (ワッチョイ 177b-RPp1):2016/10/01(土) 03:03:54.21 ID:wBNDJc4Z0.net
- >>794
似たようなコードを何度も再利用する場合、どうコードを書けば最適なのか聞きたいです。
最初は、例1のような書き方をしていて、同じ物を何度も使うのなら、例2にしたほうが無駄が省けるんじゃないかと思い、現在例2で書いてるところなのですが、
現状でも凄い長さになっていて結構読み難いと思い始めてここへ質問にきました。
>>795
似たような処理が不規則に発生する場合、どのように書いてますか?。
- 798 :デフォルトの名無しさん (ワッチョイ 177b-RPp1):2016/10/01(土) 03:07:50.73 ID:wBNDJc4Z0.net
- >>796
なるほど、利用者目線ですか。
個人で開発していて、利用者側のほうは考えてませんでした。
どちらでも見やすくできるのですか!。
どう工夫すればどちらでも見やすくすることができるのでしょうか?。
- 799 :デフォルトの名無しさん (ワッチョイ 27ce-ETlQ):2016/10/01(土) 03:44:10.04 ID:q3q/lNQ30.net
- そもそもラベル100個表示して、それを見てユーザーがどう思うか考えろ
ユーザーの感想は恐らく「うわーナニコレ気持ち悪い」だよ
まずラベル100個から離れろ
次にユーザーが使う事を前提に考えろ
このままだとまるで頭のおかしい子だぞ
- 800 :デフォルトの名無しさん (ワッチョイ 1f13-rzru):2016/10/01(土) 03:48:04.09 ID:rH9xy5Nb0.net
- だからラベル100個も必要ならListView使えっつうの
- 801 :デフォルトの名無しさん (アウアウ Sa17-uEQG):2016/10/01(土) 04:18:56.28 ID:zlQj50UYa.net
- 言っちゃ悪いけど、アホな中学生が友人に「お前○○(アイドル)に告られたらどうする?」
って聞く類のバカ話にしか聞こえんね。
- 802 :デフォルトの名無しさん (ワッチョイ 47b5-RPp1):2016/10/01(土) 07:10:23.61 ID:VMhdEcdj0.net
- C#と直接関係ないんだけどzipで配布するような単純なユーティリティソフトの場合
設定を保存する場所と形式ってどこが良いのかな?
一応Environment.SpecialFolder.ApplicationData以下にXMLで保存する方法と
exeと同一フォルダにiniで保存する2通り作ってみた
VS的にはapp.exe.conifgなんだろうけどなんか気持ち悪い
個人的にはiniの方がファイルが分散しないので好きだけど
今時iniで大丈夫なのか不安もあるので諸兄の意見を聞かせてくれまいか
- 803 :デフォルトの名無しさん (ワッチョイ 9bdc-rzru):2016/10/01(土) 07:51:06.67 ID:rAdXsmVI0.net
- >>802
ファイル形式と場所は別問題だろ
俺ならJSONでexeと同じ場所
- 804 :デフォルトの名無しさん (ワッチョイ 47b5-RPp1):2016/10/01(土) 08:05:14.50 ID:VMhdEcdj0.net
- >>803
iniの方がじゃなくて同一フォルダの方がだね悪かった
同一フォルダでやります
- 805 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/01(土) 08:35:09.10 ID:ERiJSEHrM.net
- >>797
例題の設定がよくわからない
1つの画面がある
画面の状態によって画面内のラベルの数が変わる
画面の状態を変えるボタンが3つある
これで良いのか?
- 806 :デフォルトの名無しさん (オッペケ Srb7-Xr8z):2016/10/01(土) 10:04:44.50 ID:5I4x+GEMr.net
- ラベルとボタンに対応するオブジェクトを、それぞれItemsSourceにBindingで解決。
- 807 :デフォルトの名無しさん (ワッチョイ 177b-RPp1):2016/10/01(土) 12:47:01.78 ID:wBNDJc4Z0.net
- >>791
例には書いてませんが、位置、カラー、フォントなどがその場面場面で変わるので、ListViewではできないんじゃないでしょうか。
>>805
その解釈で間違いないです。
>>806
これからやってみます!
- 808 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/01(土) 13:13:07.74 ID:qYztZe37M.net
- ボタンの配置方法に規則性がないなら
パターン毎にカスタムコントロールを作りそのコントロールの要素としてラベルなどを貼り付ける
作成した幾つかのカスタムコントロールを画面に配置する
押されたボタンによって各カスタムコントロールの表示非表示を切り替える
- 809 :デフォルトの名無しさん (ワッチョイ 1723-RPp1):2016/10/01(土) 14:21:29.02 ID:7+OjnMag0.net
- >>807
1.xamlで書く
2.オーナードローを使う
俺は1がお薦めだな
- 810 :デフォルトの名無しさん (ワッチョイ 177b-RPp1):2016/10/01(土) 18:45:47.86 ID:wBNDJc4Z0.net
- >>808
処理が重過ぎなければ、その方法で管理したほうがよさそうですね!。
>>809
xamlで書くとはどういうことですか。
- 811 :デフォルトの名無しさん (ワッチョイ 1f13-rzru):2016/10/01(土) 20:44:27.08 ID:rH9xy5Nb0.net
- >>810
WPFとかXamarinとか ->XAML
- 812 :デフォルトの名無しさん (ワッチョイ 1f20-rzru):2016/10/01(土) 21:36:18.35 ID:8pjQj2AO0.net
- C#好きなんだけど
Windowsが落ち目気味だし
そもそもプログラ厶作る人間は
賤業従事者みたいな空気が
なんか辛くなってきました
そんなC#最大の問題を
皆さんどう考えてますか
- 813 :デフォルトの名無しさん (ワッチョイ 1f20-rzru):2016/10/01(土) 21:39:36.33 ID:8pjQj2AO0.net
- 面接で
C#やってました
と言っても
言語とか底辺の覚えることだし
興味ないから
SEとかやったことないの?
使えねえ
という空気が苦しいです
- 814 :デフォルトの名無しさん (ワッチョイ 9ba6-68Ay):2016/10/01(土) 21:55:14.00 ID:oaKP8GxL0.net
- それC#じゃなくてお前自身の問題じゃね?
- 815 :デフォルトの名無しさん (ワッチョイ 1f20-rzru):2016/10/01(土) 22:07:43.59 ID:8pjQj2AO0.net
- 大手Sierの従兄妹の結婚式に出たら
彼女の上司が
○○ちゃんもプログラマを卒業して
SEになり と祝辞を言ってた
プログラムする人間なんて
社会経験の浅い若造ってことだなと
痛感したよ
少なくとも25歳超えてプログラマとか
IT業界じゃ負け犬という認識なんだなと思った28歳の秋
- 816 :デフォルトの名無しさん (ワッチョイ 1f20-rzru):2016/10/01(土) 22:09:38.38 ID:8pjQj2AO0.net
- プログラマの給与基準が
新卒レベルなのが
現実を物語ってるわ
- 817 :デフォルトの名無しさん (ワッチョイ eb3c-ETlQ):2016/10/01(土) 22:17:36.09 ID:j4WTV/sN0.net
- PGに限らず、国の体質として技術屋の地位が低い事については確かに思う所はあるが
まあなんだ マ板でやれ
- 818 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/01(土) 22:27:05.88 ID:RzLhZEUm0.net
- >>817
それでも品質No.1なんだなぁ
- 819 :デフォルトの名無しさん (ワッチョイ 1f20-rzru):2016/10/01(土) 22:27:24.97 ID:8pjQj2AO0.net
- マ板は、多重請負が酷すぎるという
書き込みしか見なくなった
LINQの機能に感動すら覚えるほど
C#が好きなのに
プログラマが先行きの怪しい業種と化していて悲しい
- 820 :デフォルトの名無しさん (ワッチョイ 1f13-rzru):2016/10/01(土) 22:38:25.09 ID:rH9xy5Nb0.net
- プログラミングやめたいならもうム板にもこなくていいだろ
- 821 :デフォルトの名無しさん (オッペケ Srb7-Xr8z):2016/10/01(土) 22:39:25.90 ID:FxQOa5OAr.net
- LINQ毛嫌いする人いるよなあ。
あんなに便利なのに。
ほんの少しの努力はいるけど。
- 822 :デフォルトの名無しさん (アウアウ Sa17-uEQG):2016/10/01(土) 22:47:05.90 ID:IEObNzvoa.net
- >>819
今はだいぶ少なくなったんだよw
前は本当にそういう恨み言だらけだった
正直、あの手の連中は自分の問題を企業や業界の問題に
摩り替えているだけにしか思えない。
プログラマって職業を舐めてる。
昔デモシカ教師って言葉があったけど、何を勘違いしたかデモシカでプ
ログラマになってる奴が多すぎるんだな。
- 823 :デフォルトの名無しさん (スププ Sd8f-rzru):2016/10/01(土) 22:47:20.08 ID:UJVgAevHd.net
- >>821
だってWhere().Select()で書いた方が短く書けるもん
- 824 :デフォルトの名無しさん (ワッチョイ 1f20-RPp1):2016/10/01(土) 23:25:00.17 ID:8pjQj2AO0.net
- LINQ便利だけど
統括する若い女SEが理解できないという理由で
Datasetとか使う羽目になった
多次元配列に二次元配列突っ込む大卒のSEと
Micro-ORMとLINQを使う中年高卒プログラマの俺
大卒とか、高卒中年の俺が目を回すような
新技術とか使ってくるのが普通だと思ってたんだけど
今の大学はプログラムなんてまともに教えてないんだろうなと感じた
まあ、底辺の賤業なんて、大学で学ぶ価値無いもんな
- 825 :デフォルトの名無しさん (ワッチョイ 1f20-RPp1):2016/10/01(土) 23:28:39.54 ID:8pjQj2AO0.net
- つか、女SEは、デリゲートどころか継承すら忌避するんだけど
大学ではもうプログラムの授業は必須じゃないのかね?
高卒中年には事情が分からんよ
- 826 :デフォルトの名無しさん (ワッチョイ eb3c-rzru):2016/10/01(土) 23:33:06.55 ID:R05VqS280.net
- >>825
そんな職場で働く自分を恨め
嫌なら転職しろ
- 827 :デフォルトの名無しさん (ワッチョイ 1f20-RPp1):2016/10/01(土) 23:37:51.58 ID:8pjQj2AO0.net
- >>826
プロジェクトが終わるまでは
付き合わないとダメかなと思うおれは、
やはり昭和の人間か
今の若者は、見切りが早そうだしね
現状に最適化されてるんだろう
- 828 :デフォルトの名無しさん (ワッチョイ eb3c-rzru):2016/10/01(土) 23:41:07.40 ID:R05VqS280.net
- >>827
継承を避けるのはまだわかるけどね
- 829 :デフォルトの名無しさん (ワッチョイ 9bdc-dvmP):2016/10/01(土) 23:45:00.08 ID:rAdXsmVI0.net
- >>827
お前の仕事はモノを納品することか? 違うだろ?
プログラマとして労働力を提供することだろ?
勘違いするな、黙って言われた通りに手を動かせ
- 830 :デフォルトの名無しさん (ワッチョイ 475e-RPp1):2016/10/01(土) 23:49:41.63 ID:wYwnqMss0.net
- ここ質問スレなんだから弁えてくれよ
ワッチョイ表示されているのにやめとこうとか思わないのかな
検索したら他の書き込みも見つかるんだよ
- 831 :デフォルトの名無しさん (ワッチョイ 1f20-RPp1):2016/10/01(土) 23:50:00.46 ID:8pjQj2AO0.net
- >>829
古い技術で冗長に作るのは構わないけど
それで完成を急がせるとか悪夢なんだよな
プログラマでも、夜10時には帰りたいんだよ
IT業界最底辺のプログラマの癖に
生意気な発言かも知れんけど
- 832 :デフォルトの名無しさん (ワッチョイ 1f20-RPp1):2016/10/01(土) 23:52:27.12 ID:8pjQj2AO0.net
- つか、最近この業界は女が多いな
元請けにだけど
SEの6割くらい女だ
- 833 :デフォルトの名無しさん (スププ Sd8f-rzru):2016/10/02(日) 00:10:23.06 ID:7Va7E79+d.net
- ウジウジ気持ち悪い奴だな
- 834 :デフォルトの名無しさん (ワッチョイ 177b-RPp1):2016/10/02(日) 02:04:45.52 ID:6e8EcOa10.net
- >>811
.NET以外を使うってことですね!。
レスありがとうございました。
- 835 :デフォルトの名無しさん (ワッチョイ 4349-xqgw):2016/10/02(日) 02:58:07.19 ID:wunJRFms0.net
- >>834
WPFは.NETなんだけど。
- 836 :デフォルトの名無しさん (ワッチョイ 7fc6-JF6f):2016/10/02(日) 04:46:38.35 ID:HmiRIMtE0.net
- >>827
それじゃプログラマじゃなくてコーダーじゃん
- 837 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/02(日) 12:12:47.44 ID:VPKGbKQDM.net
- >>824
DataSetで書かれた難解で長いプログラムはわかるのにLinqで書かれたシンプルで短いプログラムはわからないなんて不思議だよね
- 838 :デフォルトの名無しさん (ワッチョイ 6748-uvlU):2016/10/02(日) 12:41:22.23 ID:Y2xoqUni0.net
- 単純だから容易というわけではない、シンプルとイージーの違いネ
- 839 :デフォルトの名無しさん (ワッチョイ 9730-PJif):2016/10/02(日) 12:47:36.32 ID:O3UtDhl/0.net
- 先週この板で一番狂ってるのはjavascriptスレって書いたけど
ここ2〜3日はふらっとC#とC#相談室の両スレもいい蒸留してるよ
- 840 :デフォルトの名無しさん (アウアウ Sa17-uEQG):2016/10/02(日) 12:55:43.94 ID:XDiD4uyfa.net
- というより、他人(あるいは数か月後の自分)視点を意識してコードが書けるかどうかの違いでしょ。
読みづらいコードもそれなりに可読的なんだよ。
書いてる時に書いてる本人にとっては。
使う技術は関係ない。
クエリ式もラムダ式もこういう意識がない奴にかかったら読みづらくてしょうがないものが出来上がる。
- 841 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/02(日) 13:45:15.31 ID:rG0Iec2X0.net
- >>840
このスレでlinqやらラムダ式やらひたすら質問しまくってるくせに
他人がそれをわからない可能性を欠片も想像できないんだよな
彼はお前のコードは読みにくいって言われたときにそれを受け入れることはできるんだろか?
- 842 :デフォルトの名無しさん (ワッチョイ 4b90-fN+R):2016/10/02(日) 13:47:23.31 ID:qYaftGvG0.net
- Dockのようなランチャーを作りたいんですが何を使って作ったらいいのか検討もつきません
何を使えばいいでしょうか?
- 843 :デフォルトの名無しさん (ワッチョイ 475e-RPp1):2016/10/02(日) 14:30:26.31 ID:eLKM9Z4N0.net
- >>842
どういうことをしたいのかまとめるのを先にやらないと
C#のForm内で実行する外部アプリのウィンドウを表示させるのは多分出来ない
複数のアプリの起動・終了・アクティブ化くらいならProcessとかで出来る
- 844 :デフォルトの名無しさん (オッペケ Srb7-rzru):2016/10/02(日) 15:56:40.74 ID:y4aGXedMr.net
- たまにプログラム書いたことないSEっているよね?
どういう経緯でSEになれるの?
あと仕事になるの?
女でもプログラム書けないSEがいるんだが…
- 845 :デフォルトの名無しさん (ワッチョイ c7d4-js6q):2016/10/02(日) 16:20:08.90 ID:U5FzGUog0.net
- 日本の一部の会社では営業のことをSEって言ってるんだと思えばいいんだよ
営業だと総合職になるので出世コースを用意させられそうなところ、技術職の名目で用意しないって寸法よ
- 846 :デフォルトの名無しさん (ワッチョイ eb3c-RPp1):2016/10/02(日) 16:41:27.15 ID:laSZMLZ30.net
- ふらっと C#,C♯,C#(初心者用)
- 847 :デフォルトの名無しさん (オッペケ Srb7-rzru):2016/10/02(日) 17:02:42.62 ID:y4aGXedMr.net
- >>845
そういうことなのか…
可愛い顔してSEっていうからプログラム脳なのかと思ったら違ったから意味不明だったわ
- 848 :デフォルトの名無しさん (ワッチョイ 4349-xqgw):2016/10/02(日) 21:00:35.43 ID:wunJRFms0.net
- 実際、会社説明会行ったら、進行役の人がSEを紹介する時にシステム営業って呼んでたことがあった。
言われた瞬間のSEの人の顔が面白いことになってたが。
- 849 :デフォルトの名無しさん (ワッチョイ 5b17-fN+R):2016/10/02(日) 21:05:09.85 ID:nHcCPZ2m0.net
- 別に SE に限らず、外に出る人は全て営業て認識は間違いではないような。そういうのを理解してないのが多すぎるけど。
完全にスレチだが。
- 850 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/02(日) 21:37:39.14 ID:rG0Iec2X0.net
- >>849
そういうのいいんで営業通してもらえます?
- 851 :デフォルトの名無しさん (ワッチョイ c7d4-js6q):2016/10/02(日) 21:39:31.23 ID:U5FzGUog0.net
- 外に出ればなんでも営業の側面があるのは確かだろうけど、働く側にしてみれば総合職なのか一般職なのかの違いは重要だろう
一般的にいう営業 = 総合職で雇った新人の取引先へのお披露目を兼ねてるセールスマン
名ばかりSE = 技術職の名前でおだてられている出世なしのセールスマン
- 852 :デフォルトの名無しさん (ワッチョイ eb3c-ETlQ):2016/10/02(日) 21:46:08.51 ID:iDLKJ1fp0.net
- マ板でやれって
- 853 :デフォルトの名無しさん (アウアウ Sa17-uEQG):2016/10/02(日) 23:28:14.98 ID:i2p2EOqEa.net
- 昨日も書いたけどさ、くだらない恨み言を書いてる奴は
本人は会社や業界の問題点を指摘してるつもりかもしれないけど、
他人から見たらうだつの上がらない自分自身を語るに落ちてるだけに見えてるって
いい加減気が付いた方がいいと思うよw
- 854 :デフォルトの名無しさん (ワッチョイ 9730-PJif):2016/10/02(日) 23:29:21.56 ID:O3UtDhl/0.net
- 配列(int[10000])のメモリを確保する仕事を繰り返してるうちに頭がやられたんだろ
そんな忠告通じるかい
- 855 :デフォルトの名無しさん (ワッチョイ 1f20-RPp1):2016/10/03(月) 00:26:29.74 ID:AAbakoPq0.net
- C#を勉強していて
インターフェースなる概念を学んだのですが
メソッドの実装が無い時点で
インターフェースを継承したクラスを作る各人が
好き放題実装を書くことになるんですよね?
実装方法の違う同名メソッドを
みんなで作るのは工数の無駄のように思いますし
収集もつかなくなるような気がするのですが
理解が誤っているでしょうか?
- 856 :デフォルトの名無しさん (ワッチョイ fb3a-RPp1):2016/10/03(月) 00:57:50.23 ID:DydELLCK0.net
- >>855
インターフェイスは名前通り、モジュールとモジュール(或いはクラスとクラス)の境界を定義する機能
同じ意味合い(データを取得)の別メソッド(顧客データをDBから取得/顧客データをファイルから取得)みたいなものを作って、
柔軟に差し替えができる。
使う側はインターフェイスだけ意識すれば良い。
使い捨てで柔軟性を必要としないプログラムを作ってるなら、工数の無駄かもね。
- 857 :デフォルトの名無しさん (ワッチョイ fb3a-RPp1):2016/10/03(月) 01:01:47.75 ID:DydELLCK0.net
- あれ?釣られた?
- 858 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/03(月) 01:01:53.62 ID:IYpgz1/LM.net
- 言語的には確かにインターフェースにはメソッドの呼び出し規約しか存在しない
でも設計書にはこのインターフェースを実装するクラスは何々しなきゃダメよといったより抽象的な規約が書かれているはずだ
インターフェースを使う側は規約のみに依存すれば良い
インターフェースを実装するクラスは規約を満たすことのみを考えれば良い
インターフェースがあれば各クラスの領分をハッキリと分離できるんだ
そして規約を満たしていれさえいればインターフェースの実装方法に制限はないため強い互換性が獲得できる
つまりプログラムにSOLIDな特性が発生して強靭でしなやかな作りになるんだ
- 859 :デフォルトの名無しさん (アウアウ Sa17-uEQG):2016/10/03(月) 01:27:29.89 ID:Pw6tjCZia.net
- >>855
うだうだ考えてるより実例を見た方が早いよたぶん。
とりあえずIComparableあたりがBCLでどうやって利用されてるかでも調べたらどうかな
- 860 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/03(月) 01:28:57.92 ID:DRFx4tO40.net
- まあ、もちろん
インターフェースの提供側と使用側が金銭レベルで分かれてる環境でしか機能しない
自分や隣の席に座ってる奴にインターフェースなんてこさえてやっても時間の無駄だ
- 861 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/03(月) 01:40:30.28 ID:DRFx4tO40.net
- 現実的な話として作成中に
インターフェースの引数じゃたりないんすけど?
ってなったら増やすしかない
じゃ、いつもの関数と変わんねーじゃんなにが柔軟なんだよってのもその通りで提供側と使用側がはっきり分かれていないと
恩恵は全くわからない はず
- 862 :デフォルトの名無しさん (ワッチョイ 1f13-rzru):2016/10/03(月) 02:08:33.30 ID:0EHB0e2M0.net
- いやいや、自分一人でコーティングするプロジェクトでもインターフェイスは多用しますって
- 863 :デフォルトの名無しさん (ワッチョイ 477b-eUFH):2016/10/03(月) 02:30:26.02 ID:a2PPRqH/0.net
- インターフェースとは、ダックタイピング。
アヒルのように鳴くものは、アヒルとみなす
呼ぶ側は、cry を呼ぶから、
呼ばれる方は、cry を実装しておいて下さい、という決め事
A.cry, B.cry が実装してあれば、A, B はアヒルとみなす。
ここで、A, B は一般的に、継承関係のないクラス
継承関係のないクラスに対して、同じ関数名を強制する
- 864 :デフォルトの名無しさん (ワッチョイ c77b-JF6f):2016/10/03(月) 04:30:45.81 ID:hKZ6axFq0.net
- >>863
ところがだ
最近はdynamicを使う
- 865 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/03(月) 06:23:38.11 ID:DRFx4tO40.net
- >>862
意味ねー
関数の引数なんて必要とあらばいつでも変更すればいいだろ
- 866 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/03(月) 06:24:45.16 ID:xbCUt/Ve0.net
- 多態するだろw
- 867 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/03(月) 06:28:14.08 ID:DRFx4tO40.net
- >>866
インターフェースの本来の使い方何だろか?
- 868 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/03(月) 07:14:57.14 ID:xbCUt/Ve0.net
- そうだよ!w
本来というのが何を指すのか知らんが大きなメリットのひとつ
それに多態しなくても依存性を断ち切っておけば
その後のコードの切り回しのしやすさが段違い
一人でも使いまくる
- 869 :デフォルトの名無しさん (ワッチョイ c394-6fmH):2016/10/03(月) 12:09:00.68 ID:sK18CVwJ0.net
- 自分でインターフェース作らない人でも恩恵には預かってるんじゃないの
IEnumerableとか
- 870 :デフォルトの名無しさん (アウアウ Sa77-7Sel):2016/10/03(月) 12:39:51.14 ID:wG2YSR7Ja.net
- 道具っつーもんは使い方を覚えて初めて便利だと思えるもんだからなぁ
- 871 :デフォルトの名無しさん (ドコグロ MM2f-rzru):2016/10/03(月) 14:40:25.35 ID:UhPwVzIDM.net
- >>868
ひとりで組んでるときにそんなことするの無駄じゃない?
組み方や仕様に迷いがあるからくだらない汎用性付けようとするわけで
- 872 :デフォルトの名無しさん (ワッチョイ 4f90-RPp1):2016/10/03(月) 14:42:17.86 ID:2dHs/sIj0.net
- IEのユーザエージェントをいじってスマホにして遊んでました。
その後、サイトにアクセスすると見づらいので元のIE(PC)のユーザエージェントに
戻したいのですが、どうすれば最新のIEのユーザエージェントが分かりますか?
ネットでぐぐってもIEの最新バージョンのユーザエージェントを公開しているところがありません。
- 873 :デフォルトの名無しさん (ワッチョイ 7b19-GPCj):2016/10/03(月) 14:44:44.28 ID:whgMhbbL0.net
- スレ違いなのでWindows板のInternet Explorerスレ辺りに行ってきて
どうやってUA変えたかも書くんだぞ
- 874 :デフォルトの名無しさん (スププ Sd8f-rzru):2016/10/03(月) 17:21:41.87 ID:pR9GPAtgd.net
- >>867
多態使わないのかよw
if文シコシコ羅列してクラス型ごとに動作変えるのは大変でしょうに
- 875 :デフォルトの名無しさん (ササクッテロ Spb7-LGiF):2016/10/03(月) 17:47:34.85 ID:OopphbkDp.net
- >>863
ダックタイピングはアヒルの様に見えアヒルの様に振る舞うならばそれはアヒルであるとみなす考え方で、C#ならばdynamicを使う
一方インターフェースはアヒルの様に振る舞うとしても「アヒル」インターフェースを実装してなければアヒルとは認めないという考え方
どちらも多態性を提供するが混同すべきじゃない
- 876 :デフォルトの名無しさん (アウアウ Sa67-uvlU):2016/10/03(月) 18:21:37.63 ID:BG7c9nZ4a.net
- ガンダムでお願いします
- 877 :デフォルトの名無しさん (ワッチョイ eb3c-ETlQ):2016/10/03(月) 18:37:30.20 ID:WmAakHDe0.net
- 「アイカメラがツインアイ + ブレードアンテナが額から伸びる2本の角型」 なら何でもガンダムと見做すのがダックタイピング
「外観を問わず、(鉄オル準拠で)ガンダムフレームが組み込まれている物」 をガンダムと定義するのがインターフェース
- 878 :デフォルトの名無しさん (ワッチョイ eb3c-ETlQ):2016/10/03(月) 18:37:57.43 ID:WmAakHDe0.net
- 尚、ブレードアンテナの形状について
∀を持ち出しての反論は受け付けない物とする
- 879 :デフォルトの名無しさん (ワッチョイ c7d4-js6q):2016/10/03(月) 18:38:07.30 ID:debxKRu60.net
- オンラインIDEでC#の補完がちゃんとできるやつってないかな?
一度入力したオブジェクト名やメンバ名を保管してくれるのはあっても、ローカルIDEみたいに全て補完してくれないのだらけだ・・・・
- 880 :デフォルトの名無しさん (アウアウ Sa67-uvlU):2016/10/03(月) 18:58:31.57 ID:BG7c9nZ4a.net
- C#諦めました…
- 881 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/03(月) 18:59:14.80 ID:0mzqHUL00.net
- >>874
いや、逆に分岐条件を明示しないことで何やってるのか組んだ奴にしかわからんほうが嫌なので
- 882 :デフォルトの名無しさん (ワッチョイ eb3c-ETlQ):2016/10/03(月) 19:05:52.04 ID:WmAakHDe0.net
- ええ……
- 883 :デフォルトの名無しさん (ワッチョイ fb7b-S4Np):2016/10/03(月) 19:35:51.50 ID:DGeMMOSU0.net
- そんな現場やだ
- 884 :デフォルトの名無しさん (オッペケ Srb7-rzru):2016/10/03(月) 19:44:54.54 ID:2NCq6u8sr.net
- 動けばいいんだよ
- 885 :デフォルトの名無しさん (ササクッテロ Spb7-LGiF):2016/10/03(月) 19:47:20.06 ID:OopphbkDp.net
- >>881
うわぁ…
- 886 :デフォルトの名無しさん (ワッチョイ 5b5b-9qEq):2016/10/03(月) 19:57:52.60 ID:HeYPjqdu0.net
- 新人でも自分で理解できる可読性を優先させるのはありっちゃあり
- 887 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/03(月) 20:11:25.46 ID:SRnyVZlvM.net
- >>881
君の釣り針はいつもデカいな
- 888 :デフォルトの名無しさん (ワッチョイ fb42-RPp1):2016/10/03(月) 20:24:02.26 ID:E6Z8Y8f50.net
- >>871
まあそのとおりなんだが
いっときInterface病にかかって全部のクラスにIFつけてた
今見ると無様
でも迷ってても実装が進むし柔軟性はあったぞ!
- 889 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/03(月) 21:14:05.48 ID:o5lyUn4M0.net
- >>887
正論過ぎて反論できないだろ?
- 890 :デフォルトの名無しさん (ブーイモ MM8f-LGiF):2016/10/03(月) 23:35:40.82 ID:lhwmhlCDM.net
- テスタビリティ考えると1人作業でもアプリケーションコードではインターフェース必須なんだよね
インターフェースが必要ないのはPOCOで依存がないドメインオブジェクトとかFCLのようなコアライブラリだけ
- 891 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/04(火) 00:33:22.83 ID:/FCIPvE20.net
- >>890
それやるのに実装まで影響がでるってとこに納得行かない
方針が間違ってるんじゃねーの?
ぶっちゃけ俺も誰がどんな場面想定してこんなゴミ作ったのか知らんけど
- 892 :デフォルトの名無しさん (スププ Sd8f-rzru):2016/10/04(火) 01:02:29.71 ID:UQnVBbe6d.net
- インターフェイスがゴミとか言ってんのお前だけだぞ
>>891
- 893 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/04(火) 06:38:56.74 ID:hihlaoI70.net
- >>891
文章のパーサを切り替えたり
AIのコアのアルゴリズムを入れ替えたり
ゲームのキャラを一括で扱ったり
DIしたり
もうないと生きていけないレベルで必要
- 894 :デフォルトの名無しさん (ラクッペ MM37-rzru):2016/10/04(火) 07:24:11.99 ID:hVjLfR/3M.net
- インターフェイスの使いどころを
質問した者ですが
インターフェイスは継承した
クラスで内容の違う同じ名称の
メソッドを作る
つまりオーバーライドのように
使う物と考えて良いのでしょうか
- 895 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/04(火) 07:28:36.70 ID:/FCIPvE20.net
- >>893
わざわざこんな仕組みでやる必要ねーし
っていうかそんな仕様あったの?
どうせいつもの妄想だろ?
- 896 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/04(火) 07:42:39.26 ID:hihlaoI70.net
- え…仕様って…
- 897 :デフォルトの名無しさん (アウアウ Sa77-7Sel):2016/10/04(火) 07:48:20.97 ID:tSzkB+1za.net
- 兄より優れた弟など存在しねぇでお馴染みのジャギさんきてんね
- 898 :デフォルトの名無しさん (ドコグロ MM2f-rzru):2016/10/04(火) 07:55:32.96 ID:rdpgIcW9M.net
- >>896
だから、実際そういう需要(仕様)があったうえでの話をしてるの?
- 899 :デフォルトの名無しさん (スッップ Sd8f-rzru):2016/10/04(火) 08:10:36.41 ID:8gRIuvr1d.net
- >>898
インターフェイス便利だよ。
ReaderとWriterだけでも。
中身気にせずパイプ的な感じで多段の処理書ける。
出口がコンソールでもファイルでも気にせずwrite出来る
- 900 :デフォルトの名無しさん (アウアウ Saff-uEQG):2016/10/04(火) 09:52:54.27 ID:Jehw2I/Ta.net
- >>894
筋が悪いお方
だから、うだうだ考える前に実例を見てみた?
- 901 :デフォルトの名無しさん (オッペケ Srb7-rzru):2016/10/04(火) 10:31:36.54 ID:mvK6O6xLr.net
- だから!
動けばいいんだよ
- 902 :デフォルトの名無しさん (アウアウ Sa17-RPp1):2016/10/04(火) 10:32:30.59 ID:2uMugtE2a.net
- みんなUIフォントを何にしてる?
メイリオがいいよね?メイリオがいいよね?
- 903 :デフォルトの名無しさん (アウアウ Sa77-7Sel):2016/10/04(火) 12:24:47.15 ID:BdiZqdxfa.net
- メイリオがいいけど、XPで崩れるのが嫌だなぁ
- 904 :デフォルトの名無しさん (ワッチョイ fb3a-RPp1):2016/10/04(火) 13:15:35.75 ID:Ii0olsrw0.net
- >>894
Sortに対するIComparerの役割考えてみ
interface は class に『実装する』ものであって、
『継承する』ものではないよ
- 905 :デフォルトの名無しさん (ワッチョイ 1717-RPp1):2016/10/04(火) 17:28:27.23 ID:15dXMmmi0.net
- Yu Gothic UI...
- 906 :デフォルトの名無しさん (ブーイモ MM8f-LGiF):2016/10/04(火) 18:15:29.26 ID:5GHWHTroM.net
- なんとなくわかったぞ
インターフェース使わない人って関数型プログラミングしてるってことか
- 907 :デフォルトの名無しさん (ラクッペ MM37-rzru):2016/10/04(火) 19:35:41.31 ID:PfynBLRqM.net
- >>906
自分は勉強で小さいプログラ厶しか
組んでいないので
一つのクラスにメソッドを複数
作って呼んでるだけです
ゲッターセッターも
作り方しか知りません
インターフェイスや抽象クラスなど
使いどころに困っています
- 908 :デフォルトの名無しさん (アウアウ Sa3f-RPp1):2016/10/04(火) 19:50:12.09 ID:6z/A7PWoa.net
- インターフェイスはオブジェクトが他のオブジェクトを使う場合に必要となるものなので
自作オブジェクトの中で使う必要がない場合が多い
初心者は.netフレームワークを使う中で要求されて実装することがあるぐらい
- 909 :デフォルトの名無しさん (スップ Sd0f-rzru):2016/10/04(火) 20:20:56.44 ID:kGjg20Jhd.net
- 最近Xamarinでプラットフォームごとに実装分ける時はよく使うな
- 910 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/05(水) 00:22:15.46 ID:75mjlcKq0.net
- かたっぱしからインターフェース付けて
メイン関数でレゴブロックみたいにくっつけるの楽しい
インターフェース使わないと
自分でこさえた部品の再利用とか全然できなくないか?
- 911 :デフォルトの名無しさん (スププ Sd8f-rzru):2016/10/05(水) 01:16:22.12 ID:Vyx32qgzd.net
- 必要になったらあとでインターフェイス追加する派
- 912 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/05(水) 01:25:15.80 ID:IoO2jnrO0.net
- >>910
設計した時点で決まってるだろ普通
- 913 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/05(水) 01:31:08.90 ID:1NkBv1zKM.net
- その物次第としか言いようがないな
StringBuilderみたいなそれだけで完結しててインフラへの依存もないなら抽象化は別にいらない
インフラ依存のクラスなら注入のために抽象化して欲しい
IEnumerableみたいにバリエーションが豊富で多態のメリットが大きければ抽象化したい
フレームワークぐらいの規模ならカスタムクラスのための抽象モデルを用意すべき
- 914 :デフォルトの名無しさん (ワッチョイ 27cb-rzru):2016/10/05(水) 07:00:17.83 ID:IoO2jnrO0.net
- >>913
そんな開発があってたまるか
設計した時点で決まってるだろ
- 915 :デフォルトの名無しさん (ワッチョイ 9730-PJif):2016/10/05(水) 07:19:45.11 ID:EDqQ344L0.net
- お兄さん宇宙クジラでも釣るのかぃ
- 916 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/05(水) 07:26:43.73 ID:v2hJAbmaM.net
- >>914
どんな開発のことを言ってるの?
君が言うようにインターフェースは設計時に概ね決まってるよ
- 917 :デフォルトの名無しさん (ワッチョイ 9bdc-dvmP):2016/10/05(水) 07:30:41.56 ID:R0+6OfJG0.net
- 設計時に決まってるからこそインターフェースが使えるんだよ
インフラを抽象化(というかプラガブルに)するのは基本的に単体テストのため
実際の運用で差し替えるというのは、ミドルウェアの類なら無くはないけどアプリでは現実にはまず無い
- 918 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/05(水) 07:41:19.00 ID:4VDP98LD0.net
- 個人のちっこいマクロ程度のプログラムでも結構使うぞ
つけときゃいつでも内部の処理を他を修正することなく差し替えられる
行き当たりばったりのときこそ必要だろ
- 919 :デフォルトの名無しさん (ワッチョイ 9bdc-rzru):2016/10/05(水) 08:16:36.43 ID:R0+6OfJG0.net
- >>918
汎用的なコンポーネントを作ろうとするのは典型的なアンチパターンだ
ちゃんと設計しないんならベタに実装して後で必要に応じてリファクタリングする方が効率がいい
・インターフェイスを定義してみたものの、後で変更が入ってその度に影響範囲の大きい修正が発生した
・インターフェイスを定義してみたものの、後で実装が増えることは無かった
・インターフェイスを定義してみたものの、むしろ差し替えたいのはプラガブルにしてなかった箇所だった
・インターフェイスを定義してみたものの利用側の要件に合わず、辻褄合わせの汚い処理や重複が発生した
心当たりはないかな?
- 920 :デフォルトの名無しさん (スッップ Sd8f-rzru):2016/10/05(水) 12:08:30.16 ID:djABpgcvd.net
- 俺は既に継承関係が決まってて継承使えないときだけ使ってるな
IEnumerableみたいなイケてるインタフェース設計は超人に任せる
- 921 :デフォルトの名無しさん (アウアウ Saff-uEQG):2016/10/05(水) 12:45:41.97 ID:X1NPzznla.net
- もはや元の質問そっちのけのやりとりだな
インターフェイスの設計で俺が時々悩むのは、最大公約数的な物がいいのか
最小公倍数的な物がいいのかだな。
基本的には最大公約数が正解だと思うんだが、でもBCLの中にも
平気でNotImplementedException投げるメソッドがあるからなあ。
- 922 :デフォルトの名無しさん (ワッチョイ 1f13-rzru):2016/10/05(水) 13:28:11.90 ID:+Mzxp0lF0.net
- 絶対インターフェイス使わないとか言ってんのはCOBOLかVB6から入ったプログラマーだな
- 923 :デフォルトの名無しさん (ワッチョイ 5b5b-9qEq):2016/10/05(水) 18:55:50.81 ID:+d6vVLNb0.net
- >>903
>Windows XP 向け ClearType 対応メイリオ
https://www.microsoft.com/ja-jp/download/details.aspx?id=10550
- 924 :デフォルトの名無しさん (ブーイモ MM57-LGiF):2016/10/05(水) 19:32:14.92 ID:Gemt2Ly0M.net
- >>919
そういう苦い思い出があるならそれって君が残念な子ってだけなんじゃ…
道具のせいにする人って結構いるよね
- 925 :デフォルトの名無しさん (ワッチョイ 4f90-RPp1):2016/10/05(水) 19:33:55.37 ID:dDDwv4Tw0.net
- ランサーズに仕事だしたら糞グラマばかりでうんざり。
- 926 :デフォルトの名無しさん (ワッチョイ 4b35-PJif):2016/10/05(水) 20:56:39.52 ID:TApQaAYe0.net
- ランサーズの思い出なんて
「遅れてるくせに仕事中にランサーズ見てんじゃねえよお前!!!!」って督戦先の会社でキレた思い出しかない
その程度の意識の奴しかいないと思ってる
- 927 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/05(水) 22:00:38.22 ID:tHsuIkay0.net
- 俺にぴったりだ!!www
- 928 :デフォルトの名無しさん (ワッチョイ a3e2-f+x4):2016/10/05(水) 22:30:06.28 ID:OwO3ociO0.net
- int k = 100;
int a = Enumerable.Range(0, 10).Where(x => x % 2 == 1).Select(x => k = k + x).Sum();
label1.Text = string.Format("k={0} a={1}", k, a);
aが555なのはわかりますがなんでkは125なんですか?なんで100 + 1+3+5+7+9
みたいな計算になるんですか?
- 929 :デフォルトの名無しさん (ワッチョイ 4742-RPp1):2016/10/05(水) 22:38:04.32 ID:tHsuIkay0.net
- KはSumで合計されてないよ
Selectが(1,3,5,7,9)で走って
k = k + 1 = 101
k = k + 3 = 104
k = k + 5 = 109
k = k + 7 = 116
k = k + 9 = 125
- 930 :デフォルトの名無しさん (ワッチョイ a3e2-f+x4):2016/10/05(水) 22:46:08.43 ID:OwO3ociO0.net
- >>929
わかりましたありがとうございます
- 931 :デフォルトの名無しさん (ワッチョイ 9e90-lsIp):2016/10/06(木) 00:04:55.93 ID:Fc4cuwun0.net
- ランサーズでかなりレベルの高いプログラマがいたよ。
仕事は出来るがあまりにも常識が無いヤツだった。
- 932 :デフォルトの名無しさん (アウアウ Sa43-TInN):2016/10/06(木) 01:35:54.20 ID:x4N6nEfma.net
- HttpClient.GetAsyncを途中で強制的にキャンセルする方法はないでしょうか。
以下のコードでGetHtmlAsyncメソッドででかめのHtmlファイル(10MBくらい)を取得してみたのですが
client.GetAsyncが待機中にキャンセルボタンをクリックして_cts.Cancel()を呼んでも
即時キャンセルされません。
結局ファイルを完全にダウンロードするまで止まってくれないようで、困っています
private CancellationTokenSource _cts;
private async Task GetHtml(string url)
{
_cts = new CancellationTokenSource();
using (HttpClient client = new HttpClient())
{
try
{
HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
string html = await res.Content.ReadAsStringAsync();
}
catch (OperationCanceledException e)
{
Debug.WriteLine(
- 933 :デフォルトの名無しさん (アウアウ Sa43-TInN):2016/10/06(木) 01:37:33.35 ID:x4N6nEfma.net
- catch (OperationCanceledException e)
{
Debug.WriteLine("cancel");
}
catch (Exception e)
{
Debug.WriteLine("例外発生:{0}", e);
}
}
}
public async Task GetHtmlAsync(string url)
{
await Task.Run(() => GetHtml(url));
}
- 934 :デフォルトの名無しさん (ワッチョイ a685-TInN):2016/10/06(木) 01:54:05.56 ID:Mzv6j6zu0.net
- HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
string html = await res.Content.ReadAsStringAsync();
clientのGetAsyncはレスポンスヘッダを受信したらreturnするんじゃねぇの?
レスポンスボディは読みこむ前に。
だから、実際、君がキャンセルしてるのはres.Content.ReadAsStringAsync()の最中で
すでに手遅れ。
- 935 :デフォルトの名無しさん (ワッチョイ a685-TInN):2016/10/06(木) 01:57:11.53 ID:Mzv6j6zu0.net
- ストリームで読み込んで自分でキャンセルするしかない。
var stream = await res.Content.ReadAsStreamAsync();
while (var bytesRead = await stream.ReadAsync() != -1)
{
_cts.Token.ThrowIfCancellationRequested()
}
- 936 :デフォルトの名無しさん (ワッチョイ a685-TInN):2016/10/06(木) 01:58:21.32 ID:Mzv6j6zu0.net
- await client.GetAsync(url, _cts.Token);
のキャンセルはサーバーがなかなかレスポンス自体を返さないような時の
キャンセルでしょ。タイムアウトする前にキャンセルするとか。
- 937 :デフォルトの名無しさん (ワッチョイ f4cb-xaNP):2016/10/06(木) 02:08:33.27 ID:8JIhT6+t0.net
- >>924
そもそも要求されたわけでもないのに作るインターフェースって全部変になる
それお前が組みやすい機能しか提供してねーだろ的な
- 938 :デフォルトの名無しさん (アウアウ Sa43-Nuoi):2016/10/06(木) 02:09:29.62 ID:x4N6nEfma.net
- レスありがとうございます。
それが、
HttpResponseMessage res = await client.GetAsync(url, _cts.Token);
で本体も取得しているような感じなんです。
ブレークポイントを貼ってみましたが、GetAsyncで10秒くらい止まった後に
string html = await res.Content.ReadAsStringAsync();に移ります。
(ReadAsStringAsyncは一瞬で終わります。)
そしてGetAsync中のCancelが効きません…
- 939 :デフォルトの名無しさん (ワッチョイ d9c9-gCaQ):2016/10/06(木) 11:00:29.01 ID:bdU4oXz50.net
- ツールバーのような(MS-IMEのような)フォームを作りたいのですが
どのようにしたらいいのでしょうか。
メインのフォームがあって、最小化するとツールバー化するようにしたいのです。
どなたかよろしくお願いします。
- 940 :デフォルトの名無しさん (ワッチョイ fc5e-lsIp):2016/10/06(木) 18:39:28.71 ID:sSah5I1h0.net
- >>939
SizeChangedのイベントで見てFormWindowState.Minimizedだったら望む大きさにフォームのサイズを設定してFormWindowState.Normalにする
戻す時にどういうUIにするかの方がメンドクサイ
- 941 :デフォルトの名無しさん (ワッチョイ c62a-xaNP):2016/10/06(木) 22:36:48.00 ID:ZQZztg7H0.net
- >>938
ヘッダだけとるのはオプション指定しないと。
- 942 :デフォルトの名無しさん (ワッチョイ 98d4-lsIp):2016/10/07(金) 16:01:09.05 ID:egEWpdwg0.net
- VBをC#に移植してるんですけど
下の拡張メソッドは、C#だとどうやって書きますか
<System.Runtime.CompilerServices.Extension()>
Public Function AppendLine(ByRef text As String, ByVal appendtext As String) As String
text &= appendtext & Microsoft.VisualBasic.vbCrLf
Return text
End Function
Stringを拡張してあって
Dim A As String = ""
A.AppendLine("ABC")
とかやると、AにABCが改行付きで入っていく拡張メソッドらしいのですが。
public static string AppendLine(ref this string value , string text)
ってやろうとしたら叱られてしまいました。
- 943 :デフォルトの名無しさん (ワッチョイ 1030-VEeh):2016/10/07(金) 16:16:11.06 ID:/rv9SwD50.net
- これ嫁
https://msdn.microsoft.com/ja-jp/library/bb383977.aspx
refが余計
- 944 :デフォルトの名無しさん (ワッチョイ 6f85-TInN):2016/10/07(金) 16:45:30.93 ID:33b7S5w40.net
- それはわかってんじゃねぇの・・
VBはrefつけれる?のかしらんが付いてるからC#ではどうやって同じ事するのかと。
- 945 :デフォルトの名無しさん (ワッチョイ 98d4-lsIp):2016/10/07(金) 16:58:55.89 ID:egEWpdwg0.net
- public static string AppendLine(this string value , string text)
{
value += text + '\n';
return value;
}
だと
String A = "";
A.AppendLine("ABC");
しても、Aは""のままなんだ。
参照渡しになってないせいかと思ったんだけど。
- 946 :デフォルトの名無しさん (ワッチョイ d919-hgF0):2016/10/07(金) 17:13:45.03 ID:Bnk5ZDGO0.net
- C#だと同等のことはできないね
thisとrefは同居できない
諦めて呼び出し元側で代入するしか
// どうでもいいけどvbCrLfと等価なのは\nじゃなくて\r\nだぞ、と
- 947 :デフォルトの名無しさん (ワッチョイ f99f-JwEk):2016/10/07(金) 17:16:48.78 ID:ISMNMdE40.net
- AppendLineしたいならStringBuilder使えばいいんでね?
- 948 :デフォルトの名無しさん (アウアウ Sa76-juU9):2016/10/07(金) 18:53:42.82 ID:CEJTQ2Toa.net
- むしろVBって>>942みたいなことができるのかw
でも出来てもやりたくないねw
- 949 :デフォルトの名無しさん (ワッチョイ d9c9-gCaQ):2016/10/07(金) 18:56:12.96 ID:1OPRlje/0.net
- >>940
レスありがとうございます。
if (FormWindowState.Minimized == true)とかだとダメですね。
FormWindowState.Minimizedの見方から調べてみます。超初心者ですみません。
通常フォームとツールバー型のフォームの2つを使って切り替えようかと考えています。
ボタンで切り替えだとうまくいくんですが、最小化ボタンだとできてません。
なかなか難しいです。ありがとうございました。
- 950 :デフォルトの名無しさん (ワッチョイ fc5e-lsIp):2016/10/07(金) 19:27:53.16 ID:92EIQdHi0.net
- >>949
(this.WindowState == FormWindowState.Minimized) な。そのままググればすぐ出てくるはずだが
http://dobon.net/vb/dotnet/form/minimized.html
http://dobon.net/vb/dotnet/form/windowsstate.html
実際最小化ボタンを非表示にして専用ボタン作った方が実装は楽だと思うよ
UIとか具体的な実装方法とかは個人の好みの範疇だけど
- 951 :デフォルトの名無しさん (オッペケ Sr4d-xaNP):2016/10/07(金) 19:29:15.46 ID:wvXFsDA2r.net
- なんか急にプログラミングができるようになった
- 952 :デフォルトの名無しさん (ワッチョイ ab49-LThL):2016/10/07(金) 22:59:55.08 ID:SqK/35OL0.net
- >>946
Environment.NewLine使うべきだな。
- 953 :デフォルトの名無しさん (ワッチョイ c37b-jLml):2016/10/07(金) 23:13:59.50 ID:2s8k82fa0.net
- HTTPのヘッダ直書きしてるならEnvironment.NewLineじゃまずいしケースバイケース
- 954 :デフォルトの名無しさん (アウアウ Sa76-juU9):2016/10/07(金) 23:18:43.10 ID:CEJTQ2Toa.net
- >>953
話の文脈にそったこと言わないとダメよw
- 955 :デフォルトの名無しさん (ワッチョイ 353c-lsIp):2016/10/08(土) 00:28:06.65 ID:hitB9rm00.net
- 初めてC#やりはじめたんですが、
while(1) がエラーになるくさいです。boolはboolとして独立してしか使えないみたいな抽象化になってるのでしょうか?
while(1==1) と書けば動作しましたが、きもいと思ったので良い書き方教えてください。
- 956 :デフォルトの名無しさん (アウアウ Sa76-juU9):2016/10/08(土) 00:33:59.09 ID:O/OBbGYaa.net
- >>955
ある程度自分で勉強した上でわからないところを質問するのでないと
10年掛かっても終わらないよw
https://msdn.microsoft.com/ja-jp/library/c8f5xwh7.aspx
- 957 :デフォルトの名無しさん (ワッチョイ 05a1-pu+C):2016/10/08(土) 00:34:32.56 ID:1Wan9RxM0.net
- むしろCの方が特殊
while (true)
- 958 :デフォルトの名無しさん (ワッチョイ 353c-lsIp):2016/10/08(土) 01:00:48.75 ID:hitB9rm00.net
- >>956-957
そうですね
ありがとう
- 959 :デフォルトの名無しさん (ワッチョイ f97b-lsIp):2016/10/08(土) 01:27:55.54 ID:KfBpvv2w0.net
- 新しい言語を覚える場合、他力本願なやりかたが許されるなら、
知ってる言語で作って、それを誰かに翻訳してもらったやつを一つづつ検索して覚えるのが早い。
問題は誰もそんなことしてくれない事だが。
- 960 :デフォルトの名無しさん (ワッチョイ 6b3c-lsIp):2016/10/08(土) 01:28:56.62 ID:CJmbrFm/0.net
- まぁ地道に頑張ります
- 961 :デフォルトの名無しさん (ワッチョイ c3c0-lsIp):2016/10/08(土) 01:48:19.29 ID:mt2d0mm+0.net
- 今時の言語で数値で真偽判定する奴なんてあるのかよ
- 962 :デフォルトの名無しさん (スフッ Sda8-xaNP):2016/10/08(土) 02:02:00.46 ID:eN8IA8WYd.net
- >>952
場合による
- 963 :デフォルトの名無しさん (ワッチョイ 1220-lsIp):2016/10/08(土) 08:45:19.03 ID:vL+1Z5yj0.net
- object o = new { test = 1 };
というコードから
testの値を取得したいのですが
どのようにすれば良いのでしょうか?
object o = new { test = 1 };
int a = (int)o.test;
とか悪あがきしてみたのですが
無理でした 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 964 :デフォルトの名無しさん (ワッチョイ 1030-VEeh):2016/10/08(土) 09:51:06.96 ID:i5kDCKwM0.net
- 全然確認せずに書くけどobjectじゃなくvarで受ければ取れません?
あとdynamicに代入するとか
- 965 :デフォルトの名無しさん (ワッチョイ 1220-lsIp):2016/10/08(土) 10:10:22.36 ID:vL+1Z5yj0.net
- >>964
var o = new { test = 1 };
int a = o.test;
で取れました。ありがとうございます
しかし、varとかダックタイピング?で
便利とは思いますが、本質を知らないので
いずれ理解不能なバグに陥りそうで
ちょっと不安に思いました
- 966 :デフォルトの名無しさん (ワッチョイ 1030-VEeh):2016/10/08(土) 10:21:10.63 ID:i5kDCKwM0.net
- なら使わなければいいさ
君の問題が解決できなくなっても俺には関係ないしー
- 967 :デフォルトの名無しさん (ブーイモ MM01-pu+C):2016/10/08(土) 10:26:33.50 ID:18NoRfw9M.net
- varはローカル変数でしか使えないからトラブルのもとになりようがない
- 968 :デフォルトの名無しさん (オッペケ Sr4d-/Z78):2016/10/08(土) 10:51:20.85 ID:3B0HEkdwr.net
- クラス名が無い、見えない
と考えるのが簡明。
- 969 :デフォルトの名無しさん (ワッチョイ 1220-lsIp):2016/10/08(土) 11:05:51.73 ID:vL+1Z5yj0.net
- >>966
自分の理解力に対する不安なので、その通りです
便利過ぎる機能の挙動をろくに知らずに頼ると
のちのち危ないかなという自戒の意味で
- 970 :デフォルトの名無しさん (スフッ Sda8-xaNP):2016/10/08(土) 11:09:44.82 ID:1QC8bxppd.net
- Visual Studioならvarの上にマウスカーソル持ってきたら実際の型が表示されるでしょ
- 971 :デフォルトの名無しさん (ワッチョイ f4ce-yd9a):2016/10/08(土) 11:27:47.42 ID:fiaM9vLl0.net
- pertialって便利だな
C++時代はまさにこれが欲しかったんだ
- 972 :デフォルトの名無しさん (アウアウ Sac5-Nuoi):2016/10/08(土) 11:36:24.37 ID:yHD53V8fa.net
- この前のpertial論争が始まるぞw
- 973 :デフォルトの名無しさん (ササクッテロ Sp4d-pu+C):2016/10/08(土) 11:37:00.58 ID:ayps/0ahp.net
- >>965
コード的にそのオブジェクトに意味があるなら面倒でもクラスか構造体をちゃんと名前を付けて宣言しとけ
意味がない単なる一時的な入れ物なのならそれが必要のないコードを書け
型が明らかじゃないからとりあえずobjectで受けるなど型の把握が困難なコードは禁止
型を把握でき明確な意図がある場合でも後日見た時にその意図がわかるとは限らないから必ずコメント書いとけ
varは型推論される型を自分ではっきり把握できていて右辺を見たとき誰が見ても型が明らかな場合はガンガン使って良し
コードを遡って探さないと型がわからないようならきちんと型指定して変数宣言しろ
dynamicはWebAPIなどから定義の曖昧なJSONを受けるなどの場合のみ使用可
静的型付け言語に不慣れならこれぐらいの縛りをかけて型を把握する習慣をつけるといいと思うよ
- 974 :デフォルトの名無しさん (ワッチョイ 1030-VEeh):2016/10/08(土) 11:40:55.64 ID:i5kDCKwM0.net
- 3行以上はキチガイって本当なんだよなあ
- 975 :デフォルトの名無しさん (ワッチョイ ab49-LThL):2016/10/08(土) 11:45:34.34 ID:CGodlZX10.net
- >>971
pertialって、何ぞ。スペルミス?
- 976 :デフォルトの名無しさん (ワッチョイ ab49-LThL):2016/10/08(土) 11:57:10.60 ID:CGodlZX10.net
- >>965
深く考えずにobject使ってる方が余程問題。
- 977 :デフォルトの名無しさん (ブーイモ MMa8-pu+C):2016/10/08(土) 12:07:12.25 ID:160QOg/GM.net
- >>973
ローカル変数の型はコンパイラが認識してればいいよ
ローカル変数の型を明示化しないと開発に支障が出るならオブジェクト志向がうまくできてないんだと思う
それかいちいち見返さないと把握できなくなるくらい長いメソッドや大量の変数を書いているとかね
- 978 :デフォルトの名無しさん (ワッチョイ f4ce-yd9a):2016/10/08(土) 12:10:40.49 ID:fiaM9vLl0.net
- partialか
googleさんが指摘してくれたのスルーしてしまった
仮組みだけしたのから何も考えずに着せ替え人形遊びができる辺り評価してる
- 979 :デフォルトの名無しさん (アウアウ Sa76-juU9):2016/10/08(土) 12:27:25.04 ID:2PQahk1ea.net
- partの派生語だって普通わかるでしょw
partって言葉も知らなかったのかなw
- 980 :デフォルトの名無しさん (ワッチョイ 21dc-xaNP):2016/10/08(土) 12:31:13.54 ID:vrZNWqvT0.net
- C++はメソッドの実装をどこにでも書けるからpartialなんかなくても遥かに柔軟に分割できるでしょ
最悪includeもあるから何でもアリ
C++分かってないだけじゃないのか
- 981 :デフォルトの名無しさん (ワッチョイ 1213-xaNP):2016/10/08(土) 12:39:19.14 ID:UAR+qVnl0.net
- >>980
私もそう思いました
- 982 :デフォルトの名無しさん (ワッチョイ 1220-lsIp):2016/10/08(土) 16:33:41.11 ID:vL+1Z5yj0.net
- >>976
利用したいメソッドの引数がobjectなので
この辺はやむなくなんです
- 983 :デフォルトの名無しさん (ワッチョイ f4ce-yd9a):2016/10/08(土) 17:20:37.33 ID:fiaM9vLl0.net
- パーシャルでまず思い浮かぶのはパーシャル冷凍だし
それとパートは全くの別物だし日本語英語舐めたらあかんよ?
- 984 :デフォルトの名無しさん (ワッチョイ f4ce-yd9a):2016/10/08(土) 17:21:55.16 ID:fiaM9vLl0.net
- >>980
C++は実装はどこでも書けるけど、クラス宣言は一緒の場所にかかなあかんでしょ
それよ
- 985 :デフォルトの名無しさん (ワッチョイ f4ce-yd9a):2016/10/08(土) 17:26:30.91 ID:fiaM9vLl0.net
- C++で同じように着せ替え人形やろうとしたら完成した物に手を加えるか別の手段になる
C#のpartialなら色んな着せ替え遊びを元を汚さずできるし、そのまま部分納品できる
- 986 :デフォルトの名無しさん (ワッチョイ 353c-xaNP):2016/10/08(土) 17:27:27.19 ID:4V/qdcpF0.net
- >>983
ばーか
- 987 :デフォルトの名無しさん (ワッチョイ 353c-yd9a):2016/10/08(土) 18:35:39.75 ID:vKGCFZZ10.net
- >>981
次スレ
- 988 :デフォルトの名無しさん (ワッチョイ e14a-UMne):2016/10/08(土) 19:59:41.17 ID:GFZJqN+P0.net
- webBrowserで表示したHP内ソースの下記のURLを自動でクリックしたいのですがどのように書けばよいでしょうか
<iframe src="URL"></iframe>
- 989 :デフォルトの名無しさん (ワッチョイ c37b-jLml):2016/10/08(土) 20:03:28.06 ID:hcv7mE9D0.net
- URLもiframeもクリックするものでは無い
遷移したいならそのiframeをDOMでたどってsrc属性取ってきてNavigateすればいいんじゃね?
- 990 :デフォルトの名無しさん (ワッチョイ 5cfd-n03B):2016/10/08(土) 20:31:03.30 ID:5ZaOsIWw0.net
- 広告を自動でクリックしたいのか
- 991 :デフォルトの名無しさん (アウアウ Sa76-juU9):2016/10/08(土) 21:11:14.28 ID:sdir2poUa.net
- >>983
よっ発展途上人
- 992 :デフォルトの名無しさん (ワッチョイ f97b-lsIp):2016/10/08(土) 21:26:38.44 ID:KfBpvv2w0.net
- 今からスレ立ててきてやるが、
テンプレの書き換えとか、Partのミスとか直す点はあるか?
30秒待つ
- 993 :デフォルトの名無しさん (ワッチョイ e14a-UMne):2016/10/08(土) 21:28:25.28 ID:GFZJqN+P0.net
- >>989
ありがとうございます。
<a href="URL" target="_blank">url</a>
なら
webBrowser1.Document.Links[0].InvokeMember("Click");
などでクリックできますが、難しいようですね
- 994 :デフォルトの名無しさん (ワッチョイ f97b-lsIp):2016/10/08(土) 21:33:56.26 ID:KfBpvv2w0.net
- http://echo.2ch.net/test/read.cgi/tech/1475930006/
- 995 :デフォルトの名無しさん (ワッチョイ fc5e-lsIp):2016/10/08(土) 21:46:09.45 ID:2+oa719n0.net
- >>994
スレたて乙
- 996 :デフォルトの名無しさん (ワッチョイ c63c-xaNP):2016/10/08(土) 22:01:26.17 ID:T/Z20i9z0.net
- >>983
> それとパートは全くの別物だし
ちょっとググれば恥をかかなくて済むのに w
partial
⇒ part「部分」+ -al《名詞・形容詞をつくる》
http://gogengo.me/words/1037
- 997 :デフォルトの名無しさん (ワッチョイ c63c-xaNP):2016/10/08(土) 22:41:35.53 ID:T/Z20i9z0.net
- >>963
もう解決してるみたいだけど
> object o = new { test = 1 };
> int a = (int)o.test;
なら
var a = o.GetType().GetProperty("test").GetValue(o);
でとれる
- 998 :デフォルトの名無しさん (ワッチョイ f97b-lsIp):2016/10/09(日) 04:08:54.25 ID:nhxFjm5j0.net
- うめとこか
- 999 :デフォルトの名無しさん (ワッチョイ fc5e-lsIp):2016/10/09(日) 09:02:00.80 ID:G17UML8q0.net
- 次スレも少し書き込んでくれ
こっちは埋めとく
- 1000 :デフォルトの名無しさん (ワッチョイ fc5e-lsIp):2016/10/09(日) 09:05:06.47 ID:G17UML8q0.net
- 埋め
- 1001 :デフォルトの名無しさん (ワッチョイ fc5e-lsIp):2016/10/09(日) 09:06:05.91 ID:G17UML8q0.net
- 次スレはこちら
ふらっと C#,C♯,C#(初心者用) Part125
http://echo.2ch.net/test/read.cgi/tech/1475930006/
総レス数 1001
308 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★