2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

ふらっと 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 ★