[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 07/09 19:51 / Filesize : 230 KB / Number-of Response : 995
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part23



1 名前:デフォルトの名無しさん [2008/01/11(金) 15:41:00 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

ふらっとC#,C♯,C#(初心者用) Part22
pc11.2ch.net/test/read.cgi/tech/1197802312/

252 名前:デフォルトの名無しさん mailto:age [2008/01/19(土) 00:16:31 ]
IPAddress[] addrs;
があったとして、
この中から特定のIPの項目だけ削除ってどうすればいいんでしょうか。

InteliSenseで見てると
addrs.Except();
とかそれっぽいのはあるんですが、いまいち使い方がわかりません・・・

253 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:22:22 ]
配列は要素の削除とかできないので作り直し
Array.FindAll でもいける

254 名前:252 mailto:sage [2008/01/19(土) 01:08:38 ]
>>253
ありがとうございます。やっぱり作り直ししかないんですね(´・ω・)

でもFindAllのおかげでさっくりいきました。
ありがとうございました。

255 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:23:46 ]
List<IPAddress>でいけー

256 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:24:22 ]
>>254
List<>つかおうぜ

257 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:32:56 ]
Listって要素の削除は向いてないんじゃない?

258 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:43:53 ]
ほえ?

259 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:45:39 ]
>>257

260 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:47:58 ]
>>257
( ^ω^)・・・



261 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 02:05:44 ]

  (^ω^;)⊃ アウアウ!!
 ⊂ミ⊃ )
  /   ヽ

262 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 02:47:03 ]
またRemoveAll()の流れなのか・・・

263 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 05:04:38 ]
末尾以外の削除は遅いと思うんだけど、大丈夫なわけ?

264 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 05:08:48 ]
>>263
実装に因る

てか少なくとも配列を使うのよりは高性能に作られているとうれしい(ビクンビクン

265 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 05:10:29 ]
>>264
実装見ろよ

266 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 05:55:24 ]
要素の削除と挿入をやるならLinkedListでしょ?
ランダムアクセスできないけど。

267 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 06:37:57 ]
>>266
> ランダムアクセスできないけど。

それが答えだ。

268 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:28:45 ]
それは削除にむいてないんじゃなくて、
ランダムアクセスにむいてないだけ。

269 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:57:04 ]
ある時点のList<T>の内容を配列か何かに保存しておき、その内容に戻すということをしたいのですが、
インスタンスを変えたくない場合は、Clearして一つずつAddし直すしかないのでしょうか?

270 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:58:58 ]
要するに、コストの問題だ。

データを参照するより削除と挿入の方が多いならLinkedList だろうし、
頭からforeachしたりインデクスでアクセスする必要があるならList。

目的に応じて使い分ければ済むという当たり前のことだろ。



271 名前:269 mailto:sage [2008/01/19(土) 10:02:53 ]
>>269
AddRangeってのが目に入っていませんでした。
ClearしてAddRangeが正解でしょうか。

272 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 10:14:14 ]
>>268
ahosugi

273 名前:252 mailto:sage [2008/01/19(土) 10:40:42 ]
これは・・・荒らしちゃったかも(・ω・`)
なんかごめんなさいです。
配列っていろいろ考えとかないといけないんですね。要素もすくないし、参照より削除や挿入が多いと思うんで、LinkList使ってみようかなと思います。ググってみます。ありがとうございました。

274 名前:252 mailto:sage [2008/01/19(土) 10:43:27 ]
LinkedListですね、すいません(汗

275 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:51:22 ]
>>270
そこでB*木とかRB木とかですよ

276 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:56:47 ]
HashSetが合いそうだよなあと確かに話を聞いていて思ったが
要素数少なそうとも思ったのでむしろListでいい気もしたので
言わなかった

277 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:14:25 ]
>>245
すみませんあれからいろいろやってみたのですが
class kitei
{
public void Hoge()
{
基底の処理;
派生Hoge呼び出し;
}
}

class hasei : kitei {
public virtual void Hoge()
{
派生の処理;
}
}
ということ感じになるのでしょうか
基底からの派生hogeのやり方がわからず詰まってしまいました


278 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:18:07 ]
基底にvirtualなメソッドを一つ増やせ

279 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:29:27 ]
>>278
共通でない処理を切り分けてvirtualメソッドを作って
基底で
public void Hoge()
{
基底の処理;
HogeSub();
}
public virtual void HogeSub()
{
}
という風にせよということでしょうか。
メソッド一つで自動的に裏で共通処理できたらいいなーと思ったんですが
使用者が何をするのか明示的に指示するのが正解か

280 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:37:21 ]
>>279
>メソッド一つで自動的に裏で共通処理できたらいいなー
良くないだろ怖いよそんなのw

っていうか、チミは普通に継承の意味が分かってないだけとちゃうんかと



281 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:44:55 ]
>>280
確かにそのとおりなんですよね…
派生を多人数が使うときにちゃんと規定どおりに使ってくれない場合があるもんで
もう強制自動処理にならんかなーと思った次第です…

282 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:57:57 ]
>>281
テンプレートメソッド的な工夫ではダメなの?
つまりテンプレートメソッドから呼び出されるメソッドの方をabstractなりvirtualに
すればよくない?

283 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:02:35 ]
>>282
具体的に言うとちょっと極端な例ですが
データ入力して保存するという共通処理で


public void ClickSaveButton() {
 入力チェック()
 データ保存()
 ログ出力() 
}
abstract void 入力チェック()
abstract void データ保存()
abstract void ログ出力()

とやるとabstractなんでそれぞれの実装は一応してくれんるんだが
セーブボタンを押したときClickSaveButtonを呼び出して欲しいのに
データ保存()だけ入れるやつとかいるんですよ

284 名前:283 mailto:sage [2008/01/19(土) 16:12:27 ]
最初の話とずれてますね…


public void ClickSaveButton() {
 入力チェック()
 データ保存()
 ログ出力() 
}
abstract void 入力チェック()
abstract void データ保存()
private void ログ出力() //共通処理

いい子
セーブボタン_Click {
 ClickSaveButton()
}

だめな子

セーブボタン_Click {
 データ保存()
}

セーブボタン_Click {
 入力チェック()
 データ保存()
}

285 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:15:48 ]
もはや最初と別の話になってるような気がするんですが。。

286 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:20:51 ]
>>284
まあどうしてもということなら、その例ならSaveButtonClickedイベントを持つ
インターフェイスをコンストラクタに取るようにする、みたいな姑息な
対策はできるんじゃない?


287 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:28:03 ]
>>285
自分でもよんでもよくわからない例でした・・・
つまり共通処理とabstractな派生の処理を組み合わせたテンプレートメソッドを
作ったんだがテンプレートメソッドを使わないで処理するやつがいるのです。

だからabstractなメソッド一つで共通も派生処理も出来たらなーと思ったのです

て、あーもうだめです日本語でおkです…

288 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 17:19:10 ]
セーブボタン_Click が ClickSaveButton() を呼び出すと決まっているなら
基底クラスでそう定義しておけばいいんじゃないのか?

289 名前:283 mailto:sage [2008/01/19(土) 17:25:35 ]
>>286
なるほどイベントを使うというのもいいですね
>>288
派生では実装無しですか、それだとすっきりですね
この方式が一番スマートな気がします

290 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:48:35 ]
派生クラスでオーバーライドさせるためのメソッドはprotectedにしとくもんだよ



291 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 18:54:35 ]
284のセーブボタン_Clickは、みんな親クラスのメソッドなのでは?

292 名前:デフォルトの名無しさん [2008/01/19(土) 19:02:51 ]
class Base{
 void method(){・・・}
 ・・・
}
class Derived : Base{
 void method(){・・・}
 void method2(){・・・}
 ・・・
}

で、
Base obj = new Derived();
obj.method();
とできるのはなぜ?
これじゃobj.method2()とできないから
Derived obj = new Base();
obj.method();
と書くべきじゃないですか?

293 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:06:35 ]
おまえは何を言ってるんだ

294 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:06:56 ]
>>290
そうでしたか…勉強になります
>>291
そうななってしまいますね…そしてそれだも問題なしとなる…
ボタンクリック以外にも場合によってセーブ処理を走らせる必要がある場合の対応と読み替えてください…

295 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:09:27 ]
>>293
DerivedよりBaseの方が持ってる情報が少ないのに
型になるのはおかしいということです
Base obj = new Derived();
と書いたら、Derivedのメンバでアクセスできないものがでてきてしまいませんか?

296 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:12:12 ]
>>292
多態化から勉強し直せ。
Derivedじゃない他のBaseから派生したクラスを同じ流れで取り扱えるようにだよ。
ちなみにvirtualとoverrideしないと、前者のobj.method();が呼ばれるのはBaseのほうだぞ。

297 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:15:31 ]
>>296
なるほど多胎っすか
だったらDerived obj = new Derived();
obj.method();
でいいんじゃないですか?
わざわざBaseを絡ませなくても・・・

298 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:17:14 ]
>>297
2行目読めよ

299 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:21:16 ]
>>298
Base obj1 = new Derived1();
Base obj2 = new Derived2();
Derived1.method();
Derived2.method();
とできるってことですか?

Derived1 obj1 = new Derived1();
Derived2 obj2 = new Derived2();
と同じ挙動だと思うんですが、意味あるんですか?
アクセスできるメンバが減ってるだけだと思うのですが・・・

300 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:27:24 ]
本当に読んだか?

class Hoge : Base{
 override void method(){・・・}
 ・・・
}
というクラスを後から追加しても
Base obj = new Hoge();
obj.method();
でHogeクラスのmethodを呼べるだろ

というかその辺の入門書にもかいてあるだろ・・・



301 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:30:32 ]
型っていうのは、最低限それらのメンバが使えることを保証するもの

302 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:49:25 ]
呼び出す側をベタに書くから分かりづらい
public void Write(Stream stream) {
    stream.Write(this.data, 0, this.data.Length);
}
ほらstreamはFileStreamでもMemoryStreamでもGZipStreamでもなんでも持ってこい

303 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 19:53:59 ]
例えば
public void show(object o) {
MessageBox.Show(o.ToString());
}
というメソッドを
show(5);
でも
show(DateTime.Now);
でも呼べるでしょ。そういうこと。

304 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:09:15 ]
>>302
そういう間違いそうなのはふらっとに書くなよ

305 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:15:53 ]
問題点を指摘してあげればプラスになるぜ

306 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:33:25 ]
>>300-303
ああなるほど
Streamの例は分かりやすいですね
Streamを継承したクラスの分だけ全部オーバーロードしなくても
勝手にどれでも動くようにできるということですか・・・
ライブラリを使うときは便利そうですけど
自分で設計するのは難しそうですね

307 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:34:53 ]
こういうこともできるんですか?
Base[] array = new array[3];
array[0] = new Base();
array[1] = new Derived1();
array[2] = new Derived2();
foreach(Base t in array){
 t.method();
}

308 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:37:35 ]
言語の習得にはトライ&エラーも大事だぜ
試せることは試す

309 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:05:25 ]
>>308
まったくそのとおり
書いてどうしても通し方がわからなければ聞くのがいいね

310 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:07:13 ]
で、>>307に答えられる人いないの?




311 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:08:38 ]
答えられる人がいないとでも思ってるのか?
安い挑発する前に手を動かせよ

312 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:09:50 ]
>>311
死ね

313 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:11:20 ]
はい

314 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:12:56 ]
>>311
答えろ、糞

315 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:13:55 ]
馬鹿にはできないんじゃね?

316 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:19:46 ]
>>310は偽物です

>>308
一通り疑問に思ったことはやってみました
Base obj = new Derived();
(obj as Derived).method2();
みたいなことをすればDerivedが持つメソッドも呼び出せるんですね
(なんか危なそうですが)
この場合、objが本当にDerivedのインスタンスじゃないと
実行時エラーになりますね

317 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:38:11 ]
基本クラスは派生クラスの実装を知らないから
派生クラスのメソッドは呼び出せないようになっている

318 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:39:21 ]
イテレータ・・・と言いたいところだけど
C#のイテレータって違うんだよな

319 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:47:29 ]
(obj as Derived).method2();
こういうのはダウンキャストという

320 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:58:10 ]
objがDerived型だという確信があるんだったらasじゃなくてキャストしたほうがいい
asは確信がない時に使うもの



321 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 22:51:29 ]
この変の話は実例みて解説してるの読んで勉強してから出直せ
確か@ITに猪俣の書いた記事であったから

322 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 23:56:54 ]
派生のメソッド呼んでほしいような場合にオーバーライドを使う。
それが多態ということ。
呼ぶ側のコードでは実際の型を知らなくても、
オブジェクト自身が必要な動作をしてくれる。
だからストリームの実体がなんだろうが
使う側のコードは変わらない。


323 名前:デフォルトの名無しさん [2008/01/20(日) 05:21:37 ]
.netで勉強しようとしてるのですが、expressで致命的に不満が残る欠陥って何かありますか?
当方、VisualStudioを本格的に触るのはVB6.0以来です。
www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx
↑ ここの性能比較を見たのですが良くわかりません。
特に、プロフェッショナルと比べて大きな違いがあれば教えていただけないでしょうか。

モバイルやofficeプログラミングはいらないのですが、
「クラス デザイナ / オブジェクト テスト ベンチ」、その他が無くて困ることってありますか?
フォームの編集はできるんですよね?

よろしくお願いします。


324 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 05:28:12 ]
>>323
スキル次第。
つーかVSスレで聞け

325 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 07:10:03 ]
>>323
Expressだと全角英数は使えないよ

326 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:27:38 ]
いきなり欠陥とか何言ってるんだこいつは。

327 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:29:41 ]
323がVS2008Expressを使いこなし限界にぶち当たるはるか以前にVS2010が出てしまうことを予言しておこう

328 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 09:30:23 ]
スタンダードからはデフォで使えるコントロールが増えているとか

気になったのはそれぐらいかな

329 名前:デフォルトの名無しさん [2008/01/20(日) 11:53:12 ]
>>7に関し
MSは複雑になり過ぎたWinAPIから.netのクラスに
移行するということを.netが出てきた当時聞いたこと
があります。

しかし、現状を見てみると、オーバーヘッドで起動は
遅いし、肝心のところはAPIがないと作成できない、
XPではフレームワークをインストールしないと
ダメだとか、良いところがないような気がします。


C#を含め.net環境は今後どうなるのでしょうか。
今、C#を使ってますが他の開発環境に移行した方が
良いのかなと悩んでいます。

あ、一番聞きたいことはWinAPIがなくなるかどうか
ということでした。


330 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 11:57:12 ]
釣りなので放置してよし



331 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:30:21 ]
>MSは複雑になり過ぎたWinAPIから.netのクラスに 
>移行するということを.netが出てきた当時聞いたこと 
>があります。 
これに関してはWin32APIではなく、
COMで拡張していた各種サービスへのAPIを.NETベースにしようということだった。
これがWin32のAPIと誤解され一人歩きしてた。
そして、おそらくJavaへの牽制のため、MSもエバンジェリストといわれる輩もわざと
誤解が一人歩きするのを放置してた。


332 名前:デフォルトの名無しさん [2008/01/20(日) 12:36:11 ]
>>331
回答ありがとうございます。
C#スレでこんなことを言うのも何ですが
今更ですが、C#のアドバンテージはどういった
点になりますでしょうか。

そういえば、ソフトウェア誌上でもC#の記事は
少なくなって来たような気がしますし。

333 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 12:42:44 ]
ジェネリッククラスのstaticフィールドって便利だな
型チェックが減らせる

334 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:23:17 ]
>>332
俺流のアホ回答
ソフト開発の面でいうと、

c++よりjavaのほうがアドバンテージがあった、
javaよりc#のほうがアドバンテージがあった。

335 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 14:48:49 ]
>>332
おまえさんみたいなのにアドバンテージはない

フレームワーク(ランタイムみたいなもん)インストールさせるのが面倒
API叩かないとできないorめんどくさい処理があること

これだけで嫌がる奴なら選択の余地はない。やめとけ。

だいたい、仕事とかで「しかたなく」使ってみたけど
結構いいところがあるのに気づいて個人でも使ってるってやつか
近頃プログラムはじめてたまたま最初にC#を選んだやつだけだろ
あどばんてーじ があるのは

おとなしくC++でWin32APIにしとき

336 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:24:16 ]
C++だとGUI周りが面倒くさいんだよなぁ。
MFCは設計が古いし、ATL/WTLは素のAPIよりマシだが面倒くさいのは変わらんし。

337 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:24:52 ]
GUI作成はC#のほうが圧倒的にやりやすいし、標準ライブラリもC++よりはるかに充実している。
悪い点は >>329 の通りだが、それ以外はいいこと尽くしだろ。
Vistaが普及して.NET標準装備になってさえくれれば、C#は選択肢としてかなり良くなる気がする。
まあ、Vistaが普及するかが問題なのだが。


338 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:25:16 ]
WinFXは何処に行ったんだか・・・

339 名前:デフォルトの名無しさん [2008/01/20(日) 16:41:07 ]
WinFXは.NET3.0のことだが?
WinFSのことなら確かにどこかに逝ってしまった。

340 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:47:42 ]
>>339
その前の話なんだけど?



341 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 16:55:26 ]
来週発売のDVDのリスト誰か貼ってくれ

342 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:17:01 ]
VisualStudioでフォームがあるDLLを作って、それをC#コンソールアプリから呼び出して表示する場合
#DLL側
DLLのソリューションにWindows フォームを追加
参照設定にSystem.Windows.Formsを追加
[フォーム名].cs[デザイナ]に表示されるフォームウインドウダブルクリックで[フォーム名].cs作成→ビルド
#コンソールアプリ側
ビルドしたDLLとSystem.Windows.Formsを参照設定から追加、usingにDLLのnamespace追加
コードの中に↓二行を書き加える
[フォームのクラス名] form = new [フォームのクラス名]();
form.ShowDialog();

こんな感じであってますか?

343 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:18:27 ]
フォームの継承がうまくいかない

ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3171&forum=7
↑みたいな問題って皆さん起きてないの?

344 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:38:08 ]
バージョン情報の取得方法で質問があります。

・ Assembly.GetExecutingAssembly().GetName().Version.ToString();
こちらで取ってくると、 1.1.0.0 1.1.0.0

・ Application.ProductVersion;
こちらで取ってくると、 1.1 1.1

どちらも『アセンブリバージョン』と『ファイルバージョン』がくっついて並んでしまいます・・・
片方だけ取得する方法はありませんか?

@ITには片方コメントアウトするといいと書いてありましたが、
[assembly: AssemblyVersion("1.1")]
//[assembly: AssemblyFileVersion("1.1")]
出力では 1.1.0.0 1.1.0.0と出てきてしまいます。


345 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 17:48:47 ]
>>343
それVS2005でも起きてる?
2002/2003の頃はいろいろあったけど。

346 名前:デフォルトの名無しさん [2008/01/20(日) 17:52:33 ]
まずなにしたらいいですか

347 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 18:03:19 ]
>>344
AssemblyVersionしか出ないはずだけど。
.NETのバージョンは?

348 名前:344 mailto:sage [2008/01/20(日) 18:45:58 ]
>>345
>>347
開発環境はVS2008 EE(.NET3.5)です。

ためしにVS2005で試してみたところ、
前者・後者の呼び出し方法共にアセンブリバージョンのみ出てきました。

.NET3.5で呼び出し内容が変わったみたいですね・・・。


349 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:07:25 ]
>>348
.NET 3.5のみ問題なんならソースよんでみたら?

350 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:07:30 ]
>>348
そこは2.0のまんまで変更はない。



351 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:08:41 ]
すまん。Express Editionはソース読めんのだっけか。

352 名前:344 mailto:sage [2008/01/20(日) 19:11:33 ]
試しにVS2008 EE(.NET3.5)ではなく、
VS2008 EE(.NET2.0)で試したところ。
変化がありませんでした。

つまりVisualStudio2008側が問題なのでしょうかね。
いい対策案が思いつきません。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef