ふらっと C#,C♯,C#(初心者用) Part124at TECH
ふらっと C#,C♯,C#(初心者用) Part124 - 暇つぶし2ch2:デフォルトの名無しさん (ワッチョイ 45a1-xYo4)
16/08/12 21:29:50.68 +lUUEZcM0.net
>>1

3:デフォルトの名無しさん (ワッチョイ d1d6-yY6c)
16/08/12 22:04:36.14 Ojh78pHB0.net
>>1
乙ワッチョイ

4:デフォルトの名無しさん (ワッチョイ fc5e-yY6c)
16/08/12 22:07:07.72 S337aRPj0.net
>>1
スレ立て乙
質問からの派生の議論などは↓のスレで
ふらっと C#,C♯,C#(議論用)
スレリンク(tech板)

5:デフォルトの名無しさん (ワッチョイ 1030-VMjw)
16/08/12 23:04:07.24 PV0xO3Fw0.net
次スレもワッチョイで頼む

6:デフォルトの名無しさん (ワッチョイ 83c0-MTuc)
16/08/13 01:04:24.97 NM1cVEay0.net
ワッチョイスレの建て方
スレッドを立てるとき本文1行目に
!extend:checked:vvvvv:1000:512

7:デフォルトの名無しさん (ワッチョイ fca5-GBh+)
16/08/13 08:59:11.88 wiadwCFF0.net
わっちょいってよーわからんけど、NGワードに追加してフィルタできるんかな?

8:デフォルトの名無しさん (ワッチョイ fc72-3Vwo)
16/08/13 10:03:55.27 t9krr6Iz0.net
>>7
専ブラならNGネームとして使える
毎週木曜にリセットされる
1週間固定のIDみたいなもん

9:デフォルトの名無しさん (ワッチョイ 430d-GBh+)
16/08/13 10:22:21.33 KGx3mFs20.net
release buildしたexeをテキストエディタで見ると出力したパスが含まれてますよね
これって下手すると個人情報(ユーザー名)がバレちゃうと思うのですが、build先を変更する以外に対処の方法ってありますか?

10:デフォルトの名無しさん (ワッチョイ d1d6-yY6c)
16/08/13 10:32:07.90 YPszTijW0.net
ビルドの詳細設定 にある デバッグ情報 を none にすりゃ消えるけど、
ユーザー名がばれて何か不利益があるの?

11:デフォルトの名無しさん (ワッチョイ 430d-GBh+)
16/08/13 10:36:35.40 KGx3mFs20.net
>>10
ありがとうnoneにします
これはエラーの際の.tmp.mdmpの内容も同様にパスが出力されなくなりますか?(mdmpの場合はobjフォルダになってました)
不利益に関してはユーザー名に本名使っていると困るケースがあります

12:デフォルトの名無しさん (アウアウ Sa03-URBI)
16/08/13 11:13:46.94 2qglMHO5a.net
そっちを見直す方が合理的だと思うw

13:デフォルトの名無しさん (ワッチョイ 4d99-VMjw)
16/08/13 12:08:30.12 ScBSsBsG0.net
ユーザー名はaaaaになってるな
ドラクエならああああ

14:デフォルトの名無しさん (ブーイモ MM41-xYo4)
16/08/13 13:18:40.52 apKPt0NUM.net
LinuxでASP.NETを動かす時に使えるアセンブリはフルマネージドならVisualStudioで作ったものでもOKという認識でいいんでしょうか?

15:デフォルトの名無しさん (スッップ Sda8-3Vwo)
16/08/13 15:36:25.55 u+Yte28Rd.net
>>14
Coreね

16:デフォルトの名無しさん (ワッチョイ 393a-3Vwo)
16/08/13 15:50:01.07 +y8KzYA20.net
>>14
ASP.NET Core 用にプロジェクト作成したなら、その認識でOK
従来の ASP.NET 用アプリなら Core 用に作り直すべし

17:デフォルトの名無しさん (ワッチョイ fca5-GBh+)
16/08/13 17:15:43.81 wiadwCFF0.net
ひとりWikiっていうDelphi言語で作られたソフトのプラグイン用のDLLをC#で作りたいんですが、
URLリンク(www2u.biglobe.ne.jp)
URLリンク(www2u.biglobe.ne.jp)
C#で↓のように作ったDllの場合
public class Test {
 public String GetName() {
  return "test";
 }
}
呼び出し側からは通常「Test.GetName()」とすると思うのですが、
これを、クラス名無しで「GetName()」だけで呼び出せるようにするには
どんなコードを書いたり・設定を行えば良いのでしょうか?

18:デフォルトの名無しさん (ワッチョイ fca5-GBh+)
16/08/13 17:24:43.44 wiadwCFF0.net
>>8
良い忘れてました。
説明ありがとうございました!
>>17
調べた限りできなさそうなのですが、
見落としていたら悲しいのでよろしくお願いします。

19:デフォルトの名無しさん (アウアウ Sa03-URBI)
16/08/13 17:39:19.58 Aue4Ysh1a.net
>>8
へー全然しらなかったよ

20:デフォルトの名無しさん (ワッチョイ 397b-3Vwo)
16/08/13 17:46:13.76 AXJHpXDi0.net
>>18
うむ。COM作る方法以外知らないなぁ

21:デフォルトの名無しさん (ワッチョイ 837b-rTQB)
16/08/13 17:57:07.18 RxJCd1dL0.net
>>17
そもそもクラス名を書かないようにできれば呼び出せるとかそういうもんじゃない
ネイティブのエントリポイントが必要で、その形式のDLL作るのはC#/.NETでは基本無理
// 逆P/Invokeってのもないではないけど

22:デフォルトの名無しさん (ワッチョイ fca5-GBh+)
16/08/13 18:05:59.18 wiadwCFF0.net
>>20-21
成る程、C++で頑張ります。orz。
返答ありがとうございました。

23:デフォルトの名無しさん (ワッチョイ 1e81-3Vwo)
16/08/13 19:00:08.02 MGPJ1QKt0.net
>>17
C#にも名前空間ってのがある筈だが、使えなかった?

24:デフォルトの名無しさん (ワッチョイ fc5e-yY6c)
16/08/13 19:06:27.02 NfL6H+mm0.net
>>23
名前空間はusingで追加したら省略できるがclassは無理
DLLとして呼び出すんだろう?

25:デフォルトの名無しさん (ワッチョイ 9823-MTuc)
16/08/13 19:22:41.50 G6XKC6nQ0.net
>>24
using static ってのがC#6.0から新設されてのう
スタティッククラスなら、メソッドをC言語の関数のように呼び出すことが出来るようになった

26:デフォルトの名無しさん (ブーイモ MM41-xYo4)
16/08/13 19:26:32.98 apKPt0NUM.net
>>14,15
どうもです

27:デフォルトの名無しさん (アウアウ Sa03-URBI)
16/08/13 19:48:15.88 cRlyFivPa.net
質問者が聞いてることとズレまくってることを書いてる奴って何なのw

28:デフォルトの名無しさん (ワッチョイ fca5-GBh+)
16/08/13 20:02:01.48 wiadwCFF0.net
IDが違うのにわっちょいの方は同じってことは・・・どいうことだ・・・?

29:デフォルトの名無しさん (ワッチョイ d1d6-yY6c)
16/08/13 20:08:57.38 YPszTijW0.net
毎回IPが変わってるってことでしょ

30:デフォルトの名無しさん (ワッチョイ 753c-3Vwo)
16/08/13 21:01:42.66 JHq6wILq0.net
>>17
using

31:デフォルトの名無しさん (ワッチョイ 217b-MTuc)
16/08/13 21:01:51.06 W55xp8By0.net
>>1
スレ立て乙ー

32:デフォルトの名無しさん (ワッチョイ 753c-3Vwo)
16/08/13 21:07:48.17 SHDX20L70.net
>>24
これは恥ずかしい

33:デフォルトの名無しさん (ワッチョイ f4cb-3Vwo)
16/08/13 22:14:20.36 lSMY9ktW0.net
名前空間に頼った省略は問題しか起こさねーぞ
mediaのColorとdrawingのColorで存分に味わっただろ

34:デフォルトの名無しさん (ブーイモ MM79-xYo4)
16/08/15 23:29:19.43 Hp7eL4O0M.net
.NET Coreの参考書でオススメを教えてください
CLR via c#のCore版みたいな本があればベストです

35:デフォルトの名無しさん (ワッチョイ 61a6-MTuc)
16/08/15 23:45:32.74 h2UINGDt0.net
そんな本はありません

36:デフォルトの名無しさん (ワッチョイ 1030-VMjw)
16/08/15 23:49:58.31 hCHaq+GR0.net
そもそも1.0が出てまだ1ヶ月半よ
先走りすぎよ

37:デフォルトの名無しさん (ワッチョイ 753c-3Vwo)
16/08/16 00:44:20.03 l4SUSpSs0.net
>>34
とりあえず公式のチュートリアル全部やっとけ

38:デフォルトの名無しさん (ワッチョイ 8d4a-oUwT)
16/08/16 06:58:34.06 djSHB6JS0.net
>>16
>ASP.NET Core 用にプロジェクト作成したなら、
それはどうすればいいのさ?

39:デフォルトの名無しさん (ワッチョイ 393a-3Vwo)
16/08/16 09:59:36.48 O7qQUoku0.net
>>38
.NET Core の VS用拡張入れたら、
プロジェクトテンプレートに↓が出てくる
ASP.NET Core Web Application (.NET Core)

40:デフォルトの名無しさん (ワッチョイ 8d4a-oUwT)
16/08/16 10:40:44.52 djSHB6JS0.net
>>39
本当か!
試してみるわ
サンキュウ

41:デフォルトの名無しさん (ワッチョイ 8d4a-oUwT)
16/08/16 12:34:45.61 djSHB6JS0.net
試そうとしたんだがまだpreview版なの?
正式版が出てから試そうかな

42:デフォルトの名無しさん (ブーイモ MMa8-3Vwo)
16/08/16 13:29:18.38 207Q3q1vM.net
>>41
.NET Core SDK は正式版まだだね。
C#7 のリリースにかぶせるつもりかな。

43:デフォルトの名無しさん (ワッチョイ fcf0-3Vwo)
16/08/17 20:13:30.73 lxfDUTb20.net
プログラミングの知識一切ないです
unity勉強し初めたんですが、c♯が主流みたいでおもっいっきり壁にぶち当たりました。
こんなばかやろうでも理解出来るような、はじめからc♯について解説されているサイトがあれば教えてください。

44:デフォルトの名無しさん (ワッチョイ 4d09-VMjw)
16/08/17 20:35:55.81 HDxcYxzF0.net
こんどプログラミング教育始まるらしいよ
小学校で

45:デフォルトの名無しさん (ワッチョイ 45a1-xYo4)
16/08/17 20:36:48.42 R33z9cm40.net
C#を本来のC#として勉強すると却って遠回りになりかねない気はする
この辺でどうにかならんか?
URLリンク(qiita.com)

46:スッキリ厨 (ワッチョイ 677b-Vk+x)
16/08/18 01:28:49.83 R+8gecQh0.net
まずこの本で、みっちりとオブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊でお茶を濁す
猫でもわかるC#プログラミング 第2版、2010
C# ルールブック、2011、監修・電通国際情報サービス
本当のプロの話をするなら、この本が絶対条件だが、
Unity如きで、そこまでせんでもいい
Effective C# 4.0、2011
まず、スッキリを3回読んで、わからなければ、専門学校へ通え

47:デフォルトの名無しさん (ワッチョイ bb41-GOit)
16/08/18 07:19:12.56 Bii/kgVa0.net
初心者潰す気まんまんのおじさん怖いなぁ
おれも初心者でしかも同じくUnity使うために
C#勉強しはじめたんだけど
逆にプログラミングに目覚めて遠回り中。
まずC#って完全初心者向けの適切な本って
多分ないわけよ
だから「苦しんで覚えるC」で本当に基本的な部分を何となく掴んでから
英語できるなら
DotNetPerlっていうサイトだったり
Channel9の完全初心者向けの動画みたり
の方がいいと思う
完全初心者がオブジェクト志向を理解しようとしても
まずなんでオブジェクト志向がいいのかすらが
理解できないしなー
そろそろUnityに移行したいんだけどね

48:デフォルトの名無しさん (ブーイモ MM6f-wLiW)
16/08/18 07:31:19.55 XogBrdRsM.net
遠回りしていいならC言語からやるのが一番理解が深まると思う

49:デフォルトの名無しさん (ワッチョイ bb41-GOit)
16/08/18 07:56:42.00 Bii/kgVa0.net
CとC#はなんだかんだ違う言語だから
Cを深追いしようとすると大変だろうけど
枯れた言語だし教える側も熟練のおっさんだから
わかりやすいよ
C入門で検索して最初に出てくる
大学基礎教養レベルのサイトもオススメ

50:デフォルトの名無しさん (ワッチョイ db06-HNW7)
16/08/18 10:13:16.02 nHhMEyrj0.net
変数を箱に例えるサイトに当たってポインタで詰まる未来が見える

51:デフォルトの名無しさん (ワッチョイ 6f3c-HNW7)
16/08/18 18:05:51.97 zlGEfHsE0.net
staticおじさんになるんじゃないぞ

52:デフォルトの名無しさん (ワッチョイ 2bb3-HNW7)
16/08/18 18:11:36.14 VT/uRpp60.net
includeの下に書いたら、static不要になったよ

53:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/18 18:17:21.37 hZtSok7sd.net
ファイルを読み込んでそのデータを少し弄って全てファイルに上書き(1から作り直し)ってのはできるんだが、
ファイルを一部だけ更新みたいなことはできないのかな?アップデートみたいな
やろうとしてるのはcsvファイルと結果出力のテキストファイルを読み込んで、
双方比較してcsvが更新されているところを更新してテキストファイルに書き込み
全上書きは別にできるけども一部更新になるとどうすりゃええのかさっぱりや

54:デフォルトの名無しさん (ワッチョイ 2bb3-HNW7)
16/08/18 18:24:31.83 VT/uRpp60.net
stream.Seek(1000, SeekOrigin.Begin);
stream.Write(Data, 0, Data.Length);

55:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/18 18:33:40.38 Pxb0F6SP0.net
固定長レコードのファイルなら行けるが
可変長レコードのファイルだと変更位置から先は全て書き直しになる
これはどうしようもない

56:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/18 18:34:49.71 hZtSok7sd.net
>>55
固定長レコードってのは行数って思えばええかな?
新しい新規については書き足して問題ない
すでにあるデータの場合は更新したい

57:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/18 18:35:52.78 Qi6POpo5a.net
>>53
バイナリの並びを上書きすることはできるけど、可変長のデータの
置換挿入削除は単純なテキストファイルを前提にするなら当たり前だけど出来ないよね。

58:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/18 18:38:43.21 hZtSok7sd.net
>>57
やはり無理が生じているのか
出来ないんじゃなくてできなくて普通だったか

59:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/18 18:45:25.83 Qi6POpo5a.net
>>58
そりゃそうでしょw
配列じゃなく連結リストみたいなデータ構造を使わないと
自由にデータの挿入削除が出来ないのと同じことだよw

60:デフォルトの名無しさん (JP 0H67-8yFy)
16/08/18 18:50:03.39 iO4p2OMAH.net
レコード長を大きめにとって固定長として扱えばいい

61:デフォルトの名無しさん (ワッチョイ 1723-D2ET)
16/08/18 19:25:41.00 sh92haT+0.net
SQLiteかmdbでいいから、DB使うべき案件だと思うわ

62:デフォルトの名無しさん (ブーイモ MM6f-wLiW)
16/08/18 19:55:24.05 oJeK6BjxM.net
LocalDB便利

63:デフォルトの名無しさん (ワッチョイ cb51-6SVL)
16/08/18 20:06:29.74 ayLBcVQH0.net
>>50
箱の中に「右を見ろ」って書いた紙が入っているんじゃないのか

64:デフォルトの名無しさん (ワッチョイ 8f98-HNW7)
16/08/18 21:00:35.36 duLWqog20.net
>>63
箱に例えちゃうとアドレスの話するときメンドクサイ気がするんだよな
変数って箱そのものじゃなくて箱につけるラベルに例えた方がよくないか?

65:デフォルトの名無しさん (ワッチョイ d37b-eS8V)
16/08/18 21:05:32.88 GA+6RMKW0.net
そもそも喩えるのが良くない

66:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/18 21:14:36.14 hZtSok7sd.net
やはりアドバイス貰ったようにデータベース扱う案件だよな
出力がテキストファイルだと固定なんだけどその場合は間にデータベースを無理矢理挟むか諦めるかの2たくだよなぁ
挟むことによってデータの不整合起きる可能性あるし問題ばかりだ

67:デフォルトの名無しさん (アークセー Sx07-HNW7)
16/08/18 21:21:54.83 F2CvNJ0ux.net
ローカルにポスグレ最高

68:デフォルトの名無しさん (ワッチョイ ebdc-HNW7)
16/08/18 21:40:04.67 AN0ChobI0.net
ファイルベースでバッチ処理やるならインプレースでファイルを更新するという考え方は基本的にしない
出力は入力とは別のファイルに書き出して、完了後に入力ファイルが不要なら削除する
それがCOBOL時代からの伝統的なやり方で、元来ファイルってのはそういう使い方に最適化されてるんだよ

69:デフォルトの名無しさん (ワッチョイ f349-84cZ)
16/08/18 21:49:23.32 HWXrThBv0.net
>>56
1行当たりの文字数が固定である必要がある。

70:デフォルトの名無しさん (ワッチョイ 2f66-dPDm)
16/08/18 22:28:52.87 duueCbzU0.net
フォントに関する質問です。
フォントの閉じた線分の集まりPathFigureに右回りか左回りか
の情報はありますか?

71:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/18 23:02:21.83 hZtSok7sd.net
>>69
1行当たりの文字数が固定な必要性か…
それじゃあダメだな…可変だからなぁ

72:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/18 23:40:36.40 8xTrQ31Bd.net
テキストファイルの出力形式が変わってももとのプログラムの出力に関してを
変更せずともできるように作りたかったけどなかなか難しいな
結果の出力順序が変わったらそのまま受け入れるのが正しいのかな
ちなみに仮文字明らかに長い文字数で設定しておいて
そこを置き換えるってのも無理なのだろうか?
data1 : %xxxxxxxxxxxxxxxxxxxxxxxxxxx

data1 : aaa
みたいに。data1をキーにvalueを変えるイメージなんだが

73:デフォルトの名無しさん (ワッチョイ cb3a-HNW7)
16/08/18 23:54:59.76 N8DsMdm30.net
>>72
aaaの後ろをスペース埋めするなら良いんじゃない?
配列と同じで、byte数が減るなら隙間を詰める=後続のデータを書き換える必要がある

74:デフォルトの名無しさん (ワッチョイ ebdc-HNW7)
16/08/19 00:02:43.00 CvT4Ryaa0.net
>>72
柔軟にしたいなら今時CSVに拘らなくてもJSON Linesとかでよくね

75:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/19 01:31:38.22 BbnnsChy0.net
そろそろ鬱陶しい

76:デフォルトの名無しさん (ブーイモ MM6f-wLiW)
16/08/19 01:53:27.07 P4xUYp/0M.net
ファイル丸ごと更新はなんとなく嫌だというだけなら認識を変える
巨大なデータなのでファイル丸ごと更新は負荷がかかるならデータベース使う
理由はないけど諸々の都合により要件に組み込まれてしまっているならデータ構造を変える

77:デフォルトの名無しさん (ワッチョイ c7cb-HNW7)
16/08/19 01:54:28.69 /Tj1MJ5i0.net
設定ファイル全部スクリプトにすればどんな変更がきても対応できるよ
Luaとかpythonおすすめ

78:デフォルトの名無しさん (ワッチョイ c7cb-HNW7)
16/08/19 01:56:16.67 /Tj1MJ5i0.net
まあ、プログラマの単価が一番安いから呼び出して修正させたほうが早いんだけどね

79:デフォルトの名無しさん (JP 0H67-8yFy)
16/08/19 02:11:49.84 EQW6TlvjH.net
昔 Windows が レジストリを採用する前に
win.ini system.ini (プレーンテキスト) を使っててトラブルの嵐だった歴史を
逆行するのを見るような

80:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/19 06:24:06.22 Pc5pGuI4d.net
>>73 >>74 >>76 しがらみ的なもんで要件を変えられないみたいだから 諦めて全更新にしようとおもう 色々とありがとう



82:デフォルトの名無しさん (スフッ Sd6f-HNW7)
16/08/19 08:11:52.75 eNNweXTmd.net
ってか、seekしてその行頭にコメントマーク打って、最後の行に新規行足せばいいんでないの?
sortedだとかなんか並びに意味があるなら別だけど。

83:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/19 09:26:36.05 BbnnsChy0.net
要件が全て明らかにされていないのにクイズ大会続けるのはよせ

84:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/19 12:05:40.95 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を追加するよ!→文字列に挿入
この二つがしたい

85:デフォルトの名無しさん (ワッチョイ db8c-HNW7)
16/08/19 12:16:52.95 Y3hjpxPr0.net
>>83
言いたい事がいまいち分からん部分があるけど、
そういうListクラスが最初から.NETに無いか?

86:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/19 12:22:10.72 bujk9JqBd.net
>>84
こんなのあるの?
data1 : xxx
data2 : yyy
data3 : zzz
num1 : aaa
num2 : bbb
num3 : ccc
こんなデータのファイルをstring tmpに読み込んで、
tmpをわちゃわちゃして下の結果を出力できたらなんでもええかなってなってる

87:デフォルトの名無しさん (ワッチョイ db8c-HNW7)
16/08/19 12:42:12.39 Y3hjpxPr0.net
>>85
相変わらずはっきり分からんが、
Dictionaryじゃ駄目なのか?

88:デフォルトの名無しさん (ワッチョイ ebdc-HNW7)
16/08/19 12:48:21.70 CvT4Ryaa0.net
>>68の通り、マルチレコードファイルのバッチ処理でインプレース更新は普通やらない
それによりプログラ厶全体が入力ファイルを引数として出力ファイルを返す一つのステートレスな関数と見做せ、
テストやメンテナンス、再利用が容易になる
全部出力し直しが気持ち悪く感じるならその感覚の方を直した方がいい

89:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/19 13:10:38.57 BbnnsChy0.net
何が必須で何が必須でないのかはっきりしないから
お節介やきの虫が必須の範囲を超えてああしたらこうしたらって言い出す

90:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/19 13:18:10.21 BbnnsChy0.net
72と73でいいだろうがもう解決してる話なんだよ
アーキテクチャが美しいとか美しくないとか初心者は知ったことじゃねえんだ
これ以上したり顔でアドバイスする気になってんじゃねえ
黙ってろ

91:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/19 13:19:35.47 SITb9Fi/a.net
>>89
気付いてないみたいだけどお前さんが一番場違いなんだけどw
馬鹿じゃなかろうか。
黙ってろ?お前だろそれ

92:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/19 13:23:24.53 BbnnsChy0.net
>>90
例外を握り潰すさん久しぶり
相談室が住処のはずでしょ?
いつから初心者になったの?

93:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/19 13:28:37.17 BbnnsChy0.net
だいたい
>しがらみ的なもんで要件を変えられないみたいだから
>諦めて全更新にしようとおもう
>色々とありがとう
って本人が言ってるのになぜ続ける
要件は変えられないんだってよ
要件は変えられないんだってよ
JSONだの何だの言いだしてる奴は耳と頭ついてんのかクソムシが

94:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/19 13:31:27.48 SITb9Fi/a.net
なんだか知らないけど単に性格が異常なだけでなく
頭もオカシイことだけはよく分かるな。どんな悲惨な人生歩んでるかしらんが哀れだ。

95:デフォルトの名無しさん (ワッチョイ 6f23-D2ET)
16/08/19 13:33:06.60 Idf4jtm20.net
>>87
今回の件には適しているとは思えんが、DBが流行る前はISAMという手法でファイルの一部を書き換えるのは一般的だっただろ
何しろ当時のストレージは磁気テープだから、1レコード更新のたびに書き換えていたら話にならなかったからね

96:デフォルトの名無しさん (ワッチョイ db08-rmPz)
16/08/19 13:41:47.46 UpDv6oUT0.net
ちょっと落ち着け。
話を続けるかどうかはともかく、内容が千鳥足になってる感じはする。
どこに落とすのかは最初に決めてからアドバイスせえよ。

97:デフォルトの名無しさん (スップ Sdef-HNW7)
16/08/19 18:14:28.58 XvFK3fY5d.net
なあ 変数名をstring型に変換とかできる?
つかいどころは思い浮かばんけども
List<string> abc;
abc.add("ab");
abc.add("bc");
abc.add("abc");
ってあったとして
if("abc[1]"==abc[1]) ←の右辺が知りたい
出力
みたいなことがしてみたい
結果としては、bcが出てくると正解

98:デフォルトの名無しさん (ワッチョイ abd6-6SVL)
16/08/19 18:23:26.41 PifX2i8C0.net
変数名の取得なら
var hoge = nameof(abc);
でできるけど
>if("abc[1]"==abc[1]) ←の右辺が知りたい
これは何がしたいの?

99:デフォルトの名無しさん (スップ Sd6f-HNW7)
16/08/19 18:26:26.31 LLlOsx2Jd.net
>>97
少し略すけど
for(int i)
if("abc[1]"=abc[i])
こう考えてくれ

100:デフォルトの名無しさん (スップ Sdef-HNW7)
16/08/19 18:31:19.59 3wjXryfNd.net
abc[i]が変数名として一致したらと考えてください

101:デフォルトの名無しさん (ワッチョイ d37b-eS8V)
16/08/19 19:33:20.91 n7Ml93yQ0.net
その例だとif文自体いらんじゃん
もうちょっと必然性のある例が欲しいな

102:デフォルトの名無しさん (ワッチョイ bf02-lWG2)
16/08/19 20:28:45.34 KsVkCJ+y0.net
"abc[i]"という文字列が与えられた場合に、変数abc[i]の値を知りたいってことだろ
C# Evalあたりでググったらなんかヒントあるんじゃね

103:デフォルトの名無しさん (ワッチョイ fb3c-HNW7)
16/08/19 21:15:40.47 zfseOXRh0.net
すでにnameofがあげられてるだろが

104:デフォルトの名無しさん (ワッチョイ bf02-lWG2)
16/08/19 21:22:54.69 KsVkCJ+y0.net
>>102
変数名を取得したいならnamoeofでいいんだが
変数名が知りたいんじゃじゃくて、
変数名からその変数の値を知りたいんじゃないのかって話をしてるんだが

105:デフォルトの名無しさん (ワッチョイ dbcb-rmPz)
16/08/19 21:30:47.56 dXcload80.net
それなら変数名をstring型なんて言わないだろ

106:デフォルトの名無しさん (ブーイモ MMa7-wLiW)
16/08/19 22:08:07.52 vHFGN9rUM.net
出来たとしてなんに使うんだろ

107:デフォルトの名無しさん (ワッチョイ 6f23-D2ET)
16/08/19 23:34:59.79 Idf4jtm20.net
そもそものnameofの使いドコロもよく分からん

108:デフォルトの名無しさん (ワッチョイ d37b-eS8V)
16/08/19 23:39:20.67 n7Ml93yQ0.net
PropertyChangedイベントとか
ArgumentException系のメッセージ作る時とか

109:デフォルトの名無しさん (ワッチョイ cb3a-HNW7)
16/08/19 23:48:49.31 89EPNWEA0.net
nameofは単純だけど便利になった機能の代表格だね

110:デフォルトの名無しさん (ワッチョイ 6f23-D2ET)
16/08/20 00:28:02.21 1/Nu7lx90.net
>>107
PropertyChanged(()=>hoge);
なら、インテリセンスも効くしnameofより短いな
ArgumentExceptionのメッセージ程度なら、コピペで十分だし
仮に多少のスペルミスが有っても何とかなる
イマイチ利用価値が不明ですわ
まあ公式に作ったんだから何らかの理由があるだろうが、ちょっと興味あるね

111:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/20 00:36:06.93 R6ay4zez0.net
PropertyChangedイベントで使うのはそうなんだが
nameofを書くのはOnPropertyChangedの方だ

112:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/20 00:37:47.63 R6ay4zez0.net
あと、スペルミスがどーたらこーたらについては
文字列でなければリファクタリング機能で追従できることの方が主眼だろう

113:デフォルトの名無しさん (ワッチョイ 6f23-D2ET)
16/08/20 00:55:10.11 1/Nu7lx90.net
>>110
ごめん、OnPropertyChanged(()=>hoge);が正解だわ
Prismだと、引数にラムダ式入れると、インテリセンス利くんだよね

114:デフォルトの名無しさん (スプッッ Sdef-HNW7)
16/08/20 01:14:01.40 +FsAY6HRd.net
混乱させてすまんな
使い所なんて一切思い付いていなくて
ただ変数名を出力できれば何でも良かった
int a = 1;
Console.writeline(convert.tostring(a));
これだと1を表示させるが
aを出力させてみたかった
それを配列でもできるんかなと
a[1]とかの中身じゃなく、出力をa[1]にさせたかった

115:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/20 02:49:26.79 asaMbvjZa.net
まあ少なくともa[1]は変数名ではないよね。
変数名はあくまでもaでしょ。
コード上の文字列をそのまま文字列として取得するコード(何言ってるのか訳わからないけど)が
欲しいってことならそんなものは無意味だね。
ソースコード上の文字列はコンパイル時に確定してるんだからそんなの
直接文字列リテラル書くのと何も変わらないでしょ。

116:デフォルトの名無しさん (ワッチョイ 7bf6-HNW7)
16/08/20 03:07:29.96 1vm2r2jx0.net
nameofは地味だけど実装コストもリスクも低いから入れたんだろうね

117:デフォルトの名無しさん (ワッチョイ bfc6-9eTD)
16/08/20 06:44:18.97 pVJC6Sdr0.net
>>115
いやいや。
コンパイラで完結して>>112みたいなオーバーヘッドを生まないからだろ
リスク低いとか関係ない
コンパイラオプションのCallerMemberNameを補うものとして入れられた

118:デフォルトの名無しさん (スプッッ Sdef-HNW7)
16/08/20 08:32:34.40 N/12Rv8ld.net
ないか
なんかのテンプレ作ってそこには配列番号として入れよう…みたいなことをしようとしてたけど無理っぼいね
流れを一回考え直すわ

119:デフォルトの名無しさん (ワッチョイ ebdc-be1M)
16/08/20 11:52:22.97 B6Zc+FaI0.net
>>116
実装コストやリスクというのはコンパイラを実装する側にとっての話だと思うよ。
例えばasync/awaitみたいなクソ複雑な機能はどうしてもバグが入りやすいわけ。
コンパイラにバグがあるままリリースしてしまうと後で非常に直しづらくなってしまうから、
テストを無茶苦茶しっかりやらなきゃいけない。コストとリスクというのはそういうこと。
その点nameofは実装もテストも簡単。ラムダやLINQみたいに文法に大きく手を入れるわけでもない。

120:デフォルトの名無しさん (ワッチョイ 77c9-ECR0)
16/08/20 13:15:37.71 dVX2KuZX0.net
nameof(abc) + "[" + i.ToString() +"]"
$"{nameof(abc)}[{i}]"
いくらでもあるが

121:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/20 13:38:20.78 CiESb+Iia.net
どうでもいいけどToStringは不要だよw

122:デフォルトの名無しさん (ワッチョイ abd6-6SVL)
16/08/20 13:56:19.19 p35lV3XS0.net
>>120
VBスレに帰れ

123:デフォルトの名無しさん (ワッチョイ ebdc-HNW7)
16/08/20 14:01:32.90 B6Zc+FaI0.net
何でも明示的に書かないと気が済まない人なら>>119の下の方の{}内もToString省いちゃダメよ

124:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/20 14:17:45.67 CiESb+Iia.net
>>121
おいおいw
ToStringが不要な理屈もわからない程度の人間は人をVBer呼ばわりかよw

125:デフォルトの名無しさん (ワッチョイ abd6-6SVL)
16/08/20 15:00:56.27 p35lV3XS0.net
ああ左辺がstringだからか
すまんな

126:デフォルトの名無しさん (ワッチョイ 7bf6-HNW7)
16/08/20 15:21:43.57 1vm2r2jx0.net
>>116
リスクは文法的にもあって、よく考えずに機能追加するとその機能をなくすわけにはいかなくて将来的な機能追加の際に矛盾や手間が生じることがある
Roslynでタプルとかパターンマッチングで長いこと議論してるのもそれを防ぐため
一回実装を作ったけど正式版に入れず、パターンマッチング入れるときに一緒に再検討するわってなってるissueが結構ある

127:デフォルトの名無しさん (スプッッ Sdef-HNW7)
16/08/20 16:36:58.64 feu//gSLd.net
>>119
俺も結論これになったわ
>>114のレスを参考にして
ありがとう

128:デフォルトの名無しさん (ワッチョイ 77c9-ECR0)
16/08/20 18:37:53.94 dVX2KuZX0.net
+だと頭にstring以外が来た時にToStringつけることになって統一できないから中に書くときもToStringするようにしてるんだよね
別にJSみたいに""+ってやればいいんだろうけども

129:デフォルトの名無しさん (ブーイモ MM6f-wLiW)
16/08/20 18:43:34.78 jBkZ+arHM.net
+演算子で次元の異なる項を繋げるのが心地悪い派の人はToStringして書くよね

130:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/20 18:53:24.93 Z40WUM3ma.net
>>127
>+だと頭にstring以外が来た時にToStringつけることになって
ならないよw
URLリンク(msdn.microsoft.com)

131:デフォルトの名無しさん (ワッチョイ 77c9-ECR0)
16/08/20 20:23:12.46 dVX2KuZX0.net
>>129
マジだ
Javaと同じでなると思い込んでたし>>127もJavaのときからの癖だから完全に思い込みだった

132:デフォルトの名無しさん (ワッチョイ d37b-eS8V)
16/08/20 21:14:42.59 +QWhmcFO0.net
非文字列 + 非文字列 + 文字列
なら問題だし…
まあ今となってはもう$""で全部済ませてもいいような気がするけど

133:デフォルトの名無しさん (ワッチョイ c7cb-HNW7)
16/08/20 23:06:07.27 I8KEPvsp0.net
デバッグ版じゃ起きないストップ系のバグ追ってるときに
ソースファイル名とメソッド名と周辺の変数名とその値を出したいときはある

134:デフォルトの名無しさん (ワッチョイ 6f23-D2ET)
16/08/20 23:17:01.50 1/Nu7lx90.net
>>132
そういう時は、大体出力位置の近くで変数を使っているから
変数名をコピペしたほうが早いと思うわ

135:デフォルトの名無しさん (ワッチョイ c7cb-HNW7)
16/08/20 23:59:51.75 I8KEPvsp0.net
>>133
全くわからないって状況の作戦だから
機械的にすべてのメソッドで出力したいんだけど
そんな機能ないんだよね

136:デフォルトの名無しさん (ブーイモ MM6f-wLiW)
16/08/21 11:47:12.64 ks5UHXiEM.net
InとOutは気になるけど変数が気になる事は滅多にない
そのためだけに変な機能追加されるのはちょっと…

137:デフォルトの名無しさん (ワッチョイ db8c-HNW7)
16/08/21 12:08:15.53 2IjB3D5o0.net
>>132
ストップ系のバグってどういうやつ?
例外処理忘れとか?

138:デフォルトの名無しさん (ワッチョイ 675e-6SVL)
16/08/21 14:29:48.93 I3WTYBIb0.net
デバッグだと動くけどRelease版ビルドしてみたらエラーになったってことは何回かあるなw
try-catchで囲んでおけばcatchはしてくれるんだが
デバッガで見つけられないんで当たり付けて検証用コード入れて変数表示しながらチェックしていた

139:デフォルトの名無しさん (ワッチョイ 4f90-D2ET)
16/08/21 14:43:24.19 5a3gdZHH0.net
お前らVS のバージョン幾つつかってる?
俺VS2010 古すぎるかな。

140:デフォルトの名無しさん (ワッチョイ d3c0-D2ET)
16/08/21 14:51:22.35 paqk3e4j0.net
仕事で未だにVS2010縛りなのが辛い
async/await使いたいよ

141:デフォルトの名無しさん (ワッチョイ f349-84cZ)
16/08/21 14:58:57.44 vxp5N5TZ0.net
>>139
っ Microsoft.Bcl.Async

142:デフォルトの名無しさん (ワッチョイ 4f90-D2ET)
16/08/21 15:14:57.49 5a3gdZHH0.net
>>139 >>140
そんな製品でてたのか。

143:デフォルトの名無しさん (ワッチョイ cb3a-HNW7)
16/08/21 15:20:44.70 rj7c0P/h0.net
Windows Mobile の開発案件降ってきて、VS2008使ったわ。
System.Core.dll読まないと色々出来ないこと多いねぇ。

144:デフォルトの名無しさん (ワッチョイ db4a-lWGj)
16/08/21 16:46:04.27 LVvSDMx80.net
svhost.exeって何よ?

145:デフォルトの名無しさん (ワッチョイ 17ff-TwJM)
16/08/21 16:57:26.86 9HvdvFgU0.net
サービスを実行するためのもの

146:デフォルトの名無しさん (ワッチョイ 17ff-TwJM)
16/08/21 16:58:02.19


147:9HvdvFgU0.net



148:デフォルトの名無しさん (ワッチョイ db4a-lWGj)
16/08/21 17:00:12.29 LVvSDMx80.net
>>144
何のサービスよ?

149:デフォルトの名無しさん (ワッチョイ c7cb-HNW7)
16/08/21 17:05:31.11 VzoLMAMq0.net
>>137
そんな状況になるよね
MSのクラスとか落ちるときあるしね

150:デフォルトの名無しさん (ワッチョイ 17ff-TwJM)
16/08/21 17:25:15.99 9HvdvFgU0.net
>>146
いや、、、サービス全般
起動すると svchost.exe が個々のサービスを子プロセスとして起動する
サービスってデーモンのことね

151:デフォルトの名無しさん (ワッチョイ df73-D2ET)
16/08/21 18:01:19.42 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("通信不可");
    }

152:デフォルトの名無しさん (ワッチョイ db8c-HNW7)
16/08/21 18:28:31.13 2IjB3D5o0.net
>>149
何したいのか分からんが、普通にSerialPortクラスじゃだめなのか?

153:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/21 18:29:52.67 DgJ/lQO2a.net
>>149
その質問の仕方じゃ誰も回答してくれないと思うよw
せめて相手のデバイスが何かぐらい書いた方がいいんじゃないの?

154:デフォルトの名無しさん (ワッチョイ db4a-lWGj)
16/08/21 19:15:25.11 LVvSDMx80.net
>>148
そのsvhost.exeが有ると何がいいのさ?

155:デフォルトの名無しさん (ワッチョイ df73-D2ET)
16/08/21 19:22:08.02 6BM+Z7tN0.net
>>150>>151
今はD-sup9pin-D-sup9pinでPC同士を接続しているんですが
ノートPC側でD-sup9pinが無いのもあるのでD-sup9pin-D-sup9pinを
USB-USBケーブルでつないで同じことをできないかなと思って調べています。
ノート側は変換ケーブルを使えばいけるけど、今後の為やれないかなと思っているんですが。
SerialPortクラスでUSBケーブルでつないで同じことがやれるのかな?
自分の調べた範囲だとできそうにないので参考になるサイト教えてもらえると助かります

156:デフォルトの名無しさん (ワッチョイ 4b1e-HNW7)
16/08/21 19:59:57.12 zJoAoSIM0.net
>>153
相手側のデバイス(製品名)はなんなのん?
ベンダIDとデバイスIDでググると中身はMulti Flash Readerみたいだけど
URLリンク(pcidatabase.com)

157:デフォルトの名無しさん (ワッチョイ df73-D2ET)
16/08/21 20:18:17.66 6BM+Z7tN0.net
>>154
相手側は会社いかないとわからないんです。
↑のコードは家のPCのUSBハードディスク等を認識できるかためしていたのです。(何だったか覚えてない)
↓これはBUFFALOのUSBメモリです。(これであってるのかな)
UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x0EA0 0x2168)

158:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/21 20:32:30.78 Dux4CGuya.net
>>155
結局何がしたいのかよく分からないし、俺自身はLibUsbDotNetとやらを
使ったことがないんで間違ってるかもしれないが、LibUsbDotNetを使って
アクセスしたいデバイスのドライバは(infファイルを書き換える等の方法で)
WinUSBである必要があるんじゃないの?
ついでに言うと、それでLibUsbDotNetでアクセスできるようになったとしても、
当たり前だけど使うエンドポイントや通信プロトコルはデバイスごとの独自実装だから
そのデバイスの仕様が分からない限り何も出来ないと思うよ。

159:デフォルトの名無しさん (ワッチョイ df73-D2ET)
16/08/21 20:57:48.80 6BM+Z7tN0.net
>>156
LibUsbDotNetで認識しないと何も試せないなと思って聞いてみましたが
WinUSBとかもう少し調べてみます。ありがとうございました。

160:デフォルトの名無しさん (ワッチョイ ef9f-ODkp)
16/08/21 21:00:04.02 ZpLYPGtl0.net
USBプロトコルの規格外の事をやりたいんじゃないの?
ドライバ書けば出来るかもしれないしUSBホストコントローラを専用に
設計し直すとこから始めないといけないかもしれない
完全にC#の範疇ではない

161:デフォルトの名無しさん (ワッチョイ 4b1e-HNW7)
16/08/21 21:09:24.86 zJoAoSIM0.net
デバイスの開発元がUSB用のドライバ公開していそうなもんだけど
もしくは、取説に制御方法書いてあるとか

162:デフォルトの名無しさん (ワッチョイ df4a-NRoR)
16/08/21 21:10:37.11 szKxnr3V0.net
次のうち、当てはまるものを選べ?
・その機械は、RS-232CでPCと通信できる
・その機械は、USBでPCと通信できる(汎用ドライバ)
・その機械は、USBでPCと通信できる(専用ドライバ)
・PCに、RS-232Cポートがある
・PCに、RS-232Cポートがない
・PCに、「変換ケーブル(USB接続のRS-232Cポート)」をつなぐ

163:デフォルトの名無しさん (ワッチョイ f349-84cZ)
16/08/21 21:13:54.55 vxp5N5TZ0.net
>>153
そもそもPC⇔PCはどちらもUSBホストなのでケーブルだけで繋げないよ。

164:デフォルトの名無しさん (ワッチョイ df73-D2ET)
16/08/21 21:26:24.72 6BM+Z7tN0.net
>>159>>160
デバイスの開発元がUSB用のドライバは公開している
取説に制御方法書いていました。 内容はRS-232Cと同じ
・その機械は、RS-232CでPCと通信できる
・その機械は、USBでPCと通信できる(専用ドライバ)
・PCに、RS-232Cポートがある
・PCに、「変換ケーブル(USB接続のRS-232Cポート)」をつなぐ

RS-232Cポートはあるけど、
USBで制御できるみたいなのでやれる目処をつけたいなと思ってます。

165:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/21 21:39:24.39 Dux4CGuya.net
>>162
制御方法が書いてあるぐらいなら専用USBドライバと一緒にdllもついてるでしょw
なぜ素直にそれを使わずにLibUsbDotNetを使うの?
っていうか、どうしてそう頑なに具体的なデバイス名を明かしたくないの?w

166:デフォルトの名無しさん (ワッチョイ f349-84cZ)
16/08/21 22:14:34.26 vxp5N5TZ0.net
>>162
そのドライバーはUSBで繋いでも仮想のCOMポート(RS-232C)に見えるタイプだろ。
ドライバーをインストールして、(必要ならCOMポート番号を設定して)、
SerialPortクラスで今まで通り制御するだけだぞ。

167:デフォルトの名無しさん (ワッチョイ df73-D2ET)
16/08/21 22:37:25.58 6BM+Z7tN0.net
>>163>>164
取り説軽く見ただけなのでわからないけど、それなら何もしなくてよさそう確認してみます。
助かりましたありがとうございます。

168:デフォルトの名無しさん (ワッチョイ ab17-bKw2)
16/08/21 22:46:48.67 0CARPj6M0.net
(なんで >>161 がスルーされてるんだろう。直結でやるなら一番重要そうなことなのに。)

169:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/21 22:57:30.28 Dux4CGuya.net
>>166
実際はそういう製品も存在するよw
もちろん内部的には双方のホストからデバイスに見えるだけで、
USBの企画上ホスト対ホストがあるわけじゃないけどね。

170:デフォルトの名無しさん (ワッチョイ db8c-HNW7)
16/08/22 02:27:50.99 7w77Vh180.net
なんかもう、ものすごく馬鹿なのかと思う。

171:デフォルトの名無しさん (ワッチョイ bfeb-D2ET)
16/08/22 13:20:23.33 HM+rrgAV0.net
C#初心者はl、独習C#で始めるのが良い

172:デフォルトの名無しさん (アウアウ Sa47-wLiW)
16/08/23 10:04:09.31 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;
}
}
こんなイメージなんだけど

173:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/23 10:11:48.68 6POiz1Kha.net
>>170
コンストラクタじゃなくてファクトリーメソッドでいいでしょ

174:デフォルトの名無しさん (アウアウ Sa47-wLiW)
16/08/23 10:27:53.96 Pa9Uofyma.net
>>171
今思いついた。
class Shape {
public Init(StreamReader r){ return new Circle(r);}
}
s=new Shape().Init(r)
これでいいのか?

175:デフォルトの名無しさん (ワッチョイ 4fe1-HNW7)
16/08/23 10:45:02.64 3XGzHbAv0.net
>>172
それだとInitの呼び忘れがあるだろ
ファクトリーメソッドでググったか?

176:デフォルトの名無しさん (ワッチョイ ebdc-HNW7)
16/08/23 11:28:03.95 0RGf95YO0.net
>>172
名前が悪い
var s = new ShapeReader(reader).ReadShape();
これならおかしくはない
もしくは上の人も言ってるようにファクトリメソッドで
var s = Shape.FromStream(reader);

177:デフォルトの名無しさん (スププ Sd6f-HNW7)
16/08/23 11:57:38.54 ZcVGgUHod.net
みんな言ってるけど、Factoryがこれほど似合うパターンは無いな。
Shapeはabstruct classにして、
staticな関数として、
Shape createInstance(StreamReader s)
を作って、各子クラス返えす。
あとは要りそうな関数をabstructで定義しとけば便利じゃないかな。

178:デフォルトの名無しさん (ワッチョイ ebdc-HNW7)
16/08/23 12:23:20.88 0RGf95YO0.net
>>175
ちゃんとfactoryやるならfactory自体も抽象化した方がいいよ
Func<StreamReader, Shape>(もちろんインターフェイスでもいいけど)を外から受け取るようにする
そうすることで特定のファクトリメソッドがすべての派生クラスを知っている必要がなくなり、
派生クラスの追加や単体テスト時の差し替えが容易になる
パブリックなライブラリでstaticなファクトリメソッドが多いのは、
その性質上ありうる派生クラスが決まっていることが多いし利用者の利便性を優先しているため
アプリだと派生クラスがポコポコ増えるので考え方は違ってくる

179:デフォルトの名無しさん (スププ Sd6f-HNW7)
16/08/23 14:51:59.69 ZcVGgUHod.net
>>176
いやー、Shapeは流石に、既にかなり抽象的じゃないの?
逆に、Factoryが派生クラスを知ってる範囲で作るべきだとは思うけどな。こういうのは。
ShapeのcreateInstanceに、インスタンス生成関数のデリゲート渡せれば十分では?Javaでもあるまいし。

180:デフォルトの名無しさん (JP 0Ha7-wLiW)
16/08/23 15:00:53.30 +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の頭に共通部があって、その後個別のデータが来て、共通部も持ってないと困るんだけど、別途持つしかないかな。

181:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/23 15:29:21.18 1+adrTFO0.net
そもそもクラスと継承を半端に理解してるから
こんな下らないことになっているのではないか
URLリンク(ideone.com)

182:デフォルトの名無しさん (アウアウ Sa47-wLiW)
16/08/23 16:17:44.30 L2g0FUtna.net
>>179 thx
やっぱ共通部のメンバーは別途持って、子クラスに渡してあげるしかないのね。
ありがと

183:デフォルトの名無しさん (スププ Sd6f-HNW7)
16/08/23 16:56:14.55 ZcVGgUHod.net
>>180
別途持って?
あんな分かりやすいサンプル見てそういう感想なの?

184:デフォルトの名無しさん (ワッチョイ db98-rmPz)
16/08/23 17:40:46.64 zVNOW8Fb0.net
俺も下らないって煽ったし別にいいんでね

185:デフォルトの名無しさん (アウアウ Sa47-wLiW)
16/08/23 17:43:37.24 L2g0FUtna.net
>>181
public static Shape FromStream(Stream stream)
の中で、x,yを別途持ってて、子クラスにstreamと合わせて渡してあげるんだよね。
共通の初期化部分だけで1つのクラスかstructにして、親クラスのインスタンスで持つ。
一時的な親クラスを起こして、子クラスの中でコピー後に殺すとかgcに任すとコストかかるだろうし。

186:デフォルトの名無しさん (ワッチョイ db98-rmPz)
16/08/23 17:51:14.99 zVNOW8Fb0.net
初心者のうちからあまり神経質になってると、やる気が枯れてしまうぞ

187:デフォルトの名無しさん (スププ Sd6f-HNW7)
16/08/23 18:10:50.79 ZcVGgUHod.net
>>183
別途持ってるも何も、Circleの自分のプロパティだよ。継承してんだから。
子クラスのインスタンスで持ってるよ。
xとyは確かにコピー渡しだけど、プリミティブだからスタック乗って、そのまま居なくなるだろ。
理解しきってないのにコストとか考えない方がいいんでないの?

188:デフォルトの名無しさん (スププ Sd6f-HNW7)
16/08/23 18:15:21.17 ZcVGgUHod.net
base(x,y)は何者だと思ってるんだろうか。
ShapeはCircleではないが、CircleはShapeなんだから、キャストもへったくれも無いし、コピーする必要があるとかマジでわからん。
もしかしてIL上そんな表現になんの?
仮想関数ではなくて、プロトタイプの拡張みたいな真似してるのか?

189:デフォルトの名無しさん (アウアウ Sad7-ZKfe)
16/08/23 19:13:32.71 C9GDU1A7a.net
質問者そっちのけで盛り上がってまんな
いや別に批判してるわけじゃないよw

190:デフォルトの名無しさん (アウアウ Sa47-wLiW)
16/08/23 19:15:45.80 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();
}}

191:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/23 20:16:30.27 1+adrTFO0.net
もちろんShapeがShapeを受け取ってもいいのよ(コピーコンストラクタ)
URLリンク(ideone.com)

192:デフォルトの名無しさん (ワッチョイ 7730-rmPz)
16/08/23 20:18:16.40 1+adrTFO0.net
URLが古かった
URLリンク(ideone.com)

193:デフォルトの名無しさん (ワッチョイ f349-84cZ)
16/08/23 21:31:33.19 k64u2YsN0.net
Shapre.Shape(Stream)を作るなら、
元のMemoryStreamをType, X, Y, (r)って順番にして、Circle.Circle(Stream)も作ったら。

public Circle.Circle( Stream stream )
 : base( stream )
{
 this.r = stream.ReadByte();
}

194:デフォルトの名無しさん (アウアウ Sad7-HNW7)
16/08/23 21:50:38.15 ua608nkia.net
>>188
Shapeが行う初期化はShapeを継承したCircleがやってる。Circleのbase。
Circleでは、原点の初期化してないでしょ。
ただ、ベースクラスのコンストラクタを書いてあるだけ。
一時的に親を作るも何も、子は親そのものでもあるんだから、子のメソッド使えばいいじゃん。

195:デフォルトの名無しさん (ブーイモ MM6f-wLiW)
16/08/23 22:48:29.33 oA5rWJesM.net
シリアル化でいいじゃん

196:デフォルトの名無しさん (ワッチョイ 677b-Vk+x)
16/08/24 00:03:58.53 WeNRmuBC0.net
自製のデザインパターンかい?
「Effective C# 4.0、2011」を読みな

197:デフォルトの名無しさん (ワッチョイ cb3a-HNW7)
16/08/24 23:03:03.11 vDf01Mys0.net
>>194
書き込みに釣られてKindle版をポチってみた。
内容的には初歩の部分から書いてあって入門書の後に良さそう。
ちょっとくどい言い回しもあるけど、翻訳だから仕方ないか。

198:デフォルトの名無しさん (ワッチョイ df41-hMGK)
16/08/25 08:05:31.66 grn46Te30.net
あの翻訳はちょっとキツイっすわ

199:デフォルトの名無しさん (ワッチョイ 68d4-hifv)
16/08/25 14:18:42.12 FPU8kcQL0.net
ラムダ式とLinqの問題集みたいなのってありませんか?

200:デフォルトの名無しさん (ブーイモ MMcd-t1qj)
16/08/25 14:50:33.92 qCyyh5n+M.net
SQLの問題集でも買えよ
LINQに拘る必要は全く無い

201:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/25 15:06:32.40 dURn6wW4a.net
>>197
お題スレでリクエストしてみるとか。
ラムダは問題集になるほど内容ないよw

202:デフォルトの名無しさん (ワッチョイ 7999-FJIZ)
16/08/25 16:19:49.88 wSpRktRj0.net
LINQ芸みたいなのを望んでるのか?

203:デフォルトの名無しさん (ワッチョイ 68d4-hifv)
16/08/25 17:38:43.75 FPU8kcQL0.net
LINQ芸というのかはわかりませんが、プロらしい記述をできるようになりたいんです

204:デフォルトの名無しさん (ブーイモ MMcd-qQHP)
16/08/25 18:51:36.97 sgUV9GRkM.net
プロの書くLinqは流れるようにメソッドチェインして美しい
初心者が書くとやたらとネストして悲しい気持ちになる

205:デフォルトの名無しさん (ワッチョイ 7ddc-t1qj)
16/08/25 18:57:55.62 MmwMpV4v0.net
COBOL時代さながらのコピペだらけの一行一行コーディングの方がある意味プロっぽいと思うけどな
この国の標準的なスキルの現場では、LINQやラムダを活用した抽象度の高いコードはレビュワーが理解できなくて差し戻し

206:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/25 19:28:21.67 dURn6wW4a.net
またそれだけど、クエリ式は嫌いな人いるけどメソッド形式まで否定する人なんてまずいないでしょ?
ラムダ式まで否定するような奴はただの論外の無能だ。

207:デフォルトの名無しさん (ワッチョイ 2dd6-dmM4)
16/08/25 19:31:05.22 U0LBqP7Z0.net
いつものおじさんだな

208:デフォルトの名無しさん (ワッチョイ 745b-qQHP)
16/08/25 21:01:27.76 qCQm6gES0.net
ネストしてるlinqってどんなの?
逆に気になる。

209:デフォルトの名無しさん (アウアウ Sa45-KSG3)
16/08/25 21:06:37.97 /5BbJmEUa.net
bluetoothデバイス(マウスとか)の通信内容をコードで拾いたいのですが、
シリアル通信というものとの関係がわかりません。
初心者向けのサイトとかってないですか。

210:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/25 21:25:01.50 dURn6wW4a.net
>>207
初心者の手におえる話じゃないと思うw
まずBluetoothのHIDの実装から理解する必要があるんじゃないの?w

211:デフォルトの名無しさん (アウアウ Sa45-KSG3)
16/08/25 21:43:29.06 /5BbJmEUa.net
ありがとうございます。
BluetoothのHIDの実装からググってきます

212:デフォルトの名無しさん (ワッチョイ d51e-t1qj)
16/08/25 22:08:59.67 sWxqL1bB0.net
>>201
とりあえずこれ読んどき
URLリンク(www.amazon.co.jp)

213:デフォルトの名無しさん (オイコラミネオ MM34-t1qj)
16/08/27 10:14:43.52 duxgOUpsM.net
FirstOrDefaultで抽出してif文でnull判定するcodeを見るのが嫌

214:デフォルトの名無しさん (ワッチョイ 3d4a-pcMj)
16/08/27 10:19:43.26 QM5rEsPk0.net
DockPanelSuiteでDockingWindowを左側に1つだけ表示しているのですが
その同じ領域の下部にもう1つDockingWindowを表示して上下に2つ並べる場合は
SplitContainerが必要でしょうか?

215:デフォルトの名無しさん (ワッチョイ 7f49-MiIF)
16/08/27 12:05:47.58 AzZGGFlW0.net
>>211
どういうコードなら良いの?

216:デフォルトの名無しさん (スプッッ Sdc8-t1qj)
16/08/27 14:48:35.45 oHWB6vBcd.net
エラーハンドラみたいなの静的にを作っておいて
そこでエラーの文章とかを作成
そしてそれを集約例外に投げる
こんな感じの処理って普通?

217:デフォルトの名無しさん (ワッチョイ b94a-hifv)
16/08/27 17:44:06.89 ZCfqwLYC0.net
Win10のVS2015のC#で4.6.2の設定のConsoleプロジェクトで、
参照しているDLLの中に
1.0
2.0
3.5
4.0
などの古い環境でビルドしたDLLが混じっていても問題ないですか?

218:デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)
16/08/27 17:51:41.04 I2eF5JnT0.net
>>215
CLRのバージョンが替わると原則互換性は保証されない事になっている
URLリンク(msdn.microsoft.com)
4.6.2なら4.0以降のみOK

219:216 (ワッチョイ 9c5e-dmM4)
16/08/27 17:59:32.01 I2eF5JnT0.net
ああ、動作環境で全てのCLRが入っているのなら問題ないか。ごめんw

220:デフォルトの名無しさん (ワッチョイ b94a-hifv)
16/08/27 18:13:48.57 ZCfqwLYC0.net
>>217
Win10クリーンインストールしたので
たぶん .net 4.6 しか入っていません。

221:デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)
16/08/27 18:27:36.92 I2eF5JnT0.net
>>218
それなら1.0、2.0(3.5)相当のCLRをインストールするか4.0より前のものを参照するのを止めるか、どちらかにするのが無難
ついでに1.1以前は既にサポート外だから、いっそのこと現在の環境でDLLを全部ビルドしなおすのが一番無難かと

222:デフォルトの名無しさん (スップ Sdb8-t1qj)
16/08/28 13:03:52.77 KugZAG5ld.net
集約例外にenumの型を投げることってできな…い?
メインのとこにenumで指定した番号だけ投げてメインでswitchなりなんなり使用して分岐させたいのだが

223:デフォルトの名無しさん (ワッチョイ 7999-FJIZ)
16/08/28 13:13:26.86 h1JFz9az0.net
C#用語使って喋れ
何言ってるんだか分かんねえよ
もしくはideoneかdotnetfiddleに「こう書きたい」ってC#のソースコード貼れ

224:デフォルトの名無しさん (ワッチョイ 7999-FJIZ)
16/08/28 13:19:24.91 h1JFz9az0.net
そもそもExceptionの派生型以外スローできないって理解してる?
じゃあenumの型を投げるとは?

225:デフォルトの名無しさん (ワッチョイ 7f49-MiIF)
16/08/28 13:22:33.99 Nm6ziFTm0.net
Exceptionクラスを継承してEnumのフィールドを追加したクラスを作れば良いじゃん。

226:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/28 13:29:52.05 0rJ/vUpYa.net
それ以前に、そもそも個別の例外ごとに特別な処理が必要なら
一体何のために例外処理を集約するのかなっていう素朴な疑問が。
例外処理に明るいわけじゃないんで自信持って言えないけど、集約例外ってログを取りたいとか、
想定外の例外が起こった時に最低限ユーザーにメッセージぐらい表示したいとか、
その程度しか使い道ないと思うんだけど。

227:デフォルトの名無しさん (スップ Sdb8-t1qj)
16/08/28 13:31:40.36 aVh8+nVCd.net
エラー番号に応じてなんか表示させたいんでは

228:デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)
16/08/28 13:38:34.46 8HlIAn4s0.net
複数のメソッドで似たような例外処理があったときに(表示メッセージとか)同じ記述をするのと
可読性が良くなるから例外処理をクラスにしてまとめた事はあるな
Enumでどうしたいのか、どう必要なのか今一わからないけど
というわけで>>221の最後の行に賛成

229:デフォルトの名無しさん (ワッチョイ b98c-t1qj)
16/08/28 13:40:07.31 XHPIJZGd0.net
まさか、例外処理を通常の条件分岐処理のように使おうとしてないか?
例外処理は、あくまで「例外」のための処理だぞ。

230:デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)
16/08/28 13:44:41.11 8HlIAn4s0.net
>>227
例外処理はコスト高いのは大抵の人は分かっているだろうし
もしその目的なら面倒なだけで何の得にもならない設計だな

231:デフォルトの名無しさん (スップ Sdb8-t1qj)
16/08/28 13:50:38.91 wMiv4AuKd.net
なあ どっちが良いとかオススメあるかな
管理するクラスが、ファイルパスを展開してデータを取得するクラスの関数を呼び出して…って時に、
ただ引数としてパスを渡すのと、コンストラクタで変数を初期化するのと…
データをもう一度使いたいとか使いたくないとかって差だけかな?
class A {
データアクセス(filepath){
処理


class A {
string filepath;
A(string filepath){
this.filepath = filepath

データアクセス(){
処理



232:デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)
16/08/28 13:54:18.03 8HlIAn4s0.net
>>229
先の質問が片付いてからにしたら?
下のほうのメリットがまるでわからないけど

233:デフォルトの名無しさん (スップ Sdb8-t1qj)
16/08/28 13:57:32.87 wMiv4AuKd.net
>>230
すまんが先の質問ってなんだ
書き込んだのはじめてだ

234:デフォルトの名無しさん (ワッチョイ 753a-t1qj)
16/08/28 14:03:42.99 xWdxGs/J0.net
>>231
>>220 で弟さんが書き込んだ質問のことだね

235:デフォルトの名無しさん (ワッチョイ 7dc9-qQHP)
16/08/28 14:08:16.64 c2+tORve0.net
そのクラスがファイルパスを受け取ること前提の作りというか、必ず使うんだったらコンストラクタの引数にしちゃうね俺だったら

236:デフォルトの名無しさん (ワッチョイ 72c6-aGiZ)
16/08/28 14:48:01.49 ZPntcgGW0.net
スップ Sdb8-t1qj

237:デフォルトの名無しさん (ワッチョイ de3c-t1qj)
16/08/28 14:51:19.13 6k1z50dx0.net
>>229
その条件だけなら
> データをもう一度使いたいとか使いたくないとかって差だけかな?
でしょ

238:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/28 15:00:50.32 14dFRx50M.net
>>229
何処からでもなんの形式でも良いからデータをとってくるクラスだったらコンストラクタで渡す
使う側が指定したファイルを読み取るクラスならメソッド引数で渡す
コンストラクタ形式は依存性注入でよく使うパターン
メソッド引数形式は基本的なライブラリやユーティリティで使うパターン

239:デフォルトの名無しさん (ワッチョイ 7998-FJIZ)
16/08/28 15:16:45.15 sEQC69z60.net
ワッチョイおもろいな

240:デフォルトの名無しさん (スップ Sdc8-t1qj)
16/08/29 19:17:53.06 EoJ4HrxVd.net
ワッチョイワッチョイ

241:デフォルトの名無しさん (スプッッ Sdc8-t1qj)
16/08/29 19:18:28.76 Ygc5GEa7d.net
文字列を変数名にする方法ないかね

242:デフォルトの名無しさん (ワッチョイ 34cb-t1qj)
16/08/29 19:49:03.32 iTXMu3d10.net
>>229
上一択だろ
下はソースを読んでもらわないと動作が把握できない点がクソ
ドキュメント書いてみれば異質さに気づく
コンストラクタの引数に設定されたファイルを読み込む
とか、いやそれなんだよ
そもそも今設定されてるファイルパスなんだよ
ソースの行数が多くなってメソッドもたくさん増えると
ソースを上から下まで読んでみないと現在filepathにはいってるパスがわからない
可読性わるいんぬ

243:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/29 20:26:13.16 RwSm4WeTM.net
>>240
業務用アプリケーションとかだと頻繁に使うよ
読み込んだデータは欲しいけど具体的なパスは知りたくない場合
というかパスどころかそもそもそれがファイルかどうかも知りたくない
データベースかもしれないしWebAPIかもしれないけどデータをとってくるということだけ知っていて具体的なデータソースは煩わしいから考えたくない
そういう時は下のパターンを使う必要がある
上のパターンはそれがファイルである事と物理的なパスを知っていないと使えない

244:デフォルトの名無しさん (スプッッ Sdc8-t1qj)
16/08/29 20:37:54.26 v+VBJ2wid.net
あとの事考えたら、分割して下かなぁ。
ストリーム食わすとか。
とりあえず抽象型で「データアクセス」だけ宣言して、実装は別けると思う。

245:デフォルトの名無しさん (ワッチョイ 7ddc-mxSp)
16/08/29 20:41:48.75 HSXk2xhn0.net
>>241
StreamやIEnumerable<>渡すならわかるが、
>>240の下だと結局ファイルパスに依存してるだろ

246:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/29 20:53:22.10 p/LyuZWra.net
要件次第でしょ。
なんか訳の分からんこと言ってる人がいるけど、質問者(>>229)の2つのコードの違いは
データを読み出すクラスがデータのソースの情報を内部状態として持つかどうかでしょ。
まあ、パスを状態として持つとか普通はあんまりないよね。
設定ファイルなんか読む時に、パスが指定されないバージョンのメソッドが呼ばれた場�


247:№ヘ デフォルトのパスのファイルを読み出す、みたいなのはあると思うけど。



248:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/29 20:54:25.43 r/JXef9/M.net
>>243
最終的には物理パスに依存するけどAを使う側のクラスはそれを知らなくていい

249:デフォルトの名無しさん (スプッッ Sdc8-t1qj)
16/08/29 21:04:47.49 v+VBJ2wid.net
>>243
見るのは「データアクセス」だけなんだから、データアクセスだけ晒せば、そいつが何に依存してようが、
使う側はデータアクセスだけに依存するんじゃない?

250:デフォルトの名無しさん (ワッチョイ 34cb-t1qj)
16/08/29 21:29:30.67 iTXMu3d10.net
>>241
いや、やっぱねーよ
特殊ケースなんかいくつもないだろ
それはそんときとして別途くむとして
普段は自分の読み込むファイルパスの保持なんかやめろ
そもそも入力と出力が明示されていない処理を書く奴はだいっきらいだ
a.unko();
これでファイル読込してるの?
どうやってわかるの?
もうソース読ませるの前提じゃん

251:デフォルトの名無しさん (ワッチョイ b7c0-gQqU)
16/08/29 21:32:58.57 vgWDJ4LL0.net
なんかstaticメソッド好きそうやね

252:デフォルトの名無しさん (ワッチョイ de3c-t1qj)
16/08/29 21:42:51.97 IVf1OSSE0.net
>>245-246
インスタンスは誰が生成するんだよ...

253:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/29 21:43:18.04 p/LyuZWra.net
と言うより、質問者には悪いけど>>229はダメな初心者が
引数使わずにフィールドでデータを渡そうとする問題臭い。

254:デフォルトの名無しさん (ワッチョイ 7999-FJIZ)
16/08/29 22:01:58.17 shRUR2oh0.net
Aの役務が判明しないことには何とも言えんだろ
FileStreamクラスならファイル名を保持しててもそれ程おかしくはない
初心者的なGodクラスだったら略
例外enumの話といい質問するのが下手くそだな
わざと急所に言及するのを避けてるようにすら見える

255:デフォルトの名無しさん (ワッチョイ 2dd6-dmM4)
16/08/29 22:02:25.51 XJUgYycF0.net
毎度々々質問内容から離れて議論するよね
はっきり言って邪魔だから余所でやってくれよ

256:デフォルトの名無しさん (スプッッ Sdc8-t1qj)
16/08/29 22:06:06.10 v+VBJ2wid.net
>>249
好きなやつがインスタンス起こせば良くない?
それすら使う側には感知しなくて良い事だと思うけど。
入力と出力が明示されてないとかナンセンスじゃない?
ポリモーフィズムの欠片も無いじゃん。

257:デフォルトの名無しさん (ワッチョイ ddcb-t1qj)
16/08/29 22:47:13.84 hdD+Q5Ck0.net
>>253
入力と出力がわかるソースとわからないソースとどっちがいいの?

258:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/29 23:20:12.78 wLwWuZngM.net
>>247
実装側のソースを読ませる前提じゃなくてむしろ実装側のソースなんてどうでもいいよってスタンス
パスをメソッド引数で渡す場合相手のクラスがファイルアクセスクラスでありファイルが何処にあってといった細かい情報を意識しないとコードが書けない
コンストラクタで渡せばそんな細かい情報は気にしないでも利用者側のコードが書ける
利用者側はそれがファイルである事すら知らなくてもコードが書ける
>>249
リゾルバーかファクトリー
ルートでnewしてもいい
>>253
必要な入出力がわかればいい
それ以外は知らなくて済むなら知らない方がいい
全ての入出力を明示しなければならないとしたらあっという間に引数が泥団子になり管理不能になる

259:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/29 23:23:24.31 wLwWuZngM.net
もちろん>>236でも書いたように詳細まで入り込んで実装側のコードを書くとなった時はメソッドに引数を渡す形式の方が扱いやすい

260:デフォルトの名無しさん (ワッチョイ ddcb-t1qj)
16/08/29 23:27:16.43 hdD+Q5Ck0.net
>>255
は?
いや、バグってる処理明らかにお前んとこなんだけど?
見えないことにメリットすでにないよね?

261:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/29 23:34:58.10 wLwWuZngM.net
>>257
すまない
何を言いたいのかよくわからない

262:デフォルトの名無しさん (ワッチョイ ddcb-t1qj)
16/08/30 01:22:01.52 I1jO9oPr0.net
>>258
だからぁ、隠して意味があるのって
あくまで俺がそのライブラリのユーザでソースの中身を絶対みない保証がある時だけだよな?
同じソースつついてチーム開発やってるときに隠すコードに意味なんかないよね?
としたときにさ、お前のコードって処理が終わったときに結果として何が変わったのか分かり難いどころか
全くわからない
入力は何でそれに対して出力は何なの?
これが把握できないとソースが追えない
組んだお前はわかるんかもしんないけど
テストもやりにくいっていうか出来ない
入力と出力が明示されていないから

263:デフォルトの名無しさん (ブーイモ MM25-qQHP)
16/08/30 01:55:52.66 Pu1c7+TjM.net
>>259
・コンポーネントの疎結合と凝集性を維持するには実装詳細の隠蔽が常に不可欠でありメンテナであるかどうかは関係ない
・別チームの成果物の詳細を知らなければ自チームの開発ができないならばチームを分ける意味がない
・データ消費コンポーネントはデータの何が変わったのかを完全に知っているしデータアクセスコンポーネントは何が要求されて何を永続化するかを完全に知っている
ただしお互いの持つ知識を知る必要はなく契約のみを知っていれば良い
・もしもあるコンポーネントが別のコンポーネントの詳細を知らなければメンテできないとしたら実装への依存が発生している密結合な設計という事になる
・データアクセスコンポーネントの入力はなく出力はデータ消費コンポーネントの処理可能なデータであるという契約により明確である
・データ消費コンポーネントのソースを追うのにデータアクセスコンポーネントのソースを追う必要はない
逆も全く同様にソースを追う必要がない
・ファイルシステムに依存するうえにデータ消費コンポーネントとデータアクセスコンポーネントが密結合した設計の方が遥かにテストしにくい

264:デフォルトの名無しさん (アウアウ Sa47-1rH5)
16/08/30 02:26:30.97 BDB9i/HHa.net
何か訳のわからんこと言い合ってるけど、上にも書いたけどあくまでケースバイケースとはいえ、
データのソースをオブジェクトの状態として保持しなきゃならない場合なんてむしろレアケースだよw
これも繰り返しだけど、質問者は恐らく、ダメな初心者にありがちな
「引数を使わずにフィールドでデータを渡そうとする病気」の一種にかかってるだけw

265:デフォルトの名無しさん (ワッチョイ 750c-dmM4)
16/08/30 03:09:17.81 NRLFxuy60.net
.NET のクラスだと
StreamReader はコンストラクタで渡すタイプだね
メソッドで渡すタイプはなんだろ?

266:デフォルトの名無しさん (ワッチョイ 753a-t1qj)
16/08/30 04:04:48.87 DZ7Cy/vX0.net
System.IO.File.ReadLines(string) とか?
static なので、今回の例示とはちょい違うかもしれないけど。

267:デフォルトの名無しさん (ワッチョイ 7dc9-qQHP)
16/08/30 05:59:56.55 4ZBC1DOb0.net
>>263
それはコンストラクタで渡してるのと変わらない気がする

268:デフォルトの名無しさん (スップ Sdc8-t1qj)
16/08/30 06:12:16.45 Is5DsxGEd.net
dynamic json = jsonConvert.DeseriarizeObject<dynamic>(jsonString)
で受けたjson形式の中から任意の配列を取り出す方法ない?
json.netで出来ればやりたいんだが俺にはできなかった
dynamicJsonなどでもできるならその手解きしてほしいどうやって入れるのかさっぱりわからん
URLリンク(stackoverflow.com)
この辺を参考にしています
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
}
が返ってくるような処理

269:デフォルトの名無しさん (スップ Sdc8-t1qj)
16/08/30 06:29:25.55 Is5DsxGEd.net
こっちのが見やすいかも
URLリンク(www.newtonsoft.com)
ここも参考にして一つの要素は取ることはできたんだけども
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': 'URLリンク(james.newtonking.com)',
'categories': [ 'Json.NET', 13 'CodePlex' ] }

270:デフォルトの名無しさん (ワッチョイ 7ddc-t1qj)
16/08/30 06:44:08.93 vcGs2dWd0.net
JSONPath使えば

271:デフォルトの名無しさん (ワッチョイ 1e7b-FJIZ)
16/08/30 06:50:17.14 9vXZ0KL70.net
ありません
次の方

272:デフォルトの名無しさん (スップ Sdc8-t1qj)
16/08/30 06:54:25.29 Is5DsxGEd.net
>>267
jsonpathってjson.NETの機能?
調べても英語サイトしか出てこんくて読めんかった

273:デフォルトの名無しさん (ワッチョイ 7ddc-mxSp)
16/08/30 06:58:22.58 vcGs2dWd0.net
>>269
URLリンク(www.newtonsoft.com)
仕様はググればいくらでも出てくる
英語は必須だから諦めて読め

274:デフォルトの名無しさん (スップ Sdb8-t1qj)
16/08/30 07:17:13.44 Dvd/HI/Id.net
>>270
ふえええ…
"$.Manufacturers[?(@.Name == 'Acme Co')]"のNameとかを変数にできんのかねこれ
C#色々と便利だけども使いこなせてない俺からすると難解すぎる

275:デフォルトの名無しさん (ワッチョイ 7ddc-mxSp)
16/08/30 07:30:13.27 vcGs2dWd0.net
>>271
普通に $”$.Manufacturers[?(@.Name == ‘{変数名}’)]” (VS2015でないならString.Format)でいいでしょ
インジェクション脆弱性になる恐れがあるからWebから受け取った値を使って結果をWebに返すようなアプリならエスケープが必要

276:デフォルトの名無しさん (ワッチョイ ddcb-t1qj)
16/08/30 07:34:30.37 I1jO9oPr0.net
>>260
その思想なら入力も出力もないメソッド呼び出させるぐらいなら完全にバックグラウンドで動けよ
newした時点でほかのメソッド呼び出させる自体が不具合
それができないなら内部の処理を呼び出し側が把握していないとお前のメソッドは呼べない

277:デフォルトの名無しさん (ワッチョイ b7c0-gQqU)
16/08/30 10:20:54.70 +0POpDn70.net
>>262
.netのReader/Writer系はコンストラクタでファイルパスやStream渡すからそれが当たり前だと思ってた
スレの先生方はこの手のソースをどう書いているのか一度見てみたいところ

278:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/30 10:31:45.95 bAuY2Feoa.net
>>274
何か相変わらず訳わからんこと言ってるけど、それらがコンストラクタでストリームを取るのは
生きている間それを使いまわすつまり保持している必要があるからだw
何度も言ってるように、データソースのパスを保持する必要があるかどうかはケースバイケースだが、
普通はそんな必要はない。

279:デフォルトの名無しさん (ワッチョイ 753a-t1qj)
16/08/30 11:03:22.19 DZ7Cy/vX0.net
例示も無しに『普通は』とか言い切っちゃうのは残念やね。
自分でコードを書く場合は、ってことかな?

280:デフォルトの名無しさん (ワッチョイ 7a23-gQqU)
16/08/30 11:33:59.30 XXcHCJl60.net
抽象化は美しいけど大して役に立たないんだよな

281:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/30 11:45:15.42 bAuY2Feoa.net
>>276
何か頭悪そうだけど、そもそも質問者が「どちらがいいか」と聞いてる時点で、
答えは出てる。意味分かる?
少なくとも質問者の要件を満たすうえでパスを保持しておく必要はないってことだ。

282:デフォルトの名無しさん (オイコラミネオ MM34-t1qj)
16/08/30 12:09:36.71 fVgKPSWmM.net
>>277
それはシステムの組み方によるな。

283:デフォルトの名無しさん (アウアウ Sa01-hMGK)
16/08/30 13:19:43.33 Kix2dOMra.net
実務レベルで
そういうクラス分けについての判断は
やり始める時にある程度決めるのか
やってる途中で帰るのか
気になる
どっちもなんだろうけど

284:デフォルトの名無しさん (ワッチョイ 753a-t1qj)
16/08/30 13:21:38.04 DZ7Cy/vX0.net
>>278
>>229 のことなら、何回か同じパスを使うか、そうでないかは明示してないな。
あと、自分はFile.ReadLines()みたいなパターンを認めてるよ?

285:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/30 13:42:31.90 bAuY2Feoa.net
>>281
だから、同じファイルを少しずつ読む必要があるとかランダムアクセスする必要があるなら、
>>229の最初のコードは最初から選択肢にならないよね。
もちろんやってできないことはないけど普通はしないよね。
もちろん質問者が普通じゃない可能性もあるわけだけど、その可能性は無視すれば
質問者の要件は自ずとわかるでしょ。

286:デフォルトの名無しさん (ワッチョイ 7cd4-hifv)
16/08/30 14:34:52.62 /OGdet/T0.net
受けるわけじゃないけど試験 70-483Programming in C#の試験項目を見てたんだけどさ
URLリンク(www.microsoft.com)
項目を見ると売れ筋の入門書って試験範囲の2割ぐらいしかカバーしてないのね
これみんな分かるもんなの?

287:デフォルトの名無しさん (ワッチョイ 79d9-FJIZ)
16/08/30 17:16:57.96 qsOxDjRb0.net
>>271
ところでお前の息子二人が書き込んだ質問で荒れてんだけどどう思う?
お前っていつもそういう態度取ってんの?

288:デフォルトの名無しさん (ワッチョイ 79d9-FJIZ)
16/08/30 17:18:44.03 qsOxDjRb0.net
そういう態度ってのは、質問に対してリアクションが帰っているのにスルーして違う質問を始めるって舐めた態度のことな
せめて質問を取り下げろ、カス

289:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/30 17:19:49.06 bAuY2Feoa.net
変なの来たなw

290:デフォルトの名無しさん (ワッチョイ 7cd4-hifv)
16/08/30 18:29:06.24 /OGdet/T0.net
高卒フリーターだらけの世の中になってから、にちゃんは統合失調症だらけだよ
こんなの驚くことじゃありません

291:デフォルトの名無しさん (ワッチョイ 7999-4yR4)
16/08/30 18:50:14.16 34wg0DNp0.net
スップ Sdc8-t1qj

292:デフォルトの名無しさん (スプッッ Sdc8-t1qj)
16/08/30 19:38:27.94 h7mqDNBAd.net
>>272
サンクスありがとう
一応予定のは取れたよ

293:デフォルトの名無しさん (ワッチョイ 7939-4yR4)
16/08/30 19:43:53.59 q9MYe/9f0.net
質問してたのはスプッ Sdc8-t1qjだろ
なりすましは止めとけ

294:デフォルトの名無しさん (アウアウ Sa01-FiSL)
16/08/30 20:22:52.29 tVyn06Qka.net
つーかさー
C#の入門書でまともな本なくね?
マジでブチ切れそう
日本語不自由なの多すぎ

295:デフォルトの名無しさん (ワッチョイ 7c7b-aGiZ)
16/08/30 20:29:23.95 KZWXOdr20.net
プログラミング言語なんて習うより慣れよ
手段であって目的ではないんだよ

296:デフォルトの名無しさん (ワッチョイ 7141-FiSL)
16/08/30 20:35:25.17 n1CqpYHX0.net
自分なりに調べてなんとか慣れつつあるとはいえ
ちゃんとした書籍を持ってたいなと思ってるんだけど
じゃあこのまま突っ走るわい

297:デフォルトの名無しさん (ワッチョイ ddcb-t1qj)
16/08/30 21:02:55.93 I1jO9oPr0.net
>>292
言語のマイナー機能をあえて使う奴って設計ヘタクソだよな

298:デフォルトの名無しさん (ワッチョイ 753a-t1qj)
16/08/30 21:21:28.20 DZ7Cy/vX0.net
implicitとかさぞかし意味が有るのだろうと思って書いてみたのを思い出す……

299:デフォルトの名無しさん (ワッチョイ 9c5e-dmM4)
16/08/30 21:36:26.37 EHChjX9a0.net
>>294
初心者のスレだし、そういうのが趣味の人もいるかもしれないw
コード書く前に手法であれこれ悩んでいるの見るとイラッとするけど

300:デフォルトの名無しさん
16/08/30 22:06:14.19 4DCNbP1j6
>>275
初心者相手に突っ込みいれるのも野暮だけど普通は使うよ
モダンな設計手法では当たり前に行う事だし、設計論から離れても遅延読み込みで使う

301:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/30 21:53:29.11 Q9l6tJm0a.net
>>295
暗黙変換は普通に使いまくるよw

302:デフォルトの名無しさん (ワッチョイ 2dd6-dmM4)
16/08/30 22:05:54.75 FkhIllLo0.net
変態的なライブラリを作る時にはお世話になる

303:デフォルトの名無しさん (ワッチョイ 753a-t1qj)
16/08/30 22:42:29.99 DZ7Cy/vX0.net
>>299
常用しない機能をたまに書くと楽しいよね

304:デフォルトの名無しさん (ワッチョイ 7679-t1qj)
16/08/31 10:50:08.29 EN4ZQTF90.net
>>291
C#自体は最初は覚える事が多いけどそんなに難しい言語じゃない
C#の入門書にまともなものがないと書いているけどそれはお前がまだ入門書も読めない位知識が無いってこと
まずどっかで軽くオブジェクト指向勉強してこい
話しはそれからだ

305:デフォルトの名無しさん (ワッチョイ 7cd4-oLrM)
16/08/31 11:40:54.21 x8Mu4zVi0.net
インターフェイスについて教えてください
インターフェイスはよくインスタンス化できないと説明されていますが
IEnumerable<string> myString = new{

306:デフォルトの名無しさん (ワッチョイ 7cd4-oLrM)
16/08/31 11:44:31.17 x8Mu4zVi0.net
ごめんなさい、サニタイジングされているのか途中で書き込みが切られてしまいました
インターフェイスはよくインスタンス化できないと説明されていますが
IEnumerable myString = new{(省略しないと書き込めない・・・・!?)
このような宣言を見ます
あたかもインターフェイスをインスタンス化しているかのように見えてしまいますが、一体どういうことが起きているのか教えていただけないでしょうか
よろしくお願いします

307:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/31 11:52:41.19 97WvllZya.net
>>303
そのレベルならこんなところで質問するより真面目に入門書でも読んだ方がいいと思うw
本じゃなくてもC#のチュートリアルなんてweb上にもいくらでもあるよね

308:デフォルトの名無しさん (ワッチョイ 7cd4-oLrM)
16/08/31 12:06:50.43 x8Mu4zVi0.net
本を読んでいてよくわからないんです
よろしくお願いします

309:デフォルトの名無しさん (ワッチョイ 3d94-12yH)
16/08/31 12:34:47.53 lVEp965D0.net
そのインターフェースを持ったクラスをインスタンス化してる

310:デフォルトの名無しさん (ワッチョイ 725b-Ptq2)
16/08/31 12:51:18.96 sHLzsEsl0.net
実態を抽象的(インターフェース)に扱っている。
インターフェースは実装をもたないが、
実装(オブジェクト)はインターフェースを持つことができる。
結局は、インターフェースを介して、実態を扱っている。

311:デフォルトの名無しさん (ワッチョイ 0448-40Y4)
16/08/31 13:17:05.93 /t7yyFm+0.net
IEnumerableはすごく良く使うのでMSDNを熟読すべし

312:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/31 13:58:18.12 97WvllZya.net
それで通じるならこんな質問はしないと思うよw

313:デフォルトの名無しさん (JP 0Hcd-MmRS)
16/08/31 14:29:09.86 mqymnS7ZH.net
複雑すぎる実体に対して最小限の情報(の窓口)を求めている
タクシーに乗る時にどこの会社くらいは気にするけど
運転手が結婚しているかとか余分な情報はいらない

314:デフォルトの名無しさん (ワッチョイ 68ee-Knxq)
16/08/31 14:58:51.05 6xfbGy8w0.net
クラスとメソッドってなんですか?

315:デフォルトの名無しさん (シャチーク 0C34-RDkh)
16/08/31 19:00:04.92 NdFTvm0OC.net
string[] input;
string[] Name;
~~
Name = new input;
やりたいことは、inputの値渡しなのですが、こういうことはできないの~~?

316:デフォルトの名無しさん (ワッチョイ b77b-Ne3O)
16/08/31 19:23:40.95 TqtXovwc0.net
配列をコピーしたいってこと?
ならCloneメソッドとか シャローコピーだけど

317:デフォルトの名無しさん (シャチーク 0C34-RDkh)
16/08/31 19:38:21.91 NdFTvm0OC.net
>>313 ありがとうございます!

318:デフォルトの名無しさん (アウアウ Sa01-FiSL)
16/08/31 20:09:09.62 HmEUyXpka.net
普通にリモコンでいいんじゃないの?
電化製品をリモコン使って動かせるけど
内部の電圧だったりチップを直接は動かせないわけで
限定された操作を使用者に提示するというか

319:デフォルトの名無しさん (アウアウ Sa45-1rH5)
16/08/31 20:16:51.60 97WvllZya.net
>>315
それは普通隠蔽とかカプセル化とかって言うんだよね。
普通はそれをインターフェイスが提供する機能とは言わないよね。

320:デフォルトの名無しさん (ドコグロ MM1c-Ptq2)
16/08/31 20:24:53.36 F//NfMCdM.net
>>313
シャローコピーを使う場面ってどこですか?
変数が同じ参照持ってるなら、同じ実態扱うのとほぼ変わらないような。

321:デフォルトの名無しさん (ブーイモ MMb8-qQHP)
16/08/31 22:41:12.43 4jzGw3cJM.net
>>317
ディープコピーを実装する時とか
少しだけ変更した新しい値オブジェクトが欲しい時とか
並行処理の排他処理とか

322:デフォルトの名無しさん (ワッチョイ f3dc-OoDU)
16/09/01 00:05:55.99 Xz8sejsg0.net
string[]ならシャローコピーでいいだろ

323:デフォルトの名無しさん (ワッチョイ 777b-UYCy)
16/09/01 00:25:50.14 nGqVI4Wr0.net
基本的に、C/C++以外の言語は、参照のコピー(シャローコピー)になる
それでは困る場合だけ、Cloneやディープコピーを考えればよい
ディープコピーでは、オブジェクト内にオブジェクトがあって、
その中にもオブジェクトがあって、再帰的に何階層まで、ディープコピーするかも考える

324:デフォルトの名無しさん (ササクッテロ Sp8f-yYxc)
16/09/01 06:32:14.88 50/1x8Mup.net
system.timers.timer
について質問です
system.timers.timerを使って一定時間後にダイアログを表示するプログラムを作りました
しかしダイアログが表示されるのは一定時間+10~20秒です
ちゃんと一定時間後にダイアログを表示させたいのですどうすればいいでしょうか?

325:デフォルトの名無しさん (ワッチョイ 931e-RETc)
16/09/01 07:41:52.97 lrlraAVg0.net
最小限の再現コード出さずになぞなぞするのやめてくれぇ?

326:デフォルトの名無しさん (ササクッテロ Sp8f-yYxc)
16/09/01 08:01:06.85 50/1x8Mup.net
>>322
他に同様な症状に陥った方はおりませんかね?
もしくは僕だけの問題なのでしょうか?

327:デフォルトの名無しさん (ドコグロ MM1f-TXi9)
16/09/01 08:22:02.35 rDaq2EciM.net
>>323
私もよくダイアログが出ずに、プログラムが落ちてしまいます。
心当たりあれば教えて欲しいです。

328:デフォルトの名無しさん (ササクッテロ Sp8f-iG4w)
16/09/01 08:27:09.11 Uci5d0kTp.net
あれなんなんだろうな

329:デフォルトの名無しさん (ワッチョイ 6730-l4Vs)
16/09/01 09:49:34.21 tRE5XnQ90.net
思った通りに動くのではなく
書いた通りに動くって話でせう
タイマーの件は何となく想像がつくが
俺もなぞなぞはしたくない

330:デフォルトの名無しさん (アウアウ Sacf-NO8Q)
16/09/01 16:20:07.57 L3a4bYLCa.net
文字列にサロゲートペアが含まれる場合でも正確な文字数を返すメソッドって
やっぱりBCLには存在しない?

331:デフォルトの名無しさん (ワッチョイ 9319-Z7wn)
16/09/01 16:22:19.24 aazltn1Z0.net
StringInfo

332:デフォルトの名無しさん (アウアウ Sacf-NO8Q)
16/09/01 16:50:51.41 L3a4bYLCa.net
>>328
あーなるほど、こんなのあったのか。
しかし何だか存在意義のよくわからんクラスだな。
何でStringに実装されてないんだろう。

333:デフォルトの名無しさん (ササクッテロ Sp8f-yYxc)
16/09/01 17:53:52.76 Yvhf9dDVp.net
タイマーの剣ですけど
ソース出すんで待っててください!

334:デフォルトの名無しさん (アウアウ Sacf-NO8Q)
16/09/01 18:01:48.26 L3a4bYLCa.net
今脳内で剣の舞が再生された件

335:デフォルトの名無しさん (ワッチョイ 8fbd-vSVO)
16/09/01 18:33:18.37 pyrbLu4p0.net
URLリンク(ideone.com)

336:デフォルトの名無しさん (ワッチョイ 931e-RETc)
16/09/01 19:57:36.99 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回繰り返す間に誤差が蓄積されてズレが生じている

337:デフォルトの名無しさん (ワッチョイ 037b-wh/5)
16/09/02 16:48:49.83 DQjRhVvF0.net
表示させたいデータのレコードを絞り込んでdataGridViewに表示させるには、BindingSourceのFilterプロパティを使うとできるみたいですが、
このサイト URLリンク(www.ipentec.com)
「BindingSourceコンポーネントについてはこちらの記事を参照してください。」へ進み、
「DataSetを作成します。手順はこちらの記事を参照してください。」にある「データ接続の追加手順はこちらの記事を参照してください。」が404で見るとこができなくて設定のやり方がわかりません。
データ接続の追加手順があるサイトか手順を教えてくれませんか?

338:デフォルトの名無しさん (ワッチョイ 931e-RETc)
16/09/02 20:47:16.80 UQkwlVyK0.net
>>334
リンク切れのページはこれかな?
URLリンク(www.ipentec.com)

339:デフォルトの名無しさん (スプッッ Sd5f-RETc)
16/09/03 09:43:53.98 qpsImhv/d.net
コーディングのマイルールとかあるやつおる?

340:デフォルトの名無しさん (ワッチョイ 6730-l4Vs)
16/09/03 10:00:54.78 +PRxNCnW0.net
その話C#に何の関係が
spmodeだから警戒しとくよ

341:デフォルトの名無しさん (ワッチョイ 0351-10NS)
16/09/03 10:01:55.70 vFj9bHn70.net
改行可能なtextboxでの入力時にCtrl+Enterを押すとボタンが押されたときと同じ挙動をするようにしました
ボタンを押すとtextbox内の文字列は消えるのですがボタンのイベントが終わった後textbox内に改行だけが残ってしまいます
これを回避する方法はないのでしょうか?

342:デフォルトの名無しさん (スプッッ Sd5f-RETc)
16/09/03 10:05:25.65 FcGf2P40d.net
>>337
よくよく考えたら関係なかったわすまんな
コードレビューする度にしてくれる人の色合いが違いすぎて困ってて
何かしら注意点統一しようかと思ってた

343:デフォルトの名無しさん (ワッチョイ 33d6-IPsc)
16/09/03 10:14:00.19 T8XOHxVQ0.net
>>338
ソースも何もないのにどう助言しろと?

344:デフォルトの名無しさん (ワッチョイ 775e-IPsc)
16/09/03 10:37:28.92 YP4M8m0R0.net
>>338
単純にEnterが入力されているだけだろ?
イベントを入れたときに元の機能(入力)が無視される場合とそうでない場合があるみたいだから
イベントが呼ばれた後に本来の機能のEnter入力がされている
試してないけど通常のキー入力イベントで反応させる以上回避できない気がする

345:デフォルトの名無しさん (ワッチョイ 7323-wh/5)
16/09/03 10:43:14.24 plPbA0im0.net
>>338
BeginInvoke使ったらどう?

346:デフォルトの名無しさん (ワッチョイ 0351-wh/5)
16/09/03 10:46:39.70 vFj9bHn70.net
>>340
すみません最小構成にしました
URLリンク(ideone.com)
>>341
Enterの捕捉はkeyPressイベントでおこなってみているのですがこのままではtextboxに改行が入れられません
また、このように書いても改行が入ることは防げませんでした

347:デフォルトの名無しさん (ワッチョイ 6730-l4Vs)
16/09/03 10:50:44.58 +PRxNCnW0.net
AcceptReturn(だったかな?)でお茶を濁すとか

348:デフォルトの名無しさん (ワッチョイ 6730-l4Vs)
16/09/03 10:56:04.10 +PRxNCnW0.net
Control.WndProcでフックしても行けるかな

349:デフォルトの名無しさん (ワッチョイ 0351-wh/5)
16/09/03 10:56:06.08 vFj9bHn70.net
>>342
BeginInvoleを使う場合どこに入れればいいのでしょう?
>>344
このようにしても改行は挿入されました
URLリンク(ideone.com)

350:デフォルトの名無しさん (ワッチョイ 6730-l4Vs)
16/09/03 11:06:00.35 +PRxNCnW0.net
いや、違うか
TextBoxにEnterが入力されるのはWM_CHARを処理しているからで
WM_CHARはTranslateMessageが送出している
これを止める(GetMessageの�


351:綉ranslateMessageを呼ばない)必要があるが、これを止める手段はWinFormsに存在しない >>341と同じく無理じゃねって結論



352:デフォルトの名無しさん (ワッチョイ 0351-wh/5)
16/09/03 11:10:03.28 vFj9bHn70.net
>>347
無理でしたか
ありがとうございます
余談ですがCtrl+Enterでは改行が入力されるもののAlt+EnterやShift+Enterでは入力されませんでした

353:デフォルトの名無しさん (ワッチョイ 775e-IPsc)
16/09/03 11:17:23.85 YP4M8m0R0.net
>>343
発想を変えてそのミニマムコードにあわせて機能を一応再現はできるw
URLリンク(ideone.com)
でもスマートじゃないし、別の部分と衝突する可能性もある(結局改行が残ったり)から使えないとは思うが

354:>>348 (ワッチョイ 775e-IPsc)
16/09/03 11:27:16.81 YP4M8m0R0.net
ごめんボタン押した後入力できなくなってたw
URLリンク(ideone.com)
こっちで

355:デフォルトの名無しさん (ワッチョイ 33d6-IPsc)
16/09/03 11:41:22.74 T8XOHxVQ0.net
URLリンク(ideone.com)
適当だけど作ってみた

356:デフォルトの名無しさん (ワッチョイ af17-tB3X)
16/09/03 11:52:39.55 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;
}
}

357:デフォルトの名無しさん (ワッチョイ 0351-wh/5)
16/09/03 12:00:44.84 vFj9bHn70.net
>>350->>352
すべて試してみてどれでも解決できました
状況によって使い分けたいと思います
ありがとうございます

358:デフォルトの名無しさん (ワッチョイ f77b-wh/5)
16/09/03 15:07:55.98 GFDCUR4+0.net
C#始めたばかり。
ちょっと悪いけど、暇すぎる人居たらこの記述書いてくれない?
それをもとに勉強するです。
ファイル群{
 引数 = ディレクトリ位置;
 配列 = 引数の位置にあるファイル全部;
 戻し(配列);
}
標準出力 {
 文字列の配列 = 引数;
 出力( 引数の配列を、\nで結合した物 );
}
main{
 ファイルパス集 = ファイル群(引数);
 標準出力(ファイルパス集);
 明示的にプロセス死んでくださいexit;
}

ちなみにメソッドや関数の書きかたも知らん。
なにもかも全部読むんで、コンパイルできるように書いてくださいな。

359:デフォルトの名無しさん (ワッチョイ 0bc0-wh/5)
16/09/03 15:10:49.96 lAR6fNJc0.net
宿題他人にやらせるとかさすがやね

360:デフォルトの名無しさん (ワッチョイ 775e-IPsc)
16/09/03 15:13:39.26 YP4M8m0R0.net
>>351
こっちの発想しかなかったけど
>>352
これが一番良さそう
>>354
一つ一つ調べるか
C#,C#の宿題片付けます。
スレリンク(tech板)
へどうぞ

361:デフォルトの名無しさん (ワッチョイ f77b-wh/5)
16/09/03 15:15:15.21 GFDCUR4+0.net
ついでと言ってはなんだが、一般的なプログラムデザインも教えてくれると超助かる。(ファイルの分割単位とか、関数群のまとめかたとかそんなの)

362:デフォルトの名無しさん (ワッチョイ f77b-wh/5)
16/09/03 15:19:52.24 GFDCUR4+0.net
ではそちらにいきます

363:デフォルトの名無しさん (ワッチョイ f77b-wh/5)
16/09/03 15:32:53.69 GFDCUR4+0.net
とりあえずメソッドの宣言は分かった。
mainもメソッドなの?どうゆう種類のオブジェクトのどうゆうメソッド?
関数というものはないの?
あと識別子に日本語で書いてみたら何も怒られることなく動作したんだけど、
問題は発生しないの?

364:デフォルトの名無しさん (ワッチョイ f77b-wh/5)
16/09/03 15:42:18.03 GFDCUR4+0.net
スタティックな変数と言うのはないのだろうか
全部自分で調べるとあれから無駄に30分も経過してるぜ

365:デフォルトの名無しさん (スプッッ Sd5f-RETc)
16/09/03 17:03:18.56 FcGf2P40d.net
>>360
一分で終わる
スタティックな変数用のクラス作る

366:デフォルトの名無しさん (アウアウ Sacf-NO8Q)
16/09/03 17:26:35.67 HDnGX34na.net
スタティックな変数が何なのかよく分からないけど、VBのアレのことを言ってるなら一筋縄じゃいかないね

367:デフォルトの名無しさん (スプッッ Sd5f-RETc)
16/09/03 18:03:50.74 FcGf2P40d.net
jsonってもしかしてなんだが配列は数字かクラスしか受け付けない?

368:デフォルトの名無しさん (アウアウ Sa0f-6goY)
16/09/03 18:13:14.35 yrPVMfsIa.net
スタティックってカタカナで書くのやめて

369:デフォルトの名無しさん (ワッチョイ f3dc-RETc)
16/09/03 18:17:48.70 NvN4PBVL0.net
>>363
JSONは単なるデータフォーマットだ
お前の言うJSONというのが何を指しているのか正確に書け

370:デフォルトの名無しさん (ワッチョイ d748-R3iF)
16/09/03 18:41:26.03 zijBnKSi0.net
性的な変数

371:デフォルトの名無しさん (スプッッ Sd5f-RETc)
16/09/03 18:46:50.72 FcGf2P40d.net
>>365
違いをよく理解してない
形式のことがjsonというのかね

"json" : [
0x555,
11111
]

こんなのならOKなんだが
この数字のところを文字列にするとダメになる
判断基準はVS2015のデータ形式指定のはりつけでエラーになってる


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch