ふらっとVisual C#,C♯,C#(初心者用) Part97at TECH
ふらっとVisual C#,C♯,C#(初心者用) Part97 - 暇つぶし2ch1:デフォルトの名無しさん
12/09/11 11:53:26.16
このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

関連スレ
ふらっとVisual C#,C♯,C#(初心者用) Part96
スレリンク(tech板)
C#, C♯, C#相談室 Part75
スレリンク(tech板)

2:デフォルトの名無しさん
12/09/11 11:54:06.25
ん?ミスった?

3:デフォルトの名無しさん
12/09/11 11:54:16.85
問題なかったわ

4:デフォルトの名無しさん
12/09/11 12:04:41.14


5:デフォルトの名無しさん
12/09/11 14:07:48.90
仕事で急に投げつけられたから
取りあえずソースを眺めてたら

 public static DateTime? getDate(int Ymd)

なんて関数が作ってあったんだけど
?ついた型指定ってどういう意味なの?

6:デフォルトの名無しさん
12/09/11 14:14:59.93
>>5
Nullable<T>
値型にnull突っ込める

7:デフォルトの名無しさん
12/09/11 14:24:44.54
なるほど、実際の型を明示しつつObject的な返し方ができるんだ
ありがとう

8:デフォルトの名無しさん
12/09/11 14:26:34.91
>>6
そういうのはなんていう名称なんだろ
[ ]で指定するのとかあるよね
調べる際に困るw

9:デフォルトの名無しさん
12/09/11 14:53:07.12
言語仕様を把握しておくしかないと思う
URLリンク(msdn.microsoft.com)(v=vs.110)

10:デフォルトの名無しさん
12/09/11 15:54:55.46
C#つかったことないのですが、Webサーバーで一部モジュールを更新した場合には
phpのようにモジュールを上書きするだけでサーバーの再起動なく反映できますか?

11:デフォルトの名無しさん
12/09/11 16:00:29.98
>>6
null許容型のことか
何もかもがググれないと記号ばかりとRubyがボロクソ言われてたのを思い出したw

12:デフォルトの名無しさん
12/09/11 16:01:13.27
サルでもわかる entity framework 徹底入門的な書籍はありませんか?

13:デフォルトの名無しさん
12/09/11 16:02:53.92
サンプルでusingが示されていない場合にみなさんどうやってググってますか?

14:デフォルトの名無しさん
12/09/11 16:05:12.58
【消しゴム】MONOを使ってみるスレ4【じゃない】
スレリンク(tech板)
【C#, C♯, C#】 MonoMac 【MonoDevelop】
スレリンク(mac板)
【3Dゲームエンジン】Unity総合スレッド16
スレリンク(gamedev板)
ASP.NET MVC
スレリンク(php板)
【質問】ASP.NETスレ Part7【雑談】
スレリンク(php板)


15:デフォルトの名無しさん
12/09/11 16:07:37.22
>>10
余裕で

16:デフォルトの名無しさん
12/09/11 16:34:34.06
質問です。

クラスライブラリを作成するに当たってある条件でメソッドを使えない
ようにしたいのですがどの様にすればよいでしょうか?

具体的にはConditional属性を付けたような動きにしたいです。
現在はメソッドの中でその条件を見てreturnしているのですが、
そもそもその条件はライブラリ呼び出し後から変更することが
ないので、その条件下ではメソッド自体をスキップしてほしいのです。

良い案ありませんでしょうか?

17:デフォルトの名無しさん
12/09/11 16:58:27.97
>>16
普通にifで分岐しろ
それくらい誤差だ誤差
いろんなメソッドでその条件を見ててあんまりにも分岐が多くなるようなら
ポリモーフィズムを使ってもいい

18:デフォルトの名無しさん
12/09/11 17:11:50.79
実行時にソースコードをコンパイルするとか
一旦逆アセンブルして編集して再アセンブルするとか
そういうアホみたいな方法は思いつくけど、
その手間や実行時オーバーヘッドに見合った効果は絶対に得られないと断言できる

19:デフォルトの名無しさん
12/09/11 17:11:56.38
EntityFrameworkってどうよ?

20:デフォルトの名無しさん
12/09/11 17:17:58.43
>>16
やらないと思うけど delegateで
URLリンク(ideone.com)

21:デフォルトの名無しさん
12/09/11 17:19:28.60
ASP.NETだとWeb.config/Web.Release.configみたいな感じできるようですが、
App.configで同じことできないのでしょうか?

22:デフォルトの名無しさん
12/09/11 17:22:37.83
固定の条件分岐はデリゲートやクラス継承使ってポリモーフィズムするのが綺麗だけど
目的は決して速度ではないぞ。
確実にifの方が速い。どっちにしろ普通は誤差レベルだけど。

23:デフォルトの名無しさん
12/09/11 17:26:21.37
>>21
そりゃASP.NETは実行時にコンパイルするからな
実行時コンパイルやりたきゃやってもいいがクライアントだと確実に>>18

24:デフォルトの名無しさん
12/09/11 18:35:27.33
まともなO/Rマッパーってありますか?

25:デフォルトの名無しさん
12/09/11 18:40:18.95
ないよ

26:デフォルトの名無しさん
12/09/11 18:40:28.48
dapper
URLリンク(nuget.org)

27:デフォルトの名無しさん
12/09/11 18:41:50.09
まともなのというならEFかNHibernateになるな
Dapperがまともとかアホか

28:デフォルトの名無しさん
12/09/11 18:48:20.68
EFもHibernateも中途半端な知識で増えるワカメのようなDB相手だと無残なことにしかならんかった。
Dapperでクラスにマッピングして、リレーションはそのクラスの中でプロパティとして実装が最善手な気がしている。

素人のオレオレな実装方法なので良いか悪いかは知らん。

class Hage {
public int Id { get; set; }
public Hage Parent {
get {
// dapper.Query<Hage>("select ...")みたいな感じ
}
}
}

29:デフォルトの名無しさん
12/09/11 18:50:15.62
Dapperはリレーションに関知しないんだからORM名乗るなよ
object-recordマッピングとかobject-rowマッピングとでも呼ぶべき

30:デフォルトの名無しさん
12/09/11 18:52:06.07
EFはモデル編集画面上でユニークキーの貼り方が分からなくて積んだ
未だにわからない
どうやんの?


31:デフォルトの名無しさん
12/09/11 18:53:28.90
NHはスキーマに修正が入ったときのどうしていいのかわからなくて積んだ
SchemaExportとかいうメソッドがあったから叩いてみたらDROP/CREATE TABLEが走って全データ消えてフイタ
未だにわからない
どうやんの?


32:デフォルトの名無しさん
12/09/11 18:54:11.45
ORMってクソじゃね?
.NET用のは特に

33:デフォルトの名無しさん
12/09/11 18:57:17.02
なにをいまさら

34:デフォルトの名無しさん
12/09/11 19:04:03.38
かと言ってExecuteReaderとかありえないだろ

35:デフォルトの名無しさん
12/09/11 19:11:19.17
.NETって選択肢がねえや
すまんな

36:デフォルトの名無しさん
12/09/11 19:14:54.74
Dapperは複合プライマリーキーの貼り方がわからなくて積んだ
未だにわからない
どうやんの?

37:デフォルトの名無しさん
12/09/11 19:34:00.35
確かにMVVMやデザインパターン意識しだしてから開発効率が落ちたな
Form1にザクザク書いてた頃の方が目的のツール早く作れてた

38:デフォルトの名無しさん
12/09/11 19:35:20.14
でもそういうツールを後で修正したいって時が困る
結局ゼロから作りなおしたほうが早いんじゃないかと思えてくるんだよね

39:デフォルトの名無しさん
12/09/11 19:42:11.04
そうかなあ

40:デフォルトの名無しさん
12/09/11 20:02:38.76
サクッと作ってからコード整理を兼ねてパターンに置き直し
ツールが動いてから見えてくることもあるしね

41:デフォルトの名無しさん
12/09/11 20:05:57.00
なるほど

42:デフォルトの名無しさん
12/09/11 20:17:57.23
へえ

43:デフォルトの名無しさん
12/09/11 20:32:55.06
ご名答!

44:デフォルトの名無しさん
12/09/11 21:48:38.54
MSChartの質問は、ここでよいか?

45:デフォルトの名無しさん
12/09/11 22:03:44.86
イベントハンドラに、すでに特定のイベントが
追加されてるかどうかを見分ける方法はありますか?

もし同じイベントを2回足したらどうなりますか?


46:デフォルトの名無しさん
12/09/11 22:11:22.39
> イベントハンドラに、すでに特定のイベントが
> 追加されてるかどうかを見分ける方法はありますか?
イベントに特定のイベントハンドラが、じゃねえの?
それなら外部からでは判断できない

> もし同じイベントを2回足したらどうなりますか?
イベントハンドラを二回足したら当然二回呼び出される(普通のイベントなら)

47:デフォルトの名無しさん
12/09/11 22:23:54.75
IISって接続が発生するたびに、スレッドが作られるんですか?
singletonを作ったらば、そのオブジェクトはIISでユニークな存在になりますか

48:デフォルトの名無しさん
12/09/11 22:45:26.78
 ////////, ''"    ヽミ川川
 |//////, '"       ',川川 えっ!何この包茎ぺニスと悪臭・・・
 川/////, '",,,,,,,,,,,,,,,,    r''"',川||
 川f 川f´           ,ィ::ラ',川  
 川ヘ  |    弋て::>     ̄  ',リ
  川 ヘ.__           ヽ /7!  ごめん…
  川川 ヘ     _,. '-‐''"´y'  //
   川川リヘ , '´   __,,,/  / /    ちょと…まじで気持ち悪い!
   川川川|/   '"´   , '´ /||
   川川川|           /川  (都内在住 22歳 OL)

49:デフォルトの名無しさん
12/09/11 22:53:52.41
IIS以外でもasp.netってつかえんの?

50:デフォルトの名無しさん
12/09/11 22:59:35.59
Web魚拓のようなものを作っているのですが、EntityFrameworkでURLを主キーにしたテーブルを作ろうとしたら「長すぎる」と怒られたんですが、どのように実装するのがよいのでしょうか?
正直、データベースの知識はあまりありません。

51:デフォルトの名無しさん
12/09/11 23:01:45.49
>>45
ハンドラーを一度削除してから追加すればいい

52:デフォルトの名無しさん
12/09/11 23:03:48.69
>>50
ハッシュにしとけ

53:デフォルトの名無しさん
12/09/11 23:28:44.99
>>44もちろん。
>>49もちろん。

54:デフォルトの名無しさん
12/09/11 23:54:45.20
>>36
Dapperにキーなんてものはない。
テーブル作るときもupdateするときもSQLを手書きするんだし
リレーションにも直接対応してないんだから。
Dapperの仕事は、クエリの結果をオブジェクトに代入することと
オブジェクトをクエリのパラメータに代入することだけ。複合主キーが使いたければそういうSQLを書く。

55:デフォルトの名無しさん
12/09/12 05:55:47.44
>>51
追加されてないハンドラーを削除するのはエラーや例外にならないのですか?


56:デフォルトの名無しさん
12/09/12 06:54:21.73
>>55
内部的にDelegate.Removeを使っているはずなので問題ない

57:デフォルトの名無しさん
12/09/12 14:02:13.75
未使用メソッドを検索する方法ありますか?
使わなくなったゴミがたくさんあるんだけど
デリゲートとかの関係で無理かな?

58:デフォルトの名無しさん
12/09/12 14:06:52.77
>>57
有料ツールならできるかもしれないけどなあ・・・

未使用メソッドを消したいクラスや検査対象のメソッドがそれほど数がないのなら
メソッドの頭で通過したというマーカーログを残すような簡単な仕組を入れて
走らしてみれば?
ログが無いのが使ってない証拠

59:デフォルトの名無しさん
12/09/12 14:15:36.50
fxcopで調べてくれるよ
ただしpublicやprotectedなものについては外部から呼ばれる可能性があるから判断不能
デリゲートは最終的にどこかで使われるから問題ないけど
リフレクションによってのみ使われるものは判断不能

60:デフォルトの名無しさん
12/09/12 15:07:10.59
fxcopで試してみます
ありがとう

61:デフォルトの名無しさん
12/09/12 15:49:14.47
>>56
イベントにnullを入れてクリーンアップするのはおk?


62:デフォルトの名無しさん
12/09/12 15:50:31.16
>>61
聞く前にやってみたか?
やってみてるならそんな発言はでないはずだが

63:デフォルトの名無しさん
12/09/12 17:46:34.46
コンソールアプリで簡易GUIみたいのを作りたいのですが、その手のライブラリってありますか?

64:デフォルトの名無しさん
12/09/12 17:56:45.01
GUI使えないの?

65:デフォルトの名無しさん
12/09/12 17:57:48.93
>>63
こういうこと?
URLリンク(www.kaikoga.net)

66:デフォルトの名無しさん
12/09/12 18:08:06.13
>>63
win32API使えばウインドウに対して干渉できるみたいなのでグラフィックも可能なんだろうけどさ・・・
URLリンク(www.atmarkit.co.jp)

なんかいろいろ方針が間違ってね?

67:uy
12/09/12 18:18:29.76
思ったけど
俺の初めての言語がC++2009なんだが
今のCは使いやすくなってんの?
RUBYしか使ってないけど

68:デフォルトの名無しさん
12/09/12 18:18:53.51
すれ違い

69:デフォルトの名無しさん
12/09/12 18:32:12.55
>>64
はい。

>>65
そういうのです。

>>66
グラフィックは使わないです。


70:デフォルトの名無しさん
12/09/12 18:46:15.52
具体的にはこういうのを作ろうと思ってます。
URLリンク(upload.wikimedia.org)

71:デフォルトの名無しさん
12/09/12 18:46:45.32
このuyってやつなんかいろんなところにいるな

72:デフォルトの名無しさん
12/09/12 18:49:13.59
>>70
さっきぐぐったら海外のフォーラムにそういうのをやってる人がいたな
まあ自分でやってもいいんだろうけど

73:デフォルトの名無しさん
12/09/12 18:51:25.31
で、C#はどうせGUIが使える環境でしか動かないのに
わざわざキャラクタベースで作る理由は?
JavaだとCUIオンリーの環境でも使われるからそういうライブラリもあるけど
C#でそんなもの何の意味もないでしょ

74:デフォルトの名無しさん
12/09/12 18:54:57.06
…はぁ?

75:デフォルトの名無しさん
12/09/12 19:52:11.38
まぁ非PGから見れば、GUIアプリだけがソフトウェアだよね

76:デフォルトの名無しさん
12/09/12 19:53:34.58
>>70
curses

77:デフォルトの名無しさん
12/09/12 19:57:04.22
Midnight Commanderをmonoに移植してやったらイカザが喜ぶんじゃないか

78:デフォルトの名無しさん
12/09/12 20:13:23.53
全く横だけどCUIも面白そうだな
ちょっとさがしてみるわー

79:デフォルトの名無しさん
12/09/12 20:19:39.62
どこかで見た気がするんだが思い出せんな -> CUIライブラリ

80:デフォルトの名無しさん
12/09/12 20:23:57.39
>>75
はい

81:72
12/09/12 20:25:46.02
投下しておけばよかったか・・・
URLリンク(www.codeproject.com)

82:デフォルトの名無しさん
12/09/12 21:13:02.62
WinFormで、ツールチップを設定したComboBoxの▼ボタンを押すと、以降、ツールチップが表示されなくなる
ちなみに他のコントロールのツールチップを表示するとまた表示されるようになる
※発生環境はWinXP (Win7では発生しない)

何かうまい対策とかある?

83:デフォルトの名無しさん
12/09/12 21:14:09.26
○分ちょうどのときにある処理を実行したくて下記のようなコードを書いてみたのですが、
10回に1回くらいの頻度で実行されないことがあります
これをちゃんと毎回実行されるように改善したいのですが、どうしたらいいでしょう


※ティックイベントのIntervalは1000
private void timer1_Tick(object sender, EventArgs e)
{
  if (DateTime.Now.Second != 0)
    return;

  //ここに○分ちょうどのときにやりたい処理
}

84:デフォルトの名無しさん
12/09/12 21:23:54.81
DateTime? next = null;
private void timer1_Tick(object sender, EventArgs e)
{
  DateTime now = DateTime.Now;
  if(next == null){
    next = now.AddSeconds(-now.Second).AddMinutes(1);
  }
  if (now < next)
       return;
  next = next.AddMinutes(1);

  //ここに○分ちょうどのときにやりたい処理
}

//ここに

85:デフォルトの名無しさん
12/09/12 21:33:17.84
next = next.Value.AddMinutes(1);


86:デフォルトの名無しさん
12/09/12 21:46:50.47
>>84
確かに「0秒の時」よりこの方法の方がしっかりしてそうですね
しばらくこれで様子見してみます
ありがとうございました

87:デフォルトの名無しさん
12/09/12 22:05:08.78
>>75
こういうのはキャラクタベースなだけでGUIの類だろ

88:デフォルトの名無しさん
12/09/12 23:11:05.46
GUI風のCUIだろ

89:デフォルトの名無しさん
12/09/12 23:15:43.70
GUIの"Graphical"にはビットマップに限るなんていう含意はないと思うが。
とっくに死語だけど、キャラクターグラフィックなんて言葉もあったな昔

90:デフォルトの名無しさん
12/09/12 23:17:48.72
そこでCLI⊂CUI派

91:デフォルトの名無しさん
12/09/12 23:20:11.89
少なくとも操作体系は完全にGUIと一緒なんだから
PG云々の文脈で出てくるべきものではないな
コマンドラインインターフェイスの方ならGUIがある今でも十分意味のあるものだけど

92:デフォルトの名無しさん
12/09/12 23:30:06.47
なんかVS2012のExpressがダウンロード出来るみたいだな
async使いたい時はどれをダウンロードしたらいいんだ?

93:デフォルトの名無しさん
12/09/12 23:32:07.15
>>87
>キャラクタベースなだけで
言葉そのまま Character-based User Interface じゃねーかw

>>90
CLI上でCLIですねわかります

94:デフォルトの名無しさん
12/09/12 23:33:25.52
>>93
あくまで擬似GUIだよな
分類で言えばCUI

95:デフォルトの名無しさん
12/09/12 23:36:10.83
GUIを自作って面白そうだな難しそうだけど


96:デフォルトの名無しさん
12/09/12 23:38:57.51
難しくはないよ
めんどくさいだけ

OSが持ってるLine命令とか使ってウインドウになるようにシコシコ書いていくだけ
最初はその手の命令をアクセラレートする物をGPUが実装して・・・と進化しただけ

97:デフォルトの名無しさん
12/09/12 23:55:17.30
webからファイルをダウンロードする方法を検索すると
Stream st = res.GetResponseStream();
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("Shift-Jis"));
sr.ReadToEnd();
で一気にダウンロードするんじゃなくて
バッファでちょっとづつ読み込んでいるようなソースが多いんだけど何か意味があるんですか?

98:デフォルトの名無しさん
12/09/12 23:58:19.01
そりゃネットだからな・・・
ファイルサイズが小さければいいけど大きい場合フリーズしたみたいになるぞ

99:デフォルトの名無しさん
12/09/13 00:05:18.68
スレッド分けなきゃフリーズするのは一緒
ダウンロードと後処理を並行したほうが時間もメモリ使用量も少ないからだと思うが

100:デフォルトの名無しさん
12/09/13 00:08:04.10
内部的にはウィンドウサイズごとに区切って送られてるから大した差はない

101:97
12/09/13 00:28:31.37
回答さんくす
進歩状況を表示したい場合も細切れの方がいいのかもと思った

102:デフォルトの名無しさん
12/09/13 00:35:23.10
MemoryCacheへのオブジェクトの入出力を速くしたいのですが
シリアライザを代替する方法などあるでしょうか。
例えばprotbuf-netを使用できるようにしたり、格納するオブジェクトは
ある程度固定されているので自前で実装する方法でも構いません。
参考になりそうなサイトなどあれば教えてください。

103:デフォルトの名無しさん
12/09/13 00:40:21.46
>>102
ボトルネック探して改変するしか無いだろうに。
メモリに貯めるんだったら、ボトルネックはアルゴリズムが一番でかいと思うよ。
ある程度値が決まってるんだったら、全部列挙してIDまたはハッシュでやり取りするのがいいと思う。
負荷は全部メモリに行くから。

104:デフォルトの名無しさん
12/09/13 12:04:26.12
失礼します。

OpenCVSharpで作成したAVI動画(コーデックはDIB)をVS2010のMedia Playerコントロールで読み込んでも再生出来ません。
(動画から画像を抽出する事などは出来ます)
標準のWindows Media Playerでは再生出来ます。

この場合、どこを見たら良いのでしょうか?
よろしくお願いします。

105:デフォルトの名無しさん
12/09/13 12:08:33.19
VS2010のMediaPlayerコントロールって何? WPF? WMPのをCOM参照?
それで他の動画は再生できるの?
WMPのバージョンは?

106:デフォルトの名無しさん
12/09/13 12:59:15.53
すいません、説明が足りませんでした。
VSのWindowsMediaPlayerコントロールはこれです。
URLリンク(dobon.net)

WMPは11と12で確認しました。

107:デフォルトの名無しさん
12/09/13 14:22:07.84
別のaviは再生できるのかい?

108:デフォルトの名無しさん
12/09/13 14:49:02.40
EntityFrameworkの主キーでStoreGeneratedPatternプロパティにComputedって設定した場合は、
自前のコードの中で主キーの値を計算するという認識であってますか?

その場合、自前のコードはどこに書くのでしょうか?


109:106
12/09/13 15:17:48.79
>>107
はい、他のAVIは再生できます。
元々他の無圧縮AVIファイルから動画の一部を切り抜く為、
フレーム単位でコピって繋げているだけなのですが、
WindowsMediaPlayerコントロールでは表示出来なくなってしまいます。

110:デフォルトの名無しさん
12/09/13 15:18:37.23
>>108
MSDNの解説見る限りそんな認識にはならないな

111:デフォルトの名無しさん
12/09/13 15:59:46.79
(T_T)…

112:デフォルトの名無しさん
12/09/13 17:39:22.85
>>110
まったくわかりません。。。

113:デフォルトの名無しさん
12/09/13 22:21:36.71
WMPLib.WindowsMediaPlayerってストリーム放送のURIを頻繁に切り替えてplayしてるとOS巻き込んでフリーズするよね
OS再起動するしかなくなるからすごくまずいバグだと思うんだけど誰か回避方法知ってる?

114:デフォルトの名無しさん
12/09/13 23:00:33.99
C#でそういう書き方するとVBみたいだからやめて//

115:デフォルトの名無しさん
12/09/14 02:30:36.74
Windows Formからwebで動かしてみたいって理由だけでWPFで作り変えようとしてるんだけどたとえば今までsettings.xmlとかを作ってた場合ってどうすればいいんだろ。

116:デフォルトの名無しさん
12/09/14 02:33:47.29
WPFのXBAPってダウンロードされたアプリがブラウザの枠を借りて動くだけで
別にWebで動くわけじゃないぞ?
ASP.NETにしとけ

117:デフォルトの名無しさん
12/09/14 02:35:51.26
え、そうなの?
そこらへんよくわかってないんだけどhtmlみたいにブラウザが動かしてくれるのかと思った。
ASP.NETっての見てみるね、ありがとう。

118:デフォルトの名無しさん
12/09/14 02:44:51.29
C#だけどC#じゃない、みたいな印象を受けた。
用途的にはそれこそJavaScriptでも使えよ、って言われそう。

119:デフォルトの名無しさん
12/09/14 03:16:56.29
「独習C# 第3版」と「XAMLプログラミング WPFアプリケーションの概要と開発」を
読み終えたばかりの初心者です。これからWPFでちょっとしたツールから作り始めたいんですが、
スジのいいプログラマーになるために読んでおけって本があったら教えてください。
複雑なデータをクラスで表現する際の定石とか、C#4.0までの構文を反映した
デザインパターンなどを、実例やサンプルコードで学べるとかが理想です。


120:デフォルトの名無しさん
12/09/14 03:47:50.98
そんな本はない

121:デフォルトの名無しさん
12/09/14 09:02:46.17
良書は様々な言語に散らばっているので、本読んで腕の良いプログラマになりたければ読める言語を増やす
デザインパターンのような、どこの言語でも本質が変わらないような本は、コストの問題でわざわざ移植されない

プログラミング.NET Frameworkは読みましょう
あとエッセンシャルWPF
買う必要はないです

122:デフォルトの名無しさん
12/09/14 09:06:55.52
>>113
OS巻き込んで、って時点でドライバとか疑うでしょ

123:デフォルトの名無しさん
12/09/14 09:32:34.08
switch文で、各case内でローカル変数名がかぶるとおこられるのってなんで?
直すのめんどうだからブラケットでくくってるは

124:デフォルトの名無しさん
12/09/14 10:35:10.82
>>118
JavaScriptとASP.NETは全然全く違うぞ
ASP.NETのC#コードは常にサーバーで動く
それにASP.NETで重要なのはビューよりも裏方を普通のC#で書けること

>>123
なんでも何も、C系言語では基本的に { } で括った範囲がローカル変数のスコープ
caseはただのラベル

125:デフォルトの名無しさん
12/09/14 11:04:27.76
>>119
あえて言うならVisualC# 実践講座

126:デフォルトの名無しさん
12/09/14 13:07:31.27
switchはいい加減構造化するべき
Javaなんかに比べればC#はCの変なしがらみをだいぶ捨ててるのにもったいない
わざわざbreak必須にしたりするくらいなら
switch (x) { case (1) { … } case (2, 3) … default … }
こんなんにすればいいのに

127:デフォルトの名無しさん
12/09/14 13:31:50.60
今の
switch (x) { case 1: { … } case 2:case 3: … default … }
と殆ど変わらんじゃん

128:デフォルトの名無しさん
12/09/14 13:34:02.15
break書くのがめんどうってだけじゃないの?

129:デフォルトの名無しさん
12/09/14 13:37:41.10
>>127
ラベルで飛ぶっていう発想自体が前時代的でKY
On Error Gotoかよ

130:デフォルトの名無しさん
12/09/14 13:50:15.90
goto便利だけどなw

131:97
12/09/14 13:55:27.31
WinFormからWPFにソフトを移植したいんだけどデータ構造をどうすべきか悩んでいます
List<hoge1>.List<hoge2>
このようにListが入れ子構造になっているデータをTreeViewに表示しているんですが
これをWPFのTreeViewで双方向バインディングさせようとした場合
ObservableCollectionにする必要があるのですが、データ構造を変えてしまうと
このデータを使うあらゆるクラスで修正しないといけなくなると思うのですが
何かよい考えありますでしょうか?

132:デフォルトの名無しさん
12/09/14 14:00:20.77
内部のデータを直接UIからいじるのは良くないと思う
データを持つ層はきっちり分離しておいて、ファサードを通して
UIに必要なデータを都度コピーして出し入れするっていう発想で作るのがいいよ

133:デフォルトの名無しさん
12/09/14 14:14:06.65
基本的にGUIのデータはGUIで独自に持っといて、OKボタンとかでまとめて内部に反映させるのがいいよ
煩雑なようだけど実際その方がずっとやりやすい

134:97
12/09/14 15:46:01.32
>>132
>>133
よくあるサンプルコードだと実データをそのままバインディングしたりしているけど
それだとだめだったんですね
どうやら間違った理解をしていたようです
GUI側にデータを持たせるというのは、コードビハインドでGUI用のコレクションを作るということでいいですか?
一応WinFormではコードビハインドにTreeNodeコレクションを作っていました

135:デフォルトの名無しさん
12/09/14 18:24:03.43
逆じゃね
よくあるサンプルコードだと実データが無くてGUI用データだけなんでしょ

136:デフォルトの名無しさん
12/09/14 19:24:54.37
AwaiterのContinuation何回も呼び出すと最初からやり直し出すんだな
不思議

137:デフォルトの名無しさん
12/09/14 19:27:48.63
コンパイラ用って書いてあるじゃん
undocumented behaviorってやつだろ

138:デフォルトの名無しさん
12/09/14 19:33:09.61
ああそうなのか
ありがとう

139:デフォルトの名無しさん
12/09/14 19:39:05.12
いらないよ、お礼なんか

140:デフォルトの名無しさん
12/09/14 19:42:32.00
そうかVS2012EE出たんだっけか
忘れてたわありがとう

141:デフォルトの名無しさん
12/09/14 19:54:02.82
ExpressEditionでたの?!

142:デフォルトの名無しさん
12/09/14 20:00:14.32
出たら困るのか?

143:デフォルトの名無しさん
12/09/14 20:30:08.76
質問です。
GDI+とC#のgraphicsクラスの仕様は違うのでしょうか?

と言うのも、フルカラーPNG(32bitARGB)画像を重ねて表示するプログラムをC++からC#に移植したのですが、重ねる画像のアルファ値が保持されず、綺麗に合成されません。

対処方法、もしくは違うアプローチで画像を重ねる方法をご存じでしたら、回答よろしくお願い致します。

144:デフォルトの名無しさん
12/09/14 20:31:27.93
ソースプリーズ

145:デフォルトの名無しさん
12/09/14 20:37:40.27
>>144
ソースなければ答えられないバカは黙ってろ

146:デフォルトの名無しさん
12/09/14 20:39:54.32
全否定きたw

普段からあちこちでgraphics関連のソースを書いて提供してるんだけどな

で結論から言えばできないはずがないんだがおそらく指定するべき項目を指定してないから
思ったように動いてないだけなんだろうけどソースがわからないとミスが指摘できないので出してみればって
言っただけ

147:143
12/09/14 20:53:36.60
143です。

<C++>
Bitmap* m_pImgBack, m_pImgWork;
(上記2つはpng画像を読み込み済み)
CDC* pDC = GetDlgItem(IDC_IMAGE)->GetDC();
const HDC hDC = *pDC;
Graphics graphics(hDC);
//背景の表示
graphics.DrawImage(m_pImgBack, 0, 0, IMAGE_WIDTH, IMAGE_HEIGHT);
//透過処理を施して画像を重ねて表示
graphics.DrawImage(m_pImgWork,0,0,IMAGE_WIDTH,IMAGE_HEIGHT);

---

<C#>
(ImgWorkはBitmapクラス。png画像を読み込み済み)
Bitmap ImgBack = new Bitmap("back.png");
Graphics g = Graphics.FromImage(ImgBack);
g.DrawImage(ImgWork, 0, 0, IMAGE_WIDTH, IMAGE_HEIGH T);
//ピクチャーボックスに転送
this.picImage.Image = ImgBack;
-------

関係とは思いますが、CompositingQualityの設定では改善しませんでした。


148:デフォルトの名無しさん
12/09/14 20:58:39.07
>>146
最初からそう言えよ
ソース晒したところで答え無い奴が多いからな
そんな手間を取りたくないんだよ

149:デフォルトの名無しさん
12/09/14 21:02:22.68
何べんも聞き返す手間も取りたくねえんだよ鳥頭

150:デフォルトの名無しさん
12/09/14 21:06:37.38
DrawImage二回してるのと一回しかしてないの
GraphicsのDisposeをしてるのとしてないので違いがあるんでないか

151:デフォルトの名無しさん
12/09/14 21:09:12.60
PNG読み込んだときちゃんとARGBかPARGBになってるか

152:デフォルトの名無しさん
12/09/14 21:19:53.72
失敗する理由がわからんなあ
URLリンク(ideone.com)

読み込んでる画像フォーマットが片方アルファなしとかじゃないの?
URLリンク(www.dotup.org)
URLリンク(www.dotup.org)

名前変わってるけど上記画像をaaa.png bbb.pngに直して
デスクトップにおいて実行してみて

URLリンク(www.dotup.org)

153:デフォルトの名無しさん
12/09/14 21:24:07.51
あのクソで有名なImageListクラスを介してるとか

154:デフォルトの名無しさん
12/09/14 21:28:29.67
bmp1で読み込む方をアルファ抜きの24bitで保存して実行してみたけど問題なく合成される
逆をすれば当然bmp1が塗りつぶされる

ごく普通の動作

やっぱ自分は間違ってないと思ってるソース部分に罠があるはず

だからソース出せって言ってるのに

155:デフォルトの名無しさん
12/09/14 21:36:31.73
>>153
あれって色深度がおかしくなったような記憶がある

156:デフォルトの名無しさん
12/09/14 21:38:35.12
>>153
俺もそう思ったよ
ソースコードなんて無くても大抵それだと予測できる
ソースコード要求する奴は初心者


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