トップページ⇒tech
1001コメント309KB

C#, C♯, C#相談室 Part71

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/03/24(土) 16:43:24.60
前スレ
C#, C♯, C#相談室 Part70
http://toro.2ch.net/test/read.cgi/tech/1327570969/

Visual Studio 2010 Express
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx
0348デフォルトの名無しさん2012/04/24(火) 13:08:47.83
黙れ
0349デフォルトの名無しさん2012/04/24(火) 13:44:40.95
中国の仕様がいまいちなので分割してChina#にしてくれ
0350デフォルトの名無しさん2012/04/24(火) 13:58:50.70
プロパティそのものを引数で受け取る関数を作りたいのですがどうすれば可能ですか
一応プロパティ名を文字列で受け取ってリフレクションで呼び出せたのですが、
もう一歩進んでプロパティそのものを受け取りたいです
0351デフォルトの名無しさん2012/04/24(火) 14:38:40.82
そういうことをできないようにしてトラブルを未然に防ぐためのプロパティ
ポインタで受け渡ししたいならフィールドにする
0352デフォルトの名無しさん2012/04/24(火) 14:39:27.39
PropertyInfo
0353デフォルトの名無しさん2012/04/24(火) 14:48:25.68
メソッドにしてデリゲートで受け取る じゃ駄目なの
03543502012/04/24(火) 15:13:25.63
いろいろ調べると言語仕様的にproperty delegateは無いですね...(- -メ
せめてプロパティ名の文字列を取得できませんか?
int SomeProperty {get;}
というプロパティがあったら”SomeProperty"という文字列が欲しいです。
ちなみにメソッドに変更は駄目です
0355デフォルトの名無しさん2012/04/24(火) 15:23:07.86
リフレクションで呼び出せたなら簡単だろ
PropertyInfoのメンバー情報見てみろ
0356デフォルトの名無しさん2012/04/24(火) 15:24:24.87
ふらっといけよ
初心者にレスすんなよ
03573502012/04/24(火) 15:31:03.95
>355
そういう意味ではなく。

void func (object obj, string name) {
 // リフレクションでプロパティの呼び出し
}

func (obj, "SomeProperty");

という風に呼び出す関数funcで文字列を使用すると
プロパティ名をリファクタリング(変更)した時に
IDEで切り替えられないから困るのです。
そうではなく、

func (obj, obj.SomeProperty);

みたいに使用するためにはどうすればいいですか、という話です。
0358デフォルトの名無しさん2012/04/24(火) 15:33:33.58
別にこのスレは初心者禁止ってわけじゃないのに何偉そうに言ってるんだ?
0359デフォルトの名無しさん2012/04/24(火) 15:38:29.54
昔いじめられたんだろう
0360デフォルトの名無しさん2012/04/24(火) 15:41:35.28
ここもふらっともそうだがもっと気持ちよく質問できるようにしようぜ
全知全能じゃないんだ 上級者でもわからないことだってあるだろう
0361デフォルトの名無しさん2012/04/24(火) 15:51:11.18
>>357の口のきき方がムカつく
03623502012/04/24(火) 15:53:50.58
>>358-361
わからないなら少し黙っていたらどうですか?今は私が質問しています。
0363デフォルトの名無しさん2012/04/24(火) 15:55:09.74
直接文字列つかうのがいやなら
プロパティ名を返すプロパティ作っといたら
0364デフォルトの名無しさん2012/04/24(火) 15:55:26.25
はい ごめんなさい
0365デフォルトの名無しさん2012/04/24(火) 15:55:31.02
誰か質問したら誰も発言したらいけないってルール2chにあったっけ?
0366デフォルトの名無しさん2012/04/24(火) 15:56:44.48
>>350
転載が集まるyahoo知恵遅れで質問したらよろしいのではないでしょうか?
03673502012/04/24(火) 15:58:53.20
>>363
リファクタリングすると言っているでしょう・・・・はぁ・・・。
もう少し待ってみます。
0368デフォルトの名無しさん2012/04/24(火) 15:59:43.95
2chにルールなんてあるわけない
無法地帯じゃん
0369デフォルトの名無しさん2012/04/24(火) 16:01:12.48
\           /     /. : : : : : : : :ヽ-‐.: :_;. --- .._: : : : : : : :\       \      /
_  争  も  _   /, -‐==ミ: : : : _,ィニ-‐……ー-: 、`ヽ、: : : : ヽ、      _   争   _
_  え  っ  _     . .:´: : : : : : : ≠:7: : : : : : : : : : : : :ヽ、 ヽ| : i : : :,     _    え   _
_   : . と   _   /.: : : : -‐: :7´: : /:,ハ : : : :ヽ : : : ゝ-- :\ | : :! : : : ,   _    :   _
_  :      _ /, -‐/.: : : : :i : : /ィ:爪: : :\ :\ : : :\: : :`ト : !: : : :′   _   :    _
             〃  /. : : : : : : |.:イ :ハ:| \: .、\: : xィ¬ト、: :| : : ! : : : : :,
/          \   /.: :/.: : : : /l : |/Гト、       / |_,ノ0:::ヽ : : :i : : : : :′ /        \
 /  |  |  \    | .:/.:/. : : :i: i : | |ノ0:::ト :::::::::::::   |: :∩::::::ト: : : !: : : : : : :,  / | | \
             ∨i: |: : : : |: :ヽ| |::∩::| ::::::::::::::::  !.::∪::::::| |: : :i : : : : : : ′            ,ィ /〉
               |: |: : i : :', : |  |::∪::| ::::::::::::::::  !: : : : : :||: : i : : : : : : : :,          / レ厶イ
                ヽハ: : :、: :ヽ|  l : : : |:::::  ,  ::::└――┘ ! : : i : : : : : : : ′        /   ⊂ニ、
                い、: :\/   ̄ ̄                 ', : : i : : : : : : : : ,     _, -‐'    ⊂ニ,´
    r 、  _          ヽ: :〈        <  ̄ フ         |: : : ! : : : : : : : :′,.-‐T   _,. -‐'´ ̄
    くヾ; U|           | : \                   /| : : :i : : : : :_, -‐'    |  /
   r―'   ヽ、             | : : : \               イ: : :| : : :i_,. -‐       |/
    `つ _   ̄ ̄Τ`ー―-- L: : : : : `: : . . .  __    .:〔: : :|: : :r┬'              |
0370デフォルトの名無しさん2012/04/24(火) 16:01:30.84
すいません質問です
何故これほど質問者が偉そうなのでしょうか?回答者は所詮ITドカタの奴隷なのでしょうか
0371デフォルトの名無しさん2012/04/24(火) 16:15:43.15
351が分かってもいないのに偉そうに答えたせいだよ
0372デフォルトの名無しさん2012/04/24(火) 16:16:36.29
>>357
クラスをPartialで分けて、リフレクションで取得したプロパティ名を直接ソースコードに書き込むツールを作るとかは?
ツールをコンパイル前のプリプロセスで実行するように指定しておけば問題ないと思う
0373デフォルトの名無しさん2012/04/24(火) 16:19:35.23
>>371
ドヤ顔レスがついたからって偉そうにしていいわけじゃないと思う
03743502012/04/24(火) 16:27:45.64
結論としては無理ですね
今のC#の限界というか何というか。
ググッてほとんど自分で結論を出してしまいましたが
書いて自分の考えをまとめる程度には役に立ちました
ありがとうございました
0375デフォルトの名無しさん2012/04/24(火) 16:41:35.13
結論:お前らは役立たず
0376デフォルトの名無しさん2012/04/24(火) 16:43:34.61
誰がインピオやねん
0377デフォルトの名無しさん2012/04/24(火) 16:45:12.85
>>375のように仕事の鬱憤をここを晴らすようなヤツ多いよな
0378デフォルトの名無しさん2012/04/24(火) 16:47:15.86
>>374 == >>377な気がしてならない
0379デフォルトの名無しさん2012/04/24(火) 16:52:00.98
違うよ、全然違うよ
0380デフォルトの名無しさん2012/04/24(火) 17:07:57.00
自分の無知をC#の限界とか言ってるのがムカつく
もう二度とくるなよ
0381デフォルトの名無しさん2012/04/24(火) 17:12:51.22
自分の無知は世界の限界だと思ってる人多いよ
主観的にはそれで問題ないし理解できないことは関係ない事とか相手は馬鹿とみなすとかよくあること
0382デフォルトの名無しさん2012/04/24(火) 17:25:05.42
一般的には正しいが
この問題に限って言えば>>374が正解
0383デフォルトの名無しさん2012/04/24(火) 17:31:05.08
結局言葉遣いの問題だと思うよ
0384デフォルトの名無しさん2012/04/24(火) 18:08:39.74
C#に限界なんてないよ
0385デフォルトの名無しさん2012/04/24(火) 18:11:35.51
PC自体に限界があるのに
0386デフォルトの名無しさん2012/04/24(火) 18:13:54.71
夢に限界なんてないよ
0387デフォルトの名無しさん2012/04/24(火) 18:17:10.74
しかし、できることを証明するためにはやってみればいいけど、
「こうこうこういうことはC#ではできません」ということを
上司に納得させるにはどうすればいいのかね。
はっきりできないと書いてあるMSの資料が運よく見つかればいいけど。
0388デフォルトの名無しさん2012/04/24(火) 18:53:58.46
できることをできないと嘘つくのやめるところから
マはすぐにできないって言うと思われてる
0389デフォルトの名無しさん2012/04/24(火) 19:17:33.04
>プロパティ名をリファクタリング(変更)した時に
>IDEで切り替えられないから困るのです。
俺にはこの文章が理解できないんだが、俺の頭が悪いの?
レイトバインディングしたいって話に聞こえるのけど、俺の理解力がたりないの?
Dynamicって使ったことないけどそれで解決しそうな気がするのは気のせい?
0390デフォルトの名無しさん2012/04/24(火) 19:29:37.30
(力量が足りなくて)出来ません
って素直に言えばいいってことか
0391デフォルトの名無しさん2012/04/24(火) 19:31:40.15
できないことに何からしら理由つけらなければ自分のプライドが保てないヤツ
0392デフォルトの名無しさん2012/04/24(火) 20:19:47.07
じゃやっといてね
0393デフォルトの名無しさん2012/04/24(火) 20:41:19.81
と言って定時で帰るヤツ
0394デフォルトの名無しさん2012/04/24(火) 20:44:26.07
>>357
ttp://d.hatena.ne.jp/griefworker/20091228/notify_property_changed
Expression使えばどう?
0395デフォルトの名無しさん2012/04/24(火) 21:37:46.63
>>394
これでいけるな。すげー

 static string GetName<T> (Expression<Func<T>> e) {
  var member = (MemberExpression)e.Body;
  return member.Member.Name;
 }

 var mat = new Material();
 mat.Color = 100;
 Console.WriteLine ("{0} = {1}", GetName(() => mat.Color), mat.Color);

ラムダ式を作らないといけないので()=>が少し冗長だけどぎりぎり許せるレベル
これは目から鱗が落ちる落ちる

0396デフォルトの名無しさん2012/04/24(火) 21:38:45.39
C#の限界なんていくらでもあるが、
この場合C#の限界というより、C#でそれをしようとするのが変、って感じはあるな。
0397デフォルトの名無しさん2012/04/24(火) 21:40:13.45
そうだな、なんていうかちょっと出来る出来ないと言うより、背景が知りたいわ。
ちと違う形で実現はできると思うんだけど、何かいまいち煮え切らない。
0398デフォルトの名無しさん2012/04/24(火) 21:41:14.26
C#スレは勉強になるなー
0399デフォルトの名無しさん2012/04/24(火) 21:43:05.60
背景は知らなくてもいいけどできるかできないかすぐ答えてくれるハイパーな神託機械がほしーな
0400デフォルトの名無しさん2012/04/24(火) 21:44:13.05
神託機械は欲しいが、俺たちは神託機械じゃなくて好奇心のある動物なので。
0401デフォルトの名無しさん2012/04/24(火) 21:44:52.28
C#「限界じゃないのに」
0402デフォルトの名無しさん2012/04/24(火) 21:46:16.30
ぎぶあっぷ
04033502012/04/24(火) 22:41:54.93
>>397
3Dのゲームエンジンというか描画ライブラリを作ってるんよ
プログラム中に存在する「プロパティ」は全て何でも
GPU側にシェーダーUniformとして転送するようにエンジンに「バインド」できるようにしたい
プロパティを文字列で指定するとリファクタリングできなくなって困る(100〜200はあるので)
もっとタイプセーフな方法を探していた

>>395の方法が良さそう
0404デフォルトの名無しさん2012/04/24(火) 22:49:41.78
はあ、さいで
0405デフォルトの名無しさん2012/04/24(火) 23:02:57.36
>>403
もう黙ってろよ、お前の文章の書き方ムカつくんだよ
0406デフォルトの名無しさん2012/04/24(火) 23:25:02.30
何なのいきなり
0407デフォルトの名無しさん2012/04/24(火) 23:48:09.97
>>389
例えばINotifyPropertyChanged実装してると
public string Hoge {
 get { return _hoge; }
 set {
  _hoge = value;
  OnPropertyChanged("Hoge");
}
}
こんな風に書くと思うけど、これでプロパティ名HogeをPiyoに変えても
"Hoge"って文字列で指定している部分までは変わらないから困ったな、ってことでしょ。
0408デフォルトの名無しさん2012/04/25(水) 00:10:11.96
民主党が世界にばら撒いた30兆円の内訳
http://engawa.2ch.net/test/read.cgi/poverty/1335236453/


・約5000億円の債権のうち3000億円強を段階的に放棄
・6000億円かけ、メコン地域のインフラ整備
・チュニジアに211億円支援
・インドに7,800億円支援表明
・中国に7,800億円支援表明
・ASEANに2兆円支援
→・韓国にスワップ支援約5兆3,600億円
・発展途上国に1,600億円支援
・アフガニスタンに4500億円の民生支援継続を表明
・発展途上国の温暖化対策に8,000億円の支援
・中国の毒ガス処理を再開 総額数十兆円(年間1兆円で20年以上)
・途上国支援・環境分野の基盤整備に4,900億円融資
・パキスタン支援に約1000億円を約束
・IMFへの最大1000億ドルの資金支援
・ラトビアから排出枠150万トン購入
・インドネシアに約360億円の円借款
・メコン川流域5カ国に5,000億円支援
・アフガニスタンの復興支援に4,500億円支援

http://matome.naver.jp/odai/2133501991804400101
0409デフォルトの名無しさん2012/04/25(水) 00:25:42.42
ネトウヨ王に、俺はなる!まで読んだ。
0410デフォルトの名無しさん2012/04/25(水) 03:17:21.97
ネトウヨさんとまで読んださんが同一人物に思えてきた
0411デフォルトの名無しさん2012/04/25(水) 08:37:35.98
3DエロゲはMSAAを有効にしておかないと女体がジャギってて萎えるから
MSAA有効時に3D性能が大きく下がるIntelオンボはそもそも向いてないよ
0412デフォルトの名無しさん2012/04/25(水) 12:33:56.46
最初から同一人物だと思ってたけど違うのか
0413デフォルトの名無しさん2012/04/25(水) 14:53:05.40
C# 5.0 だと Caller Info 属性がつかえるよ
http://d.hatena.ne.jp/okazuki/20120301/1330624028
0414デフォルトの名無しさん2012/04/25(水) 16:01:35.27
それCallerの名前だけでプロパティの名前は取得できなくね?
0415デフォルトの名無しさん2012/04/25(水) 17:00:51.08
プロパティのgetterに仕込んでプロパティの名前を保持するプロパティ作ればいいんじゃね
0416デフォルトの名無しさん2012/04/25(水) 18:31:46.16
リフレクション使えば良いんじゃね?
0417デフォルトの名無しさん2012/04/25(水) 18:45:10.98
マホカンタ
0418デフォルトの名無しさん2012/04/25(水) 20:31:15.65
アバカム
0419デフォルトの名無しさん2012/04/26(木) 02:33:11.31
お前らの知能指数はいくらだ
0420デフォルトの名無しさん2012/04/26(木) 03:52:20.57
0
0421デフォルトの名無しさん2012/04/26(木) 10:46:55.30
IQ1300!
0422デフォルトの名無しさん2012/04/26(木) 14:11:18.99
Vusial Studio 2010 C#にて、
Windows7のAeroのウインドウ枠のように
フォームの後ろの画像をぼかす(透かす?)
をフォーム全体に反映させることはできますか?
WPFアプリにすればいいのかな?
0423デフォルトの名無しさん2012/04/26(木) 14:24:07.91
「デスクトップ ウィンドウ マネージャを使用して特殊効果を施す」
0424デフォルトの名無しさん2012/04/26(木) 14:54:54.60
>>423でぐぐって出てくるAPIをP/Invokeするしかないんかな

Windows API CodePackには入ってなかったっけかな
0425デフォルトの名無しさん2012/04/26(木) 15:10:25.85
http://ideone.com/F0a4x
0426デフォルトの名無しさん2012/04/26(木) 15:11:49.71
透かすだけなら簡単だけどね
0427デフォルトの名無しさん2012/04/26(木) 15:57:14.81
戦後教育を受けた60代50代はホント糞!糞糞糞!
愛国心の欠片も全くないから、無自覚に売国できる
ま、そんな下地を作ったのはアメリカなんだけどな

アメリカの日本人骨抜き戦略大成功!

日教組、民主党、NHK、電通、スパイまみれのマスゴミ全般、みんな死ね!!
0428デフォルトの名無しさん2012/04/26(木) 17:51:42.65
その上にテキストを書こうとか考えるとまた面倒くさい
ボタン一つでもな
0429デフォルトの名無しさん2012/04/26(木) 18:42:04.03
ControlのBackColorやTransparentにある値を入れると半透明になる とか変えてくれないかな
(範囲内の)既存のControlをすべて書き直すのは大変すぎるよ
0430デフォルトの名無しさん2012/04/26(木) 19:04:57.70
ルチ将軍、でしたっけ?
0431デフォルトの名無しさん2012/04/26(木) 20:08:54.18
WindowsってなんでUIをカスタマイズしようと思ったら凄まじくハードル高くなるんかね
Appleに追い越されて如何にUIやデザインが重要かわかったからこそのWin8なんだろうし、もっとUIのカスタマイズを馬鹿でもできるように簡単にしてほしいわ
0432デフォルトの名無しさん2012/04/26(木) 20:18:05.38
次期VSはEE版じゃフォームアプリ作らせないんだし今更覚えたって無駄無駄無駄
0433デフォルトの名無しさん2012/04/26(木) 20:40:23.18
VS2010のまま停滞する人とか出てくるんだろうな(俺もそれで十分だと思ってる
0434デフォルトの名無しさん2012/04/26(木) 20:49:21.46
XPが終わるのに?
0435デフォルトの名無しさん2012/04/26(木) 21:02:30.18
7でも8でもフォームアプリは、動くだろ。
0436デフォルトの名無しさん2012/04/26(木) 21:08:18.49
そんなダサいGUI誰が使いたいと思う?
お前は95の頃のGUIデザインでも満足できるの?
0437デフォルトの名無しさん2012/04/26(木) 21:11:20.96
満足できるかどうかは、それを求めるかどうかによるものでおまえが決めることではないな。
0438デフォルトの名無しさん2012/04/26(木) 21:12:44.09
未だにCUIが生きてるのに何を
0439デフォルトの名無しさん2012/04/26(木) 21:21:08.18
延命しやすいのはBMPかなんかでスキンファイルを作って適用とかか
その時代の見た目にだけでも変えてやればなんとか
0440デフォルトの名無しさん2012/04/26(木) 21:36:54.18
>>437みたいに主観ですべてを断じようとする奴っているよな・・・

そういう論法で何かモノを言われても、
ああ、あなたの世界はあなたが五感で認識できる範囲に収まってしまうんですね、と思うと
途端にその人が言っていることが頭に入ってこなくなる。
0441デフォルトの名無しさん2012/04/26(木) 21:40:48.07
貴方がどう思おうがそれは貴方の勝手ですご自由に
0442デフォルトの名無しさん2012/04/26(木) 21:41:57.08
だから使いたいやつが使えば良いだろ。
それ以上でもそれ以下でもないわw
0443デフォルトの名無しさん2012/04/26(木) 21:51:45.58
これから長生きするのはWPF?
0444デフォルトの名無しさん2012/04/26(木) 21:55:23.77
WPFはどうも長生きする気がしないんだよなあ。
なんでだろう。
0445デフォルトの名無しさん2012/04/26(木) 22:00:28.52
はっきりいって
Formsとベクトルが違うだけで野暮いのが変わってない
0446デフォルトの名無しさん2012/04/26(木) 22:01:30.90
>>444
いずれは、フォーム捨ててWPFというのは、わかるのだが、
どうにもWPFは、まだ始まっても居ない気もする。
まだいろいろあいまいなところがあって、過去資産を活かせないところとか、
わざわざ作り直さないといけない=コストが掛かるとか、そこらへんの問題もあるし、
あいまい故、まだ解説が少ないという面もあるのかもしれん。
0447デフォルトの名無しさん2012/04/26(木) 22:07:55.61
>>445
野暮い、というのは?見た目?実装?
0448デフォルトの名無しさん2012/04/26(木) 22:09:06.45
小物ツール作る人用のGUIは残しておいてほしいよね
ちょっとリネームするとか、ファイル仕分けするぐらいのものに
WPF使うのは面倒
■ このスレッドは過去ログ倉庫に格納されています