1 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 20:50:08.06 ID:IGV3Viy6.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1436344868/ ■関連スレ C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1443271409/ ■コードを貼る場合は↓を使いましょう。 ideone.com/
3 名前:デフォルトの名無しさん mailto:sagete [2015/10/02(金) 21:11:20.55 ID:FjrmJ/eh.net] static string dll; static{ if( System.IntPtr.Size == 4 ) { dll="hoge.dll"; } else { dll="hoge_x64.dll"; } } [DllImport(dll)] extern static int hoge( int i); public static int hoge( int i) { return hoge( i ); } じゃ駄目なんでしょうか?
4 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 21:45:20.31 ID:7HANc3XL.net] やってみたらええやん やってみて駄目なら駄目なんだろうよ
5 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 21:53:18.86 ID:N6iuQlgL.net] VisualStudio2013で勉強し始めてまだ駆け出しの者です Listboxについて質問させて下さい For i = 1 To n List.Items.Add(i) Next これだと縦に1,2…nとリストされてしまい困っています 最終的に1(改行)1,2(改行)1,2,3(改行)1,2…nというリストを作るプログラムが作成したいのですが…
6 名前:デフォルトの名無しさん [2015/10/02(金) 22:12:17.02 ID:FjrmJ/eh.net] >>4 出来たのは出来たんですけど、このように書いているサイトがなかったので、何故かと思って…
7 名前:デフォルトの名無しさん [2015/10/02(金) 23:19:40.26 ID:qOcFsPem.net] class bass class extend :base というクラスがあり baseに static base Create(){return new base()} があります。 しかし、これだとextend.Create()としてもbaseが返ります。 base.Create〈extend〉()としてもいいのですが、やはりextend.Create()としたいところです。 継承クラスで同じ名前のstaticメソッドを上書きできますが、基底のみで対応することは可能でしょうか?
8 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 00:42:19.31 ID:ysYK4f75.net] >>5 VB.NETか ここはC#スレ まぁそれはいいとして 間にカンマいるのかしらんけど、こういうことか? Dim sb As New System.Text.StringBuilder() For i As Integer = 1 To n sb.Append(i) List.Items.Add(sb.ToString()) Next
9 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 05:59:57.10 ID:XVf29bWA.net] >>6 できないでしょ
10 名前:デフォルトの名無しさん [2015/10/03(土) 08:34:44.85 ID:GmUX5JOa.net] >>9 あ、書いた時点ではエラーでなかったですけどコンパイルしたらおかしくなりました
11 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 10:12:23.64 ID:pt22Iv4Q.net] >>7 pythonのclassmethodやね たぶん、↓くらいしかできない stackoverflow.com/a/2070448
12 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 16:20:15.81 ID:hORN2AoM.net] データベースはじめて5日目だけど 全スレ後半のデータベースの話は非常に参考になった >localDB この存在すら知らなかった 検索してもSqlCEやSQLiteばかりだし 利用する方法もEntityFrameworkばかりで苦労してやっとできたけど localDB使う方法だと面倒な導入手続き無しにすぐ始められた! >dapper この存在も知らなかった 速さに関しては今のところEntityFrameworkでも特に問題ないけど 速くてかゆい所に手が届き、面倒なマップが手軽になっているので これは使ってみたいと思った EntityFrameworkだと大量に
13 名前:dllファイルができるし、自動化によって裏で何をしているいのか よくわからないので不安感が付きまとう SQLite+dapperでやってみようかな [] [ここ壊れてます]
14 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 19:47:53.51 ID:g7xKsIu0.net] >>12 奇遇だな。俺もDB五日目くらいだよ。 >localDB使う方法だと面倒な導入手続き無しにすぐ始められた! と言いながら、 >SQLite+dapperでやってみようかな というのは何故? LocalDBよりもSQLite+dapperのほうがいいの?
15 名前:デフォルトの名無しさん mailto:sage [2015/10/03(土) 19:57:11.23 ID:VaoKZsdf.net] 五日目コント
16 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 00:15:20.07 ID:iyBr7bUF.net] >>13 localDBはC#でしか使われないのと SQL Serverは導入は簡単だったけど 実際使い出すと奥が深くてとんでもなく難しそう ノンプロなんで業務アプリを作ることもない SQLiteは他言語や携帯端末にも使われていて 汎用的で情報も多いし簡単で配布にも便利 使い回しの効く技術学んだほうがいいかなーって思って
17 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 10:13:04.57 ID:TDTWj9Zs.net] >>15 youは色々と勘違いしているよ LocalDBは利用側の言語は問わないよ、VBAからだって使える 奥が深いのは当然、現在のLocalDBはT-SQL完全互換なのよ SQLiteも良いね、でも汎用的かと言えば少し違うかもね 用途によってはSQLiteの方が良いというだけよ だから使い回しの効く技術という点ならSQL Serverに軍配が上がるね
18 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 10:53:53.27 ID:FsLwYc7A.net] DB初めて六日目なんですが、 > SQLite+dapper 勉強する価値はありますか?
19 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 15:49:22.81 ID:FUfjHrs1.net] DBはじめて6日目ですけど SQLite+EF6はだめだった 既存のDBにレコードを追加参照するだけなら簡単だったけど 動的にDBやテーブル作ろうとすると無理だった LocalDB+EF6はモデルからデータベース作ろうとしたら SQL Serverのダイアログが出てサーバー名とか出てきてなんだこれってなって 何を入力してもデータベースがどうたらとエラーが出る それにランタイムみたいなので動いているようでめんどくさいと思った 調べるとLocalDBはあくまでテスト運用のためのもので やっぱり業務アプリの開発者向けだったようだ 結局自分にはEF6は必要なかったという結論 それなら別にM$製のデータベースに拘る必要はないということで SQLiteとそれを手軽に扱うMicro-ORMであるdapperという選択になった SQLite+dapperを実際使ってみてSQL文を書かなきゃいけないのが面倒くさいが SQLiteならチュートリアルサイトが山程ある 動的DB作成、動的テーブル作成もできた 導入もすんなり、全くエラー無し! 容量も14TBなので画像を保存しても気にしなくていい EF前提でやってきた者からすれば EFを使わなければこんなに簡単なんだって感動した この選択肢で不満が出ることはないと思う EFには二度と触らないと誓う
20 名前:デフォルトの名無しさん [2015/10/04(日) 16:17:06.05 ID:Vt6Jil15.net] abstractクラスでインターフェイスを継承したら、実装していませんエラーが出ます。何故でしょうか? サブクラスで実装したいのですが… javaだとabstractクラスにすれば実装しなくてもよかったんですが
21 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 16:52:15.00 ID:WWC1qREk.net] JAVAじゃないから
22 名前:デフォルトの名無しさん [2015/10/04(日) 16:52:36.36 ID:Vt6Jil15.net] >>20 どうすればいいですか?
23 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 16:52:51.10 ID:/6VAn0Rf.net] >>18 SQLite.netとかじゃダメなん?
24 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:00:36.61 ID:0WB+oea1.net] >>21 インターフェイスのメンバーにabstractつけりゃいいだろ
25 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:00:40.94 ID:K/b1ABC4
] [ここ壊れてます]
26 名前:.net mailto: >>18 動的作成が必要ってよほどのシステムなんだな ちなみに、EFのメリットは文字列SQLを扱わなくて済むことな >>21 継承したクラスもabstractにする [] [ここ壊れてます]
27 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 18:03:28.27 ID:K/b1ABC4.net] >>23 だった >>24 は忘れてくれ
28 名前:デフォルトの名無しさん [2015/10/04(日) 18:35:52.48 ID:Vt6Jil15.net] 継承するたびにabstractつけないといけないのか。。
29 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:14:08.67 ID:FsLwYc7A.net] c#やる人はDBプログラミングも完璧に出来るの? おいらには難しい。何から始めたらいいのか。
30 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:25:58.00 ID:4ZFUkYGv.net] SQL
31 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:42:43.95 ID:FsLwYc7A.net] sqlはある程度は出来るよ
32 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:47:58.51 ID:4ZFUkYGv.net] じゃあ次に進もう
33 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:53:49.03 ID:FsLwYc7A.net] 次は何がいいのかしら?
34 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:16:12.67 ID:4ZFUkYGv.net] ネットワークか3Dかな
35 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:22:40.77 ID:FsLwYc7A.net] >>32 両方出来るわよ。openglはよく使ったわ。
36 名前:デフォルトの名無しさん [2015/10/04(日) 21:26:32.67 ID:Vt6Jil15.net] C:\Hoge\args\ と言う文字列から args を取り出すにはどうすればいいでしょうか? GetDirectoryNameだとC:\Hogeになります
37 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:28:25.31 ID:4ZFUkYGv.net] >>33 なんだよ。初心者じゃないじゃん。神レベルじゃん。
38 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:33:14.06 ID:0WB+oea1.net] >>34 var path = @"C:\Hoge\args\"; var fileName = System.IO.Path.GetFileName( path.TrimEnd( '\\' ) )
39 名前:デフォルトの名無しさん [2015/10/04(日) 21:36:42.41 ID:Vt6Jil15.net] >>36 ファイル名じゃなくてフォルダ名を取得したいです
40 名前:デフォルトの名無しさん [2015/10/04(日) 21:40:47.99 ID:GuH6DZcU.net] >>34 マイナーなAPIだけど new DirectoryInfo(path).Name
41 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:43:53.33 ID:4ZFUkYGv.net] >>37 再起
42 名前:デフォルトの名無しさん [2015/10/04(日) 21:48:10.61 ID:zHOzyLwf.net] >>34 レスに文句ばっか言ってんじゃねーよ乞食
43 名前:デフォルトの名無しさん [2015/10/04(日) 22:14:59.10 ID:Vt6Jil15.net] ありがとうございます。出来ました >>40 すみません
44 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 04:15:46.37 ID:eQ2/zVIr.net] >>19 ideone.com/cwKTg3 普通にできるじゃん 明示的実装してんの? https://msdn.microsoft.com/ja-jp/library/aa664595%28v=vs.71%29.aspx?f=255&MSPPError=-2147217396
45 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 09:14:38.11 ID:NpHnTe7L.net] >>42 彼はideone.com/bEzsTd を狙っているんでは? 出来なくても全く問題ないと思えるが、C#を欠陥言語だと揶揄したいのかな
46 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 10:35:28.87 ID:LmMVGWnX.net] このへそ曲がりな解釈をしたがる根性はなんとかならないのだろうか? 強烈なコンプレックスを持ってるんだろうなあ…
47 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 15:46:26.20 ID:eQ2/zVIr.net] >>43 うーん、池沼としか言いようがないな
48 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 18:17:41.66 ID:PVqgELRl.net] ListBoxのDrawItemイベントとかで DrawItemEventArgs.Indexに-1が渡されてくることがありますが これってなぜ? 意味ないと思うんだけど。 だって描画しろというイベントでしょ? いつも-1を除外するコードを書く度に思うんだけど! と、ここまで書いて 背景を描けということなのかなと思い当たったけど合ってる?
49 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 19:45:13.85 ID:W0LY67FT.net] wpfを最近始めたけど、難しいね。 バインディングも融通が効くというか、わけわかんないというか、わけわかんないほう。 みんながerectronに飛びつくのもわかる気がするよ。
50 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 20:49:50.82 ID:EY/b50y6.net] 今時HTMLは最低でも使えないと開発者として話にならないからね どのみちHTMLは覚えなきゃならないし、HTMLで同じことは実現できるんだからわざわざWPFを使う理由がない
51 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 21:05:08.85 ID:G+Q38Itw.net] 井の中の蛙っすなあ
52 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 21:14:49.94 ID:PVqgELRl.net] javascript地獄に落ちるよ
53 名前:デフォルトの名無しさん [2015/10/06(火) 16:36:11.30 ID:H4LWLTNp.net] SVNでコミットしようと思ったら間違ってアップデート押してしまった… 確認画面も出ないのかよ
54 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 16:53:27.84 ID:y3L8AxGi.net] そりゃ簡単に戻せるからな
55 名前:デフォルトの名無しさん [2015/10/06(火) 17:01:54.18 ID:H4LWLTNp.net] どうやって戻したらいいんだ?
56 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 17:11:09.43 ID:rJsBL5Cg.net] TortoiseSVN使ってるなら Update to revisionするとか Show logからUpdate item to revisionするとか
57 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 17:25:06.67 ID:UaXFQD8w.net] 何の話? な ん の は な し ?
58 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 18:51:35.50 ID:b7EIiqyO.net] >>51 どっちにしろアップデート要るからな
59 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 19:33:53.24 ID:fQuxJtVK.net] >>51 ほ、ほら、SVNが適切にマージしてくれてるでしょ(震え声
60 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 21:04:13.40 ID:eiV44Wn/.net] SVNはアプデ時に競合が合ったときの挙動がクソ過ぎる
61 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 23:55:21.99 ID:EryYYvev.net] クラスA内のメソッド内でクラスBのメソッド使用 クラスBのメソッド内でクラスAのメソッド使用 のような関係があるとき 依存性を減らすためにコンストラクタで相手のオブジェクトを受け取り、フィールドにセット するような作りにしたいんですが、お互いにインスタンス作るには、もう片方が必要なため、作れません こういうときはどういう作りにすべきですか? テストコードを書くため、メソッド内で相手クラスをnewするのは無しでお願いします
62 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 23:59:03.30 ID:8uRulS56.net] 相互参照しない作りにすべき
63 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 00:11:55.48 ID:T1RoiOzF.net] Abstract Factoryを使えばいい interface IHage { void DoHage(); } interface IHoge { void DoHoge(); } class Hage: IHage { private IHoge hoge; public Hage(Func<IHage, IHoge> hogeFactory) { this.hoge = hogeFactory(this); } } class Hoge: IHoge { private IHage hage; public Hoge(IHage hage) { this.hage = hage; } } これで new Hage(hoge => new Hage(hoge)) としてインスタンス作ればいい factoryを変えればテスト時にHageにダミーのIHoge実装を食わせることもできる
64 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 00:20:04.54 ID:3pa+NQnn.net] なるほど、デザパタ使っていけるんですね ありがとうござました
65 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 00:24:26.54 ID:T1RoiOzF.net] >>61 訂正 new Hage(hage => new Hoge(hage))
66 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:27:46.25 ID:dQPZGG2o.net] 循環参照とか絵に描いたようなダメ設計だな
67 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:34:11.37 ID:40NgKpJy.net] ボタンにイベントハンドラ登録したたけで循環参照になるのに何を言ってるんだ ダメなのは循環参照ではなく2つのクラスが相互に密結合する設計
68 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:51:31.86 ID:dQPZGG2o.net] >>65 VBスレでもそんなヨタを飛ばしてるバカがいたけど、.NETのイベントも オブザーバパターンも実行時に参照を握るだけであってコード自体が循環参照してるわけじゃない
69 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:51:40.38 ID:wgVSxFSa.net] クラスA内のイベントでクラスBのメソッドMethodBを呼び出す。 MethodB内では、クラスAのセッターを呼ぶ みたいな処理は、どういう設計がいいんだろ? >>61 みたいにするのはよくない?
70 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:57:52.42 ID:dQPZGG2o.net] >>67 そんなことをしたくなる(しなきゃならない)時点でもう詰んでる。 クラスの切り分け方が根本的に不適切だからそうなる。
71 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 13:13:24.70 ID:UidqiOp4.net] だよな。どうしたらそんな糞設計ができるのか。
72 名前:65 mailto:sage [2015/10/07(水) 16:22:14.39 ID:lr4jJmHi.net] >>66 そういうことを言ってるんだが >>61 は疎結合になってるからOK
73 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 16:36:06.20 ID:dQPZGG2o.net] >>70 AがBに依存していないと偽装するという目的のためだけにインターフェイスIBを作ってBにかぶせても AがBに依存している実態は何も変わらない。 そんなのただの欺瞞だ。 自分の欺瞞に自分で気づいてないなら自己欺瞞だな。
74 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 16:49:51.50 ID:9sdQQKJG.net] はいはい 働けクソニート
75 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 18:25:15.82 ID:wgVSxFSa.net] 二つのクラスで相互参照があったら 間でやり取りするようなクラス追加したほうがいいってこと?
76 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 19:23:58.21 ID:F4sBdgXs.net] そんな時、wpfの基本技術であるINotifyPropertyChangedを、普通のクラスから利用したりすると便利 上位のクラスはProperyChangedイベントを監視するだけでいいし、下のクラスはPrism使うだけ
77 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 19:55:05.52 ID:HxdUxcN3.net] >>71 テスト時にダミーに差し替えるためだけの形式的なインターフェイスは普通に使われてるパターンだよ 嘘だと思うならVSのコードを逆コンパイルしてみたらいい
78 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:41:26.09 ID:sdI3RqNo.net] 下のようなデータがあり、BIDをgroupByして 2015年1月のnumの合計を出したいのですが、 どのように書けば可能でしょうか? public class TDATA { public string BID { get; set; } public DateTime day { get; set; } public int num { get; set; } } static void Main(string[] args) { var hoge = new List<TDATA>(); hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/1/1"), num = 1 }); hoge.Add(new TDATA() { BID = "A002", day = Convert.ToDateTime("2015/1/20"), num = 2 }); hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/2/11"), num = 1 }); } LINQを調べてみたのですが、条件が複数あると、 なかなか理解できず、よろしくお願いします。
79 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:58:51.87 ID:T1RoiOzF.net] var groups = from x in hoge where x.day.Year == 2015 && x.Month == 1 group x by x.BID into g; foreach (var g in groups) { Console.WriteLine(“BID={0}, Sum={1}”, g.Key, g.Sum(x => x.num)); }
80 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:59:22.05 ID:T1RoiOzF.net] >>77 訂正 into g は不要
81 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:59:54.31 ID:7k7eABWe.net] var sum = hoge.Where( tdata => tdata.Year == 2015 && tdata.Month == 1 ).Sum( tdata => tdata.num );
82 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 22:01:55.66 ID:7k7eABWe.net] 修正 var sum = hoge.Where( tdata => tdata.day.Year == 2015 && tdata.day.Month == 1 ).Sum( tdata => tdata.num );
83 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 22:06:02.97 ID:T1RoiOzF.net] >>79-80 それだとBIDでグループ化されてないよ メソッド形式でSumまで一行で書くならこう var sums = hoge.Where(tdata => 略) .GroupBy(tdata => tdata.BID) .Select(g => new { BID = g.Key, Sum = g.Sum(tdata => tdata.num) });
84 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 22:45:02.75 ID:NHKi3h4o.net] すいませんC#というか設計についてなのですが モデルというのはどのように考えればよろしいでしょうか クローラーを作ろうとしていて、新着一覧のページを定期的にチェックしていて 新着一覧のページには投稿者のIDの一覧があります。 投稿者のIDから投稿者の詳細は別のページで参照する必要があるので、投稿者のIDをキーにしてローカルに保存しようと思うのですが この時投稿者のモデルはIDだけで作るべきなのでしょうか、それともIDとその他名前等の情報を混ぜて作るべきでしょうか。 IDだけで作ると、投稿者という同じデータなのにIDだけのモデルと、名前等全ての情報があるフルデータのモデルの二種類が出来てしまいます。 名前等全ての情報でモデルを作ると、IDしか分からない段階では名前等のプロパティが空 (null?)になってしまいます。 後者の方が個人的にはいいかなと思うのですが、モデルという物に対して、このモデルはIDしか入っていない あっちのモデルは名前とか全部入っている。だから処理を分ける必要が・・・ というのは許されるのでしょうか
85 名前:76 mailto:sage [2015/10/07(水) 22:53:54.57 ID:sdI3RqNo.net] 色々とお答え頂きありがとうございます。 やはり、LINQを使えば短いコードで 実現出来るのですね。 LINQの理解が低いので、 参考にさせて頂きます。
86 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:09:28.07 ID:1Tzy0x1l.net] >>82 わざわざ分ける必要は無いと思う。 とりあえず、IDから名前等々、全部定義したクラスを定義しておけばいい。 データ(オブジェクト)の状態をチェックするプロパティを持たせておいて、取得済みかどうか判定できるようにしておけばいいし、 取得できてない名前とかは、適当に空文字なり返すようにしておけばいい。
87 名前:デフォルトの名無しさん [2015/10/07(水) 23:09:28.12 ID:K9vCPUNu.net] linqを使うと思考が衰えるから自力で組んだ方がいいぞ。 linq使いはツール使うことばっか覚えて地頭がクソなやつばっかだからな。
88 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:19:26.43 ID:zlFawCtp.net] などと中卒が申してます
89 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:41:59.93 ID:T1RoiOzF.net] >>82 そもそも、IDしかわからない中途半端な投稿者オブジェクトを 新着一覧クラスの外に晒す必要があるのかよく考えたほうがいいよ。 新着一覧クラスが投稿者ID文字列のコレクションを公開するのが嫌なら 新着一覧クラス自身に投稿者詳細をダウンロードしてくるメソッドを持たせたっていい。 もちろん賛否両論あるだろうけど、オブジェクト指向に拘るのであれば オブジェクトから情報を取り出すのはなるべく避けて、オブジェクトに命令していくようにするのが基本。
90 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:54:33.19 ID:ac/t6J3k.net] >>82 許されるというか基本中の基本 すべてを1つのモデルに詰め込もうとするともれなく巨大な神クラスが出来上がるぞ 文脈に合った適度な粒度のモデルを必要な数だけ作るんだよ まずはとりあえず取得と更新を分離しろ
91 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 00:27:57.95 ID:edkXggJo.net] >>82 var page=await NicoUtil.DownloadPageAsync(url); page.UserIds.Add(userId); var user=GetProfile(page.UserIds[0]); user.Id=3945887; user.IsNicoNamaNushi=false; user.Description=""; UserDB.Add(user);
92 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 00:51:12.57 ID:7dJhmaB1.net] >>82 IDだけだったらそれはIDでしかないじゃんw 煽り抜きで愚問だね。
93 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 02:10:27.33 ID:n5xoJkAg.net] よくわからないんだけど、Nameが空なのが嫌なら投稿者クラスを作るときに情報を取得すればいいんじゃないの?
94 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 21:32:59.63 ID:9yien46K.net] C#でinnerHTMLのような各種の<タグ>を含んだHTMLの文字列から タグを除去してテキスト
95 名前:セけを取り出す簡単な方法ありますか? [] [ここ壊れてます]
96 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:05:59.40 ID:O6ws46yp.net] 正規表現でやりなよ
97 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:22:34.18 ID:9yien46K.net] >>93 例えば <label>文字の中に<タグもどき>が有る場合が難しそう</label> なので、正規表現以外で良い方法有りませんか?
98 名前:デフォルトの名無しさん [2015/10/08(木) 22:51:05.62 ID:vx3KIWo3.net] xmlのライブラリ使えるんじゃないの
99 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 23:35:33.54 ID:Xn3MaZ8G.net] HtmlAgilityPack使え
100 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:15:53.61 ID:oggkbSfr.net] >>96 難しいですか?
101 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 05:03:09.47 ID:DnhlxVQi.net] >>97 ぐぐれよ www.atmarkit.co.jp/ait/articles/1501/27/news140.html
102 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 10:27:53.18 ID:oggkbSfr.net] 難しそうなので諦めました
103 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 11:13:26.38 ID:oOXSiJnl.net] なんだ釣りかよ こんなところで釣りをするな 死ね