- C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
120 :デフォルトの名無しさん[]:2015/10/09(金) 03:17:38.95 ID:AWj2PSbP - あるクラスがあって、このクラスに継承可能で複数設定できる属性がつけられてる
このクラスを継承すると、その属性も継承するわけだが、属性は継承したくないんだ 継承したクラスで、元のクラスについてる属性消す方法ってないかな?
|
- C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
122 :デフォルトの名無しさん[sage]:2015/10/09(金) 03:42:47.55 ID:AWj2PSbP - >>121
属性そのものをいじりたいんじゃなくて、継承元クラスについてる属性を消したいんだよ その継承元クラスについてる属性のAttributeUsageはInherited=true, AllowMultiple=trueだが それを変えたいわけじゃない
|
- VB.NET質問スレ(Part42) [転載禁止]©2ch.net
616 :デフォルトの名無しさん[sage]:2015/10/09(金) 16:27:50.81 ID:AWj2PSbP - >>615
おれもそう思ってたんだが、それが明示されてるドキュメントがみつからん 2013で試してみたけど、拡張メソッドの定義そのものはできるな 呼び出そうとすると、Option Strict Onだとコンパイルエラー Offだと実行時エラー どうもObjectに対する未定義のメソッドはすべて遅延バインドだと解釈されるようだ 定義はできるみたいだから、C#とかからなら呼び出せるかもしれんが試してない >>608はどこでどううまくいかないのかわからんが、まあ、VB.Netではできないという結論 ObjectにLengthとかないから、おそらくOption Strict Offなんだろうな Onにしとく事をお勧めするぞ
|
- C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
124 :デフォルトの名無しさん[sage]:2015/10/09(金) 17:31:11.35 ID:AWj2PSbP - >>123
やっぱり無理か 読み取り側を変更するぐらいなら、渡すクラスも一から自作するわ なんでプロパティじゃなくて属性なんかで設定するようにしやがったんだろう なんとなく使い分けてるけど プロパティで実装するべきか、属性で設定するべきか、使い分けの指針とかあるのかな? 設定する基準がインスタンス単位かクラス単位か?
|
- C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
128 :デフォルトの名無しさん[sage]:2015/10/09(金) 21:25:12.13 ID:AWj2PSbP - >>126
メタ情報っていう用語も実際のとこ、俺にはちゃんと説明できない用語だが 単なるタグだっていうなら、動作に影響するようなものは属性で制御すべきじゃないのかと たとえば検証に関してなら、エラーメッセージは属性が適当かもしれんが 最大桁数や、エラーチェックするかどうかは属性で制御するのが適当だろうか? >>127 それはまさに、通常の情報なのかメタ情報なのかの違いだと思うが その意見は、メタ情報じゃなく通常の情報としてインプリメントしろって意見だろ
|
- C#, C♯, C#相談室 Part89 [転載禁止]©2ch.net
132 :デフォルトの名無しさん[sage]:2015/10/09(金) 21:57:49.30 ID:AWj2PSbP - >>130
なるほど、Enumのメンバー名がメタ情報だってのは理解できる 2重にメタデータもつなってのも納得した では、属性の使いどころはどこだろう 元の言語仕様でサポートされてない開発者独自のメタ情報の表現のため? じゃあメタじゃない情報を属性で扱うってのはやっぱり下策なのだろうか
|