ふらっとC#,C♯,C#(初心者用) Part37at TECH
ふらっとC#,C♯,C#(初心者用) Part37 - 暇つぶし2ch724:デフォルトの名無しさん
09/02/21 06:07:34
System.Diagnostics.FileVersionInfo.GetVersionInfo で取得出来ないバージョン情報はどうやって取得すればいいんでしょうか?
例えば、火狐のBuildIDとかです
WinAPIなら取得出来るんですけど・・・

725:デフォルトの名無しさん
09/02/21 11:23:00
>>724
ならAPI使えばいんジャマイか

726:デフォルトの名無しさん
09/02/21 12:21:39
int a = new int();
a.ToString;

(new int()).ToString;
とかくことはできますか?

727:デフォルトの名無しさん
09/02/21 12:25:31
何故自分で試してみない

728:デフォルトの名無しさん
09/02/21 12:25:46
できるけど0.ToString();と同じだよ

729:デフォルトの名無しさん
09/02/21 12:26:24
書ける

730:デフォルトの名無しさん
09/02/21 12:29:43
この場合どうやってインスタンスにアクセスするんですか?
デリゲートがなければ行方不明になる書き方のようなきがするんですが

731:デフォルトの名無しさん
09/02/21 12:31:24
usingは名前空間を省略するできるようにするためにあるんですよね?
Dispose() メソッドが呼び出されるように書く為とはどういうことですか?

732:デフォルトの名無しさん
09/02/21 12:37:24
>>730
アクセスできない
実際行方不明になる
>>731
using (Bitmap bmp = new Bitmap(width, height)) { bmpに対する処理 }
と書くとスコープを抜けたときに自動的にbmpがDisposeされる
たまたま同じusingキーワードを使ってるだけで全くの別物

733:デフォルトの名無しさん
09/02/21 12:38:01
名前空間省略に使うusingとDisposeの方は全く別物
URLリンク(msdn.microsoft.com)(VS.80).aspx

using(obj)
{
ウントカカントカ
}

って書くとスコープを抜けるときにDisposeを呼ぶ。
ダック…ではなかったような気がする。

734:デフォルトの名無しさん
09/02/21 12:44:59
ありがとうです。
それってDisposeを呼べば済むことじゃないんですか?
わざわざ紛らわしい名前を付けてまで自動的に呼ばれるようにする理由はなんですか?

735:デフォルトの名無しさん
09/02/21 12:46:16
>>733
thx読んできます

736:デフォルトの名無しさん
09/02/21 12:46:58
Disposeって書きたくないから
スコープを分離するため

737:デフォルトの名無しさん
09/02/21 12:48:12
>>734
Disposeを呼ぶときはかならずこういう風に書く必要がある
try { objを使う } finally { obj.Dispose(); }
こうしないと例外が発生したときにDisposeが呼ばれない
毎回こんなの書くのは面倒だから

738:デフォルトの名無しさん
09/02/21 12:49:01
しかしまあ確かに別の機能をなんで同じ名前にしたのかは謎だわな・・・

739:デフォルトの名無しさん
09/02/21 12:51:25
>>737
なるほど、deleteをデストラクタに書くようなものですね。
理解できましたありがとうございました。

740:デフォルトの名無しさん
09/02/21 13:16:54
C++って例外の時デストラクタ呼ばれたか?

741:デフォルトの名無しさん
09/02/21 13:25:04
その点については、C++/CLIはとっても楽。

742:デフォルトの名無しさん
09/02/21 13:45:00
>>725
API使おうと思ってググってみると頭おかしいんじゃないかって人のページに当たるので躊躇ってました
昨日からC#触り始めましたがC++先にやったからなのか痒いところに手が届かないことがしばしばありますね
C#はもうちょっと時間が経ったあとにやってみます
ありがとうございました

743:デフォルトの名無しさん
09/02/21 14:38:53
>>740
れる。

744:デフォルトの名無しさん
09/02/21 16:18:42
というか finally が仕様にないので呼んでくれないと
駄目という大前提が


745:デフォルトの名無しさん
09/02/21 16:20:22
finallyも必ず呼ばれる保証は無かったりする

746:デフォルトの名無しさん
09/02/21 16:24:55
public bool this[int cols, int rows] { get; set; }
このthisはどういう意味なんですか?
bool型変数thisの動的配列ってことですか?
動的でいいんでしょうか?

747:デフォルトの名無しさん
09/02/21 16:26:30
>>746
indexer

748:デフォルトの名無しさん
09/02/21 16:26:49
それはインデクサ

get;set;ってあるとこからプロパティだと推測しろ

749:デフォルトの名無しさん
09/02/21 16:27:57
>>745
StackOverflowExceptionがそうなのだけど、
CLR2.0からはcatchも出来なくなったからもうどうでもいい。

750:デフォルトの名無しさん
09/02/21 16:31:29
CriticalFinalizerObject使うのが確実らしいよ

751:デフォルトの名無しさん
09/02/21 16:45:46
まあ、例外処理は、正規のロジックを分離するのが本分であって、予想外の事態に対処するってのは
使い方が違うからねえ。

752:デフォルトの名無しさん
09/02/21 17:11:22
WebClientクラスのUploadFileメソッドはファイルのみFTPに転送できて、フォルダは転送できないのでしょうか?
フォルダを転送するにはどんな命令を使えばいいですか?

753:デフォルトの名無しさん
09/02/21 17:13:43
UploadFolder

754:デフォルトの名無しさん
09/02/21 17:20:49
ありがとう
インデクサわかりました
クラス = {1,2}
としてあればインデクサで指定してある方法で代入とかできるんですね
でもフィールドが2つあったらどっちに代入されるんですか?

755:デフォルトの名無しさん
09/02/21 17:26:08
それはコレクション初期化子といって,インデクサとは関係ない
var list = new List<int> { 1, 2 }; は
var list = new List<ind>(); list.Add(1); list.Add(2);と同じ

756:デフォルトの名無しさん
09/02/21 17:27:04
だから、thisという特別な名前しかインデクサには使えないのさ。

757:デフォルトの名無しさん
09/02/21 17:33:05
わかりました。インデクサって中でフィールドに代入する実装を書かなきゃいけないんですね
一番上のフィールドに自動的に入るとかかと思いました。ありがとうございました

758:デフォルトの名無しさん
09/02/21 17:43:42
>>757
ひょっとして、プロパティに関して自動プロパティしか知らない?
堅気のプロパティを知ってから自動プロパティを使った方が良いよ。
public int A{get; set;}
みたいなのしか書いた事ないなら、
private int a;
public int A{get{return a;} set{a=Value;}}
をまず知っておくべき。

759:デフォルトの名無しさん
09/02/21 18:02:08
>>753
WebClient wc = new WebClient();
wc.UploadFolder(?);
としようにもUploadFolder自体がWebClientの定義に含まれていないとエラーが出たんですが、どういうことですか?

760:デフォルトの名無しさん
09/02/21 18:05:17
フォルダはアップロードとかいう類のもんじゃない
FTPならMKDコマンドか、WebClientで使えるのかな

761:デフォルトの名無しさん
09/02/21 21:08:28
環境はVisualStudio2005です。
ジェネリックコンテナのListやDictionaryで、
C++のstlにあるfront()やback(),
リバースイタレータの機能ってどうやって使うのでしょうか。

762:デフォルトの名無しさん
09/02/21 21:13:52
Dictionaryには順番という概念がないので無意味
リンクリストはLinkedList<T>
逆順に列挙するにはforeach (var item in ((IEnumerable)list).Reverse())のようにする(LINQ)

763:デフォルトの名無しさん
09/02/21 21:23:22
ふむふむ。Dictionaryてハッシュなのですね。
C#で二分木に相当するコンテナってのはあるんでしょうか。

764:デフォルトの名無しさん
09/02/21 21:24:51
iterableじゃなくてenumerableで、概念上はforeachの中身は各要素に対して一回だけ
実行されて順番は未定義、foreachの中身は可換な操作のみ可、であるはずなのに、
何故かEnumerable.Reverse()がある不思議。実用上は仕方がない事とは言え。

俺としては、本当に順番は未定義にして、foreachの中身が可換な操作の場合のみ結果が
定義されるとした上で、並列実行なんかをサポートしてくれた方が嬉しいんだが・・・

まあ、内部的にIEnumeratorのMoveNext()使っている限りはどうしようもない望みなわけだが。

765:デフォルトの名無しさん
09/02/21 21:37:50
SortedDictionaryとかは内部的に二分木のはず。


766:デフォルトの名無しさん
09/02/21 21:46:12
>765
おお、ありがとうございます。
でも、先頭要素や末尾要素の取得が出来ません。
MSDNみてるとExtensionのメソッドというので取得できるみたいですが・・・
URLリンク(msdn.microsoft.com)

このExtensionのメソッドってどうやれば使えるのでしょうか。
インテリセンスでは出てこないので、何かしなきゃいけないみたいで・・・。

767:764
09/02/21 21:48:25
そういえば、Enumerable.Reverse()の実装をリフレクタで見てみたら、一度全部列挙して
配列にコピーする鬼実装になっていたような気がする。LinkedListが泣いている・・・


768:デフォルトの名無しさん
09/02/21 21:48:56
SortedListはインデックスで要素取得できるからそんなのいらない
Reverseなどはusing System.Linq;をファイルの先頭に追加すると使えるようになる

769:デフォルトの名無しさん
09/02/21 21:51:26
>767-768
(;´Д`)もしかして、stl使ったほうがよさげ?

770:764
09/02/21 21:59:10
>766
「拡張メソッド」の訳をさぼったっぽい。
System.Linq.Enumerableクラスの一連のメソッドは第一引数が
this IEnumerable foo
ってなっていて、実際にはIEnumerableを実装しているクラスノインスタンスメソッドのように
使える。C++のSTLで言う「アルゴリズム」みたいなもの。IEnumerableを実装していればみんな
同じ事ができる。ただし、内部的にIEnumeratorを使った列挙にまで落とし込まれるので、
>>767
に書いたみたいに順序付けられて先頭と末尾を持つコンテナの特性は活かされない。

>>768
SortedListはインデックスがある分、要素の追加がO(n)かかる。

実は、本当の意味での二分木ってないんだよね。

SortedDictionary:内部構造は二分木なのにバイナリサーチがない(あれば先頭、末尾を
取得するメソッドがなくても最悪O(logN)で先頭、末尾に辿り着ける)
List, SortedList:バイナリサーチあり。ただしインデックスを持っているので追加、削除
にO(N)かかる。

orz

俺は、スキップリストを自分で実装して二分木の代わりに使っている。確率的アルゴリズムで
もって局所的な操作を行っても平衡二分木状である事が保障され続けるナイスなデータ構造。

771:デフォルトの名無しさん
09/02/21 22:15:06
Microsofot公式の本でも紹介されていたけど、
WintellectがいろいろSTL風のコレクションを作っているらしい。
URLリンク(d.hatena.ne.jp)

772:デフォルトの名無しさん
09/02/21 22:17:51
あ、SortedDictionaryのバイナリサーチがないってのは、IEnumerableに対する
System.Linq.Enumerable.First拡張メソッドを使っても二分木構造が活かされないって意味ね。
キーが既に含まれているかどうかのバイナリサーチは(拡張メソッドじゃなくて)クラスのメソッド
として実装されている。でも、それじゃ役に立たない場面が多い。


773:763=766=769
09/02/21 22:27:41
皆さんありがとうごさいます。
拡張メソッドも、STLもC#2.0では使えないようなので、
今ある機能で間に合わせることにしました。
先頭要素の取得は↓のような感じで。

SortedDictionary<Key, Value>.Enumerator e = contaner.GetEnumerator();
e.MoveNext();
return e.Value;

でも、なんかもやもやする・・・

774:デフォルトの名無しさん
09/02/21 22:32:56
あ、SortedList.Enumeratorの実装次第では、System.Linq.Enumerableクラスが
拡張メソッドとして提供するFirstメソッドは高速(少なくともO(log N)、最初のノードを
内部で保持していればO(1))である可能性があるね。その代わりLastは内部で全部列挙
しやがるんだろうなあorz

775:デフォルトの名無しさん
09/02/21 22:35:03
>>773
大丈夫、拡張メソッドFirstの内部実装はそれだ。で、Lastの内部実装は>>774だ。
でも、そんなにSTLやアルゴリズムが好きなら、LINQ to Object(さんざん出ている
System.Linq.Enumerableクラスが提供する拡張メソッドのことね)は確実に
気に入ると思うよ。まだまだ足りない物は確かに多いんだけど。

776:デフォルトの名無しさん
09/02/21 22:52:57
LINQ to Objectは気にいりそうな気がしますが
VS2008からみたいなので諦めます。

でもListの末尾要素を順序探査して拾うってのは、
ちょっとひどいような(;'A`)

将来的には改善されるとは思うので、
LinqがあるVS買ったら書き換えるようにします。

777:デフォルトの名無しさん
09/02/21 23:09:02
>>773
ねえ、それで、「順序に関する」最初の要素ってちゃんと取得できてる?
気になってリフレクタでSortedDictionaryの実装を見てみたんだけど、
内部でTreeSet<T>っていうinternalクラスを使っているのね(赤黒平衡木っぽい)。
で、GetEnumeratorするとこのTreeSetのGetEnumeratorに丸投げされて、
ResetしてMoveNextしてCurrentを参照するとルートノードが返される実装になって
いるっぽいんだが。

このTreeSet<T>をpublicにしてくれれば>>773のもやもやも解消するだろうになあ。
これはモノホンの平衡二分木になっている。それで、
InOrderTreeWalk(TreeWalkAction<T> action)
ってメソッドがあって、どうやら、条件式によって[a,∞)の形の区間を指定してその区間
に含まれる最初のノードを探索してくれるみたい。ただし、結局逆順の探索は実装されて
ない。orz.

>>776
Express Editionは無料ですよ。確か2005と共存もできるし。とりあえず入れて見たら?
業務での開発?

778:777
09/02/21 23:11:09
あ、問題ないみたいだ。ごめん。左に左にと進みながらスタックにpushしている。

779:デフォルトの名無しさん
09/02/21 23:18:51
>777
趣味の開発なのですが、Expressエディションだと
クラスデザイナが使えないようなので手をだしてません。
リファクタ機能とクラスデザイナの使い心地試すのを
第一優先でC#に手をだしてるものでして・・・。


780:デフォルトの名無しさん
09/02/21 23:42:46
Expressにリファクタ機能ないんだ!!

781:デフォルトの名無しさん
09/02/21 23:49:43
あるよ

782:デフォルトの名無しさん
09/02/22 01:18:03
手元のC#2008EEだと、
リファクタ(R) → 名前の変更, メソッドの抽出
しかないな。
インテリセンスはちゃんと効くけど

783:デフォルトの名無しさん
09/02/22 01:27:48
Enumerableの実装がどうこうとか言っている暇があったら、
自分で(拡張メソッドを)オーバーロードすればいいのに

まあ、これくらい標準で用意してくれという意見なら賛成するが

public static ListEx {
  public static T First<T>(this IList<T> list) { return list[0]; }
  public static T Last<T>(this IList<T> list) { return list[list.Count - 1]; }
  public static IEnumerable<T> Reverse<T>(this IList<T> list) {
    for(int i = list.Count - 1; i >= 0; i--) yield return list[i];
  }
}

784:デフォルトの名無しさん
09/02/22 01:32:56
拡張メソッド使えるなら、全部あるよ。
URLリンク(msdn.microsoft.com)(VS.95).aspx

785:デフォルトの名無しさん
09/02/22 01:43:57
>>782
それだけあれば十分じゃね?
つか、それしか使ったことない気がする

786:デフォルトの名無しさん
09/02/22 01:51:09
>>784
そうじゃなくて、IEnumerable<T>を想定した(汎用的で効率の悪い)実装ではなく、
IList<T>、etc. 専用に効率の良い(かもしれない)実装**も**用意してくれという話

てか、最初の単語くらいは見てくれよw

787:デフォルトの名無しさん
09/02/22 06:25:47
>>783
もちろんそれで良いんだけど、まさに、「標準で用意してくれ」って意見なんだよね。
それと、SortedDictionaryだと>>773みたいに列挙の必要はないのにEnumerator
をとることになって格好悪い。

具体的には、IEnumealeは順序を保証しない列挙に特化(Reverse, First, Lastなし, その代わり
foreachの並列実行サポート)して、IOrderedEnumerableみたいなインタフェースを追加する。

こいつには順序に従った区間(-∞,a]と等価なbool値デリゲートおよび探索開始ノードを取るLast,
順序に従った区間[a,+∞)に等価なbool値デリゲートおよび探索開始ノードを取るFirst, 及び順序に
従って前方、後方に移動できるIOrderedEnumeratorを与えるGetOrderedEnumeratorメソッドが
あって、順序があって先頭・末尾があるコレクションはこいつで表現される。そんでもって標準で
拡張メソッドで``アルゴリズム''を提供する。これが一番みんなが幸せになれるんじゃないかな。
LINQに慣れると、標準での汎用的なインタフェースへの拡張メソッドの提供という事の便利さが
身に染みる。

>>771も気になるけれど、IEnumerable<T>, IList<T>, ICollection<T>インタフェースへの
拡張メソッドによる実装なので、ツリー状の構造を活かしたバイナリサーtはなくって、IList<T>
のインデックスベースのバイナイサーチしかないみたい。それはそもそもList, SortedListにはある
以上魅力に乏しいよなあ。


788:デフォルトの名無しさん
09/02/22 06:48:47
ああ、IOrderedEnumeratorなんて作らなくても、ノードを与えて、前方、後方のノードを取得する
forward, BackメソッドをIOrderedEnumerableに含めれば良いのか。ますますSTLっぽくなってきた。

インタフェースの設計って難しいなあ。だから標準で(略)

789:デフォルトの名無しさん
09/02/22 11:15:26
実際FirstとかElementAtとかToArrayなんかはIList<T>の場合は特別扱いされるから
余計な心配はいらないよ
ソース読めばわかる

790:デフォルトの名無しさん
09/02/22 11:25:41
各要素の値を見る必要のないメソッドはすべてIList<T>に対して特別に最適化されてるみたい

791:787
09/02/22 12:52:08
どうにかして欲しいのはSortedDictionaryやLinkedListなんだ~~~。
と叫んでみる。順序と特別な探索の方法を持つデータ構造を活かす汎用的な
(C++の``アルゴリズム''的な)方法がないんだよ。
 
IList, IList<T>だったらそりゃ特別扱いもされているし、>>783のコードでも、
>>771のライブラリでも良い。
 
ただ、>>773のFirst()のコードは>>778によって、ルートからの探索でO(logN)で先頭ノードに
辿り着くので二分木の構造は結局活かされるみたいね。これはLINQの実装そのものだからLINQ
でも同じ。

792:デフォルトの名無しさん
09/02/22 13:32:49
いまcsvを読んでDataGridViewに表示しています。
さらに、csvのある項目から文字列を複数個生成し、それをArrayListに入れています。
そのArrayListをさらにFormのメンバ変数のArrayListに入れています。

「DataGridViewの1行のデータ」を使用するときは、表示されている情報のほかに、
上記のArrayListの文字列も使いたいのです。
今は選択された行のindexから、メンバ変数のArrayListからその行のArrayListを取り出して使っています。

これで動いているのでいいんですが、
たとえばDataGridViewの1行に直接不可視のカラムでArrayListを追加できれば、メンバ変数で別途管理しなくてもすむと思うんですが、
DataTableのColumnのAdd()で指定するDataTypeにはArrayListがありません。

こんなように、DataGridViewには非表示で、1レコードに紐付けて管理したいListやCollection等があった場合、
みなさんどう管理しますか?

793:デフォルトの名無しさん
09/02/22 16:19:20
Tag

794:デフォルトの名無しさん
09/02/22 16:54:16
PropertyGridと同じように普通にBrowsableAttributeが使えると思うんだけど、
そういうことじゃないのかね。

ほとんどDataGridView使ったことないもんで勘違いだったらすまんが。。

795:デフォルトの名無しさん
09/02/22 19:00:45
Visual C# Expressをインストールしました。
MS-DOSで.csファイルをコンパイルしようとしたけど出来ませんでした。
Pathが通っていないからだと思い、csc.exeを探したのですが見当たりませんでした。

796:デフォルトの名無しさん
09/02/22 19:03:37
それなら多分 .NET Framework を入れるだけでよかったのかも
PATH は \WINDOWS\Microsoft.NET\Framework\v2.0.50727

797:デフォルトの名無しさん
09/02/22 19:06:42
Visual Studio Toolsのコマンドプロンプトからやってみて

798:デフォルトの名無しさん
09/02/22 19:08:50
>>795
%frameworkdir%\%frameworkversion%にある
そんな環境変数見当たらなければ、%windir%\Microsoft.NET\Framework\v2.0.50727

799:デフォルトの名無しさん
09/02/22 20:26:57
XMLで出力されるドキュメントコメントをHTML形式とかで見るいいツール知らないでしょうか。
ndocとかいうのがぐぐるとひっかかったのですが、 2008では使えないみたいで。


800:デフォルトの名無しさん
09/02/22 20:32:56
Sandcastleとか

801:デフォルトの名無しさん
09/02/22 20:32:59
オナこいてる方も、女とやってる方も教えてくんろ

他アプリケーションのコントロールのハンドルを取得して、
そいつにPostMessageなんぞ使って、
要するにそのアプリをコントロールしたいんだわ

ところが、
SunAwtFrame
ってウインドウクラスのコントロール達の
ハンドルが取得できないどころか探せすらできない。
Spy++で見ても親ウインドウしか見つからない・・・。
これってJavaのクラス?
なんか良い方法はないでしょうか?

802:デフォルトの名無しさん
09/02/22 20:34:40
ほぼsandcastle一択。
素のままで使うのは大変なのでsandcastle help file builderをフロントエンドとして使うのが良い。

803:デフォルトの名無しさん
09/02/22 20:37:03
javaのコントロールってウィンドウハンドル持ってないんだっけ?
それならウインドウの中身を一枚の絵として描いてるだけなんだからどうしようもない

804:デフォルトの名無しさん
09/02/22 20:39:30
同じようなもので、IE のウィンドウがある。あれも一枚絵。

だけど、IE のウィンドウについては IHtmlDocument インターフェイスが用意されてる。
Java(Awt) に同じようなものがあるかは知らん。

805:デフォルトの名無しさん
09/02/22 21:23:46
>>798
というか今いれてという話なら 2008 じゃないかって気がするから
v3.5 の下だと思う > csc.exe

806:797
09/02/22 21:25:33
無視すんなコラ

807:デフォルトの名無しさん
09/02/22 21:25:46
よくわかってない人が来ました。

808:デフォルトの名無しさん
09/02/22 21:30:55
>>806
たしかVC++以外のエクスプレスには無かったはず。

809:デフォルトの名無しさん
09/02/22 21:34:33
>>803,804

おまえらありがと
ちょっくら違う手を考えてみる

810:デフォルトの名無しさん
09/02/22 22:14:59
>>802
質問者じゃないけど、これ知らなかった
今インストールして試してみたが、便利だな
利用させてもらうよ

811:デフォルトの名無しさん
09/02/22 22:25:01
>>810
コンソール版も同梱されているので、VisualStudioの外部ツールに
タイトル:Sandcastle Help File Builder
コマンド:C:\Program Files\EWSoftware\Sandcastle Help File Builder\SandcastleBuilderConsole.exe
引数:$(ProjectDir)$(TargetName).shfb
"出力ウィンドウを使用"にチェック
"起動時に引数を入力"にチェック
って感じで登録しておくと便利。

812:デフォルトの名無しさん
09/02/22 22:27:43
すげえええええええ

813:799
09/02/22 22:54:53
>>800, >>802
sandcastle使ってみました。
感動した。

ありがとうございます。


814:デフォルトの名無しさん
09/02/22 22:59:13
SandCastle使うと自分が適当に作ったライブラリが標準のライブラリと対等に見える不思議。
PresentationStyleはvs2005にするとMSDNと似たフォーマットになるよ。


815:デフォルトの名無しさん
09/02/23 00:22:45
C#2.0で質問です
親 ClassA→ClassB→ClassC 子
とクラスを継承していて、ClassCはインスタンスも生成でき、ClassCからの継承も可させたいけど、
ClassBやAから継承したクラスを作らせたくないようにしたり、直接、ClassBやAのインスタンスを
生成させたくない場合はどうすればいいですか?

クラスライブラリとして公開したいので、ClassCは自由に利用してもらいたいのですが、
ClassBとClassAは非公開にしておきたいのですが、どうすればいいでしょうか。



816:デフォルトの名無しさん
09/02/23 00:27:14
AとBをinternalにして、C をpublicにすればいいんじゃね?

817:デフォルトの名無しさん
09/02/23 00:29:31
そう思ったんだけど、
アクセシビリティに一貫性がありません。基本クラス 'ClassA' のアクセシビリティはクラス 'ClassB' よりも低く設定されています。
ってエラーで弾かれるのです(´;ω;`)ブワッ



818:デフォルトの名無しさん
09/02/23 00:32:03
AやB自体のアクセスレベルはpublicのままで
コンストラクタをinternalにする
.NET Frameworkのクラスでは多用されてるやり方

819:デフォルトの名無しさん
09/02/23 00:51:58
なるほど、そんなやり方があったんですね
ただ、それだとインスタンスが生成できないというだけで、
継承はできるので、継承元クラスのProtectedのメソッドが見えてしまったり、
インテリセンス(?)にIDE上ででてきてしまったりしますよね。
なるべく余計な情報を出したくないんですが、無理なら仕方ないのかな。

820:デフォルトの名無しさん
09/02/23 01:05:20
>>819
そもそも、それならClassAもClassBも必要ないはずだと思うんだけど。
全部ClassCに書けばいいじゃん。
派生できないベースクラスなど何の意味があるの?

ClassCという型の存在を隠したまま、そのインスタンスをClassAとして使わせたい、
ってのならよくわかるし方法もあると思うんだけど。

821:デフォルトの名無しさん
09/02/23 01:10:17
共通して利用する処理を基底クラスに書いておくってのは普通にないか?
クラスライブラリごとに開発チームが違うような場合
最も表面的なところしか見せたくない場合もあると思うんだが

822:デフォルトの名無しさん
09/02/23 01:19:29
うんだから派生クラスを隠したいというのなら話はわかるけど……、
と言ってるんですが。

823:デフォルトの名無しさん
09/02/23 01:30:17
継承を使わないで、委譲させればいいんじゃないかな?

824:デフォルトの名無しさん
09/02/23 01:36:23
いや基底クラスの関数群はそのチームでしか必要ないクラスだから
派生クラスだけ公開したいという場合もあるんじゃないか?

825:デフォルトの名無しさん
09/02/23 04:08:32
ドスプロントでコンパイルしようと思って、Path通そうとしたら、
C:\Program Filesの中にcsc.exeが見当たらなくて焦った。
C:\WINDOWSの中にあったのね。

826:デフォルトの名無しさん
09/02/23 07:51:09
ドスプロントとかいつの時代だよ

827:デフォルトの名無しさん
09/02/23 07:52:34
Win7にも絶賛登載中ですが

828:デフォルトの名無しさん
09/02/23 07:53:08
>>821
そういう場合、お作法としては、移譲、
要するに、ちょっと面倒だけどメンバーとして持って、
ClassA a;
void Foo() { a.Foo(); }
とする方がいいということになってる。


829:デフォルトの名無しさん
09/02/23 07:55:26
>>826
PowerShell が .NET に依存してて、
.NET が GUI 機能に依存してるから外すに外せないらしいね。
.NET Framework の GUI 外したバージョンも作って欲しいんだけどなぁ。

830:デフォルトの名無しさん
09/02/23 08:12:22
コマンドプロンプト仕えよ

831:デフォルトの名無しさん
09/02/23 08:17:41
このスレ的にMonoってどうなの

832:デフォルトの名無しさん
09/02/23 08:22:54
スレちがい

833:デフォルトの名無しさん
09/02/23 09:47:12
.NET Framework単体での質問スレが見つからなかったのでこちらに質問させて下さい。

.NET Framework Version 3.5 の新機能
URLリンク(msdn.microsoft.com)

にある

> Socket 名前空間に対する機能強化の一環として、一連のクラスが新たに追加されました。

とは具体的にどのクラスを差すのでしょうか?

834:デフォルトの名無しさん
09/02/23 13:37:43
C#でWiiリモコンの制御ってどうやるんですか?
参考になるサイトなどお教えください


835:デフォルトの名無しさん
09/02/23 17:30:24
>>834
まずはリモコンの素材について学んで来い
そしたら教えてやる

836:デフォルトの名無しさん
09/02/23 22:38:58
新しいものに対する拒否反応以上ではないような気がするな。
一度XAMLなしで簡単なプログラムを書いてみるといいよ。
やってる途中でバカバカしくなるから。

837:デフォルトの名無しさん
09/02/23 22:39:45
>>836
すまん、誤爆

838:デフォルトの名無しさん
09/02/23 22:49:42
気にするな
理解した
向こうにレスする必要なし

839:デフォルトの名無しさん
09/02/23 23:31:13
>>834
Managed Library for Nintendo's Wiimote でぐぐれ。

840:デフォルトの名無しさん
09/02/23 23:38:38
DataGridViewにて困っております。
バインドしたDatatableのデータを更新すると、
グリッドの方にも反映されますよね?
その時のセルを取得したいのですが、
CellValueChangedイベントで拾えませんでした。
何か方法よいありますでしょうか?

841:デフォルトの名無しさん
09/02/23 23:44:39
>>839
ジョークだと思ったら本当にあるのなw

842:デフォルトの名無しさん
09/02/23 23:59:13
>>840
rowdataboundイベントでe.rows.cellsとかで取得できないの?

843:デフォルトの名無しさん
09/02/24 00:09:52
>>841
日本だとMS製品と水と油な感じの派閥でも、
海外では.NETに前向きな雰囲気。
Wiimote以外にも、iPhoneで.NET(Mono)使うとか普通にやられてる。


844:デフォルトの名無しさん
09/02/24 00:11:24
>>842
DataGridViewには該当するイベントはないですね。
似たイベントを探しましたが、見あたりませんでしたorz

845:デフォルトの名無しさん
09/02/24 00:14:15
BindingSource_EndEdit()

CurrentCell

この辺

846:デフォルトの名無しさん
09/02/24 00:19:20
>>845
確認してみます。

847:デフォルトの名無しさん
09/02/24 00:22:15
> 834
このページにのってる
URLリンク(www.kosaka-lab.com)

質問する前にググれよ


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