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


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

C#, C♯, C#相談室 Part58



1 名前:デフォルトの名無しさん mailto:sage [2010/03/22(月) 21:35:10 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ 
C#, C♯, C#相談室 Part55 (実質56)
pc12.2ch.net/test/read.cgi/tech/1260111240/

Visual C# 2008 Express Edition 日本語版
www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>1-5くらい

577 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:34:27 ]
あるクラスを継承してメンバ関数だけオーバーライドして使いたい場合
元のクラスで扱っても大丈夫でしたっけ?

578 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:36:13 ]
>元のクラスで扱っても大丈夫でしたっけ?
インスタンスを作った後も元のクラスで扱っても大丈夫でしたっけ?

579 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:38:51 ]
元のクラスで扱うってのはどういうことなんだ?
継承元のクラスにキャストするとかそういうこと?

580 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:41:53 ]
>>579
ゲームの中にでてくる物体(障害物、自機、敵など)はすべて座標系など特定の
情報を持つという部分では共通ですが、動きだけが違うので管理上は継承前の
クラスで管理して、動きに関連するメンバ関数だけを差し替えを実現したい・・
という感じです

581 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:46:35 ]
オーバーライドしなくてもいいんじゃないか?
継承先で個別に実装すれば

100%書き換えることが前提になってる感じだからむしろIFとかにしてみるとか・・・
いや・・・いろいろ方法はあると思うが 継承元で関数書いてもどうせ空の実装とかにしかならんだろうし
オーバーライドしなけりゃ元の動作のまんまになってしまうのはバグの元だと思うんだ・・・

582 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:47:23 ]
>>580
普通にできるが

583 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:49:39 ]
>>581
むかーしgcc上で書いた物を移植中なので.netなりの方法はないかなあと模索してたりします。
C時代は関数ポインタのテーブルを用意して・・・とかやってたんですけどね

>>582
どんな感じでやればいいですかね?

584 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:54:08 ]
>>583
いやだから基本クラスで動き意外の関数作って
継承したクラスで新しく動きの関数作ればいいだけだけど
何が問題なの?

585 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:58:17 ]
class 物体
{
public void 動き以外の処理(){}
}

class 自機:物体
{
 public void 動きの処理(){}
}



586 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:58:27 ]
>>584
Hogeクラスを継承したHogeA,HogeB・・・・・HogeZとかあったとして
管理はList<Hoge>として全体をまとめたいんです・・

587 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:58:42 ]
抽象クラス使えば?

588 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:03:24 ]
>>586
>>573

589 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:13:10 ]
関数ポインタ使っていたなら、そのまま構造体を抽象クラスにして、関数ポインタを仮想関数にしたら、完成のように思うが。

590 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:47:22 ]
>>577
やってみたらいいのに何でわざわざ面倒な手順を踏んでるんだ?

591 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 15:27:18 ]
まあvirtualでググればいいんじゃないかな!かな!
>>577

592 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 18:20:03 ]
模索している割には他の提案を聞き入れようとしない件について

もし判ってないならそれは技術力不足以外の何物でもないな

593 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 18:47:36 ]
>>592
聞き入れないわけではなく聞いた上で調べた結果実装を考えた際に
こういう時どうしようとか悩んでるわけなんですよ

たとえばクラスを継承してインスタンスを作る際は確かに一つの
メンバ関数をオーバーライドですれば済みますが状態がわかった際に
インスタンス化されてしまってるクラスのメンバ関数を状態遷移に応じて
さらにオーバーライドできるかとか

できないなら、昔書いたように関数ポインタもどきを実装するしかないのだろうかとか

でもクラスに関数ポインタぽいことを実装すると関数ポインタのテーブルを
もったインスタンスがいっぱいできる?・・・とか

594 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 18:48:18 ]
>状態がわかった際に
この記述は無しで

595 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 18:57:23 ]
>>593
デリゲート



596 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 19:00:03 ]
頭の中が混乱してるみたいですね。
デザインパターンのテンプレートメソッドとストラテジーあたりを勉強するといいかも。

理解できないならIF文で押し切れw

597 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:05:06 ]
以下のようなメソッドを用意して、データをネットワーク越しに通信するプログラムを書いています。

private byte[] CompressBytes(object rawData)
{
  using (MemoryStream stream = new MemoryStream())
  {
    using (DeflateStream compressedStream = new DeflateStream(stream, CompressionMode.Compress, true))
    {
      BinaryFormatter formatter = new BinaryFormatter();
      formatter.Serialize(compressedStream, rawData);
    }
    return stream.ToArray();
  }
}

598 名前:597 mailto:sage [2010/04/28(水) 20:06:16 ]
private object DecompressBytes(byte[] compressedData)
{
  using (MemoryStream stream = new MemoryStream(compressedData))
  {
    using (DeflateStream decompressedStream = new DeflateStream(stream, CompressionMode.Decompress))
    {
      BinaryFormatter formatter = new BinaryFormatter();
      return formatter.Deserialize(decompressedStream);
    }
  }
}

単一のプログラムでテストする場合は問題なく動作するのですが、
クライアント・サーバのプログラムにそれぞれメソッドを組み込んで通信をしていると、
return formatter.Deserialize(decompressedStream);
の部分で、「デコード中に無効なデータが見つかりました。」というエラーが出ます。

具体的にはNetwork Streamに対してbyte配列を書き込み、
相手側で読み出すという作業をしているだけなのですが、ローカルとネットワークの場合で挙動が変わるのかよくわかりません。
# ネットワーク越しといっても、サーバプログラムで127.0.0.1に対してポートを開いて、クライアントプログラムで127.0.01にアクセスしているので、マシンスペックに違いは無いはずなのですが…

もし何か注意することがあれば教えていただけないでしょうか?

599 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:10:35 ]
www.sherwooddungeon.com/SherwoodDungeon.htm
こんな3Dネトゲが4M程度で実現できてるんだけど
C#でやるにはwebdeveloperとかsilverlightが必要?

600 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:14:07 ]
俺的に3Dゲームはudkやsource modを使うのが一番現実的だと結論付けた

601 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:22:13 ]
>>599
inしてみたが週末Flashスレで貼られる戦車のゲームとエリア規模は似てるな
まあ4MBってのも圧縮した状態だと小さくなるしなあ

602 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:26:47 ]
気軽に対戦ゲーム作りたくてもサーバーが難しいよね

603 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:32:16 ]
↓ここで簡単厨のターン

604 名前:デフォルトの名無しさん [2010/04/28(水) 21:17:01 ]
まぁ俺にかかったら1日で何でもできるけどね

605 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:22:27 ]
>>598
そのエラーが出てるとこのデータの中身はどうなってるんだ?
ちゃんと送りつけた時と一緒になってるか?
まずはそこからだ



606 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:30:49 ]
>>602
ほとんどのレンタルサーバーはゲーム禁止だからな
ATPAGESではOKだが、負荷をかけすぎるとアカウント自体止められる

607 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:34:13 ]
>>583
abstract class foo
{
 foo(){}
 abstract bar(){}
}
class xxx : foo
{
 override bar(){}
}
とやって、xxxのインスタンスをList<foo>にでも突っ込めばいける

608 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:36:24 ]
あと、遷移ごとにfooを継承したクラスを作って突っ込めばいい
詳しくResponserパターンでくぐってみろ

609 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 22:45:58 ]
デザインパターンなんてみんな覚えてるの?

610 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:24:35 ]
>>609
そりゃデザパタから入った人は「覚える」って意識になるんだろな。


611 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:46:55 ]
趣味で一人でプログラミングするなら、無理にオブジェクト指向を意識する必要はないけどな。
下手にクラス設計に凝るくらいなら、ひたすらstaticでプログラム組んだ方がましだと思う。
どうせ誰かにソースを見せたり、過去の資産を利用したり、誰かから仕様変更を言い渡されたりはしないんだろ。

612 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:48:17 ]
>>611
妄想で語るな

613 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:51:44 ]
いや、正しい

614 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:55:35 ]
いや、過程に過ぎない
つまり妄想

615 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:58:52 ]
構造体の配列で回して、キャラのタイプIDでswitchしまくりで別に問題ない



616 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 00:10:33 ]
趣味なら作ってて楽しければいいし、どんなソースでも動けばいいんだよ。

617 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 00:12:40 ]
正解

618 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 00:39:40 ]
うん。
でもね、べつにクラス設計とかって伊達で導入されてるわけじゃないんだけどな。
規模が大きくならないとあんまり意味がないってことなら同意だけど。

619 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 01:19:21 ]
>>616
動いたけどsbyteで済むようなただのフラグ用の変数すらintで書いていて起動しただけで10MB超のメモリを食ったのは恥ずかしい経験w
やっていくうちに分かるってのはあるが、どんなソースでもとかいう気持ちだといつまで経っても向上しないような気はする。

620 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 01:38:49 ]
まあ目的と手段を間違えないことだな

621 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 01:41:56 ]
ゲームの場合オブジェクト指向が有効そうにみえるんだが
案外そうでもなかったりするんだよな・・・
もうちょっといい方法があればいいんだが

622 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 01:56:24 ]
>>598
受信途中のデータの後ろが欠けてるんじゃない?
MemoryStreamじゃなくて、直接NetworkStream渡せば?

623 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 13:22:01 ]
>>620
それはあるねー。
もっとも趣味プログラマの場合、楽しく正しく書くってのも目的に入ってる人は多いんじゃね?


624 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:04:41 ]
WPFやっててバインディングがものすごくよかったんだけど
WinFormでも同じようなことできましたっけ?

625 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:12:13 ]
バインディングの仕組み自体は似たようなもんだけどUIが貧弱なんだよ
コレクションへのDataTemplateを使ったバインディングのようなことをやろうとすると大量のコードが必要になる



626 名前:624 mailto:sage [2010/04/29(木) 15:19:16 ]
>>625
そうなんですか・・・
残念

627 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:23:23 ]
>>623
プログラムのプロをプロフェッショナルとかけたダジャレで
昭和生まれは素人プログラマのことをアマグラマって言うんだぜ

628 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:24:38 ]
>>625
WPFだとTreeNode.TagにList<>なんかが入ってても
簡単に取得できるの?

629 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:26:28 ]
WPFではTreeNodeみたいなのは直接扱わないんだよ
元々ツリー上になってるオブジェクトグラフからバインディングだけでノードを生成する

630 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:28:44 ]
>>628
WPFのサンプルみた感じだとTreeNodeじゃなくてツリーを形成するための
クラスを自分で作ってTreeViewにぶっこめば勝手に表示してくれてたな

631 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:35:31 ]
C#で作られたものをWPFに移植しようとしたら
また1から作り直し?

632 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:37:38 ]
>>631
WinForm依存のデータ格納クラスはそうなるかも
でも最初から依存をなるべく避けたコード書いてればそれほど問題にならない

633 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:37:39 ]
ロジックからコントロールを直接触ったりするような馬鹿な造りにしていなければ修正はUIまわりだけ

634 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:38:01 ]
>>630
ほー
今メニューの項目をそのままTreeViewに表示しようとしているんだけど
激しく面倒くさい

635 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:50:17 ]
ツリービューの項目にボタンを付けてボタンの上にhoge.ImageUriプロパティの値をバインドしてアイコンを表示して
アイコンの右にhoge.Nameプロパティをバインドしてテキストを表示して
子プロパティとしてhoge.Childrenプロパティをバインドして再帰的に展開して…
みたいなことがXAMLだけでできる



636 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:52:11 ]
とにかくすごいわ

C++からC#でかなり楽になったけどさらにWPFで楽できそうな感じ

637 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:53:22 ]
MSはWinFormよりWPFに力入れてるの?
おれもやってみようかな

638 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 15:55:40 ]
WinFormsは完成放置状態
Silverlightに力入れててWPFはそれに合わせてる感じ

639 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:42:59 ]
2008expressはもうダウンロード出来ないのかよ

640 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 16:47:07 ]
www.microsoft.com/downloads/details.aspx?FamilyID=94de806b-e1a1-4282-abc5-1f7347782553&displaylang=ja
これISOかな?

641 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:22:18 ]
銀光はApacheとかがMIMEタイプを標準で持つようにならないと普及しないと思う
窓鯖でもIIS7でないと標準で対応してないのがもうね
これ、意外と高い壁だよ

642 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:26:31 ]
>>641
おいおい
.netにはおさるさんがあるじゃなか
銀光とセットで月光あるしLinux上で.net動くぞ
完全互換とは言いがたいが

643 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:05:26 ]
WinFormで出来てWPFでできないことって何?

644 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:21:38 ]
>>643
wndprocのフック
コモンコントロールがないに等しいので自作しないといけない

645 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:27:08 ]
お客さんに売り込み辛いんだよな、WPF・・・




646 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:29:15 ]
短期納品、コストさげろ

これって生産性あげろってことなのにWPFだめって言われるとねえ・・・

647 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:31:14 ]
WPFって実際生産性高いのか
xamlが手間かかりそうなんだけど

648 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:32:18 ]
最近コンソールとかサーバーサイドばっかりで、UIのあるアプリ作ってないなぁ。

649 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 18:34:49 ]
>>647
なれるまでが面倒かな
XAMLその物はHTMLでwebページ作成するような感じなので
慣れが必要かなあ

650 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:00:35 ]
>>641
MIMEタイプが問題になるのはSilverlightより、WPF/XBAPやClickOnceだな。


651 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:07:54 ]
htmlはコード見ただけで拒絶反応

652 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:08:36 ]
ルーズXAML
application/xaml+xml
XBAP
application/x-ms-xbap
ClickOnce
application/x-ms-application

このくらいかな。IEは無くても処理してくれるが、firefoxの.NET Assistantアドオンを使う場合に必要。


653 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:12:43 ]
.htaccessをいじらせてもらえなくても、perlは使えるところが多いので、
こんな感じで無理やり対応できる。
#!/usr/local/bin/perl
# -- hoge.cgi --
print "Content-type: application/xaml+xml\r\n";
print "\r\n";
open(INF,"<hoge.xaml");
for (<INF>) {
  print $_
}
close(INF);


654 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:24:42 ]
>>644
>wndprocのフック
blogs.msdn.com/nickkramer/archive/2006/03/18/554235.aspx

>コモンコントロールがないに等しい
WPF Toolkitが便利。DataGrid/DatePicker/Calendar/Visual State Manager(VSM)は.NET 4に取り込まれた。

655 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:51:18 ]
とりあえず画像ビュアー的なのを作ろうと思うんだけど
皆さんだとWinFormとWPFだとどっちが速く作れます?

サムネイル一覧表示
書庫から画像読み込み
各種フィルタ機能
画像の変換
を予定してます



656 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:10:13 ]
>>654 >wndprocのフック
こりゃありがてえ!

657 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:13:39 ]
>>642
いやそう言う話じゃなくて
.xapのMIMEタイプを指定してやらんと貼っても認識しない
>>653みたいなことも出来なくはないけど、それじゃあFlashの代わりとしては敷居が高すぎる

658 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:14:24 ]
>>657
ああすまん
httpヘッダのあれか・・

659 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:30:34 ]
xapを直接クリックでも起動できたっけ?
普通はHTMLLからsilverlightControlHostやsilverlight.js経由で
読み込むからMIMEの登録は不要なはず。

video再生くらいならxapなしで書けたりする。
ttp://www7a.biglobe.ne.jp/~fbsoft/test/BinaryStar.html


660 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 20:34:14 ]
あれ・・・yahoo移管後のGyaoってSLのプレーヤーだな・・・
どうやってるんだろ

661 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:04:42 ]
>654
できるのか。知らんかった

>WPF Toolkitが便利。DataGrid/DatePicker/Calendar/Visual State Manager(VSM)は.NET 4に取り込まれた。
コモンコントロールあるのか・・・
そのキットにはコモンダイアログもついてるのか?
フォントダイアログを自作する作業はもう嫌だよ・・・
せめてそのくらいつけてくれ>MS

662 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:06:41 ]
ファイルダイアログくらいは仕方ないとしても、
コモンダイアログは本質的にWPFの範囲外だから付けたくないんだろ

663 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:34:35 ]
フォント選択ダイアログはこの辺参考に自分で作るか、WinFormsの利用するしかないかな。
ov-p.spaces.live.com/blog/cns!39D56F0C7A08D703!253.entry
blogs.msdn.com/text/archive/2006/11/01/sample-font-chooser.aspx

664 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:36:51 ]
>>661
WPFだとFont列挙してListboxにでも入れてしまえばいいような気がする

665 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:21:52 ]
C#に限ったことではないのですが
ループする項目に対していろいろな条件によって
continue;するプログラムを書いていると
ついループが長くなりがちでなんとかしたいのですが
コツのようなものはありますでしょうか
すぐ思いつくのは
・ループ内からメソッドを呼ぶようにして
結果をboolで返すとか(処理結果を他で使いたい場合に問題)
・例外でループまで戻ってくる
(処理コストの面と意味的な面で例外を使うのはどうか)
と言った辺りですが思いつくことありましたらご意見を。



666 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:26:02 ]
>ついループが長くなりがち
なったことないのでわからん
どんな処理書いてるのか見せてもらえると一番なんだが・・・

コード晒す場合は>>4の※コードの量が多い場合・・・のところを使ってね

667 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:34:08 ]
>>665
bool返すメソッドをデリゲートに設定すれば
一つのメソッドで複数のメソッドを呼び出すことができる
一つのif文で済む
あとはその処理用にデータ構造を設けてコードが短く済むようにする

668 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 01:47:47 ]
よく分からんが、ループ内をごっそり他の関数にするとか大きな処理にまとめるとか?

669 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 01:56:16 ]
多態使うとか

670 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:02:16 ]
↓な感じでPictureBoxのサイズ変更時にImageのサイズも
変更しようとしてるんですけどImageのサイズが変わりません。
この方法まずいでしょうか。
※PictureBoxはフォーム全体にアンカーを貼っていてフォームサイズが変わると
 連動するようになっています。

Private void pictureBox1_Resize(object sender, EventArgs e)
{
  pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}


671 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:23:50 ]
なにをしたいか知らんがpictureBoxはこんなことができる
ideone.com/Cs4gU

672 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:23:58 ]
変更したサイズのImageが実際に欲しいのか、
Pictureboxのサイズに合わせて表示も拡大したいのか良く分からんけど、
後者ならプロパティに設定するだけ。
SizeModeをZoomかStretchImageにすればいける。

673 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:31:27 ]
それよりぶち抜きでcontinueとかbreakしたいのは俺だけか
一番内側から最外ループまで一気に戻りたい時とか面倒で仕方ない

674 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:33:28 ]
そんなのはケースによるしな
どんなコードの状況になてて>>665なのかわからんし
当たり障りの無い回答しかできないのも事実

675 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:51:11 ]
>>672
SizeMode設定で出来ました。
ありがとうございます。

別のGraphicsの画像をPictureBox.Imageに拡縮貼り付けしていて
PictureBoxのサイズが変わったら貼り付ける座標も変わるだろうということで
PictureBox.ImageのサイズをPictureBoxのサイズに変えたかったんですけど
PictureBoxはPictureBox.ImageをStretchBltしてくれるみたいなイメージなんですね。

>>671
なんだか・・・いろいろやってくれるんですね.NETは
今までWin32APIでしかウインドウズプログラミングしたことなかったので
勉強になります・v・




676 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:10:33 ]
次は、縮小画像がガタガタなんですけど…という質問が来るにちがいない。

677 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:17:39 ]
>>676
ファミコンの画像を縮小したら変に滑らかになって困ります。RGB接続した時のようなまま縮小したいです

678 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:26:09 ]
>>677
Bitmapオブジェクトを直接弄るしかない

679 名前:665 mailto:sage [2010/05/01(土) 01:05:49 ]
意見ありがとうございます。
実物はアレなので話のネタにサンプルコードとしますがこんな感じ

IEnumerable<T> e = xx;
foreach (var x in e)
{
bool a = this.A(x);
if (a)
{
continue;
}
bool b = this.B(x);
if (!b)
{
continue;
}
string c = ExtLibC.C(a, b)
if (c == null)
{
continue;
}
DD d = ExtLibD.D(x, a, b, c)
if (d == null || d.D == null || d.DD == null) {
continue;
}

// こんな処理が数十行続くとか
// もっとネストが深いとか
}

680 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 01:54:42 ]
適当な粒度でメソッドに分ければ?
この例だと有効なdを取得したいんだろうから、こんな感じかね

foreach(var x in e) {
  var d = D(x);
  if (d == null || d.D == null || d.DD == null) continue;

  // 処理
}

--
DD D<T>(T x) {
  if (A(x) || !B(x)) return null;
  string c = ExtLibC.C(false, true);
  return (c != null) ? ExtLibD.D(x, false, true, c) : null;
}

681 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 03:02:05 ]
>>679
まあ分かって聞いてるんだと思うけど、そんなの汎用的な方法論なんてあるわけないよね。

冗長なコードが悪なのは誰も異論がないとしても、
それは全ての処理はコンパクトな記述が可能だってことを意味しないわけで。

682 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 04:10:07 ]
ListViewのLargeIconモードでD&D並べ替えがしたいんだけど、スクロールが出来ない
DragDropEffects.Scroll指定するだけじゃダメなの?

683 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:40:31 ]
DataGridViewってセル結合出来ないのね・・・

684 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 17:55:36 ]
>>683
諦めるんだ・・・
サードパーティが売れなくなるだろ?

685 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:22:19 ]
できないことはないけど、コードガリガリ書くの面倒だよ



686 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 13:10:14 ]
面倒なんでhtmlにしてWebBrowser貼付けた
楽すぎるw

687 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 13:22:41 ]
>>686
ブラウザで代替出来る程度のことなら、素直にTableLayoutPanelでも使った方が
もっと簡単なんじゃないかと....

688 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 14:48:35 ]
>>687
中の文章でセルサイズを自動調節したいんで、
TableLayoutPanelでは難しいです

689 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:17:07 ]
if(a == 1 && a == 2 && a == 3)
{
}
こんな感じのコードをもっとスマートに書く方法ってないですかね。
例えば
if(a == (1 && 2 && 3))みたいな感じで。
「かつ」ではなく「もしくは」ならswitch文で代用できるんですけど。

よろしくお願いします。

690 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:18:44 ]
if(false)

691 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:20:36 ]
すみません。間違えました。確かにこれはおかしいですねw
if(a != 1 && a != 2 && a != 3)
{
}
こんな感じのです。

692 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:22:36 ]
また「スマート = 文字数が少ないこと」と勘違いしている人かな。

693 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:23:27 ]
switchとか!(new[] { 1, 2, 3 }.Contains(a))とか

694 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:28:22 ]
>>691
用途上 a >= 0 に限定できるなら
if (a && a > 3)
{
}


695 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:43:52 ]
>>692
今回例に出したのは数値型でしたが、文字列型だった場合には条件式の組み合わせが非常に多くなってしまって鬱陶しかったんで。
個人的なことですが、if文等の括弧の途中で改行挟むのが嫌いなものの、改行しないでいると横スクロールが面倒になるという始末。
まぁ比較用のbool変数に対して予め比較を終わらせておくって手段もあるんですがね。
要はわがままです。

>>693-694
ありがとうございます。配列に対してContainsを使う方法は思いつきませんでした。
文字列型の場合にも有効活用できそうですね。



696 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 18:58:05 ]
>>695
いずれにせよ、値の評価関数(ようはintならintを引数にとってboolを返す関数)
をつくるベタなやり方の方がいいと思うけど。

ifの()の中の記述に場当たり的な技巧を凝らすのは時間の無駄だし馬鹿っぽい。


697 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:13:09 ]
実行速度を計測してみたところまぁ当たり前な気もしますが、単純に比較するのとContainsを使う方法では前者のほうが圧倒的に速かったです。
実行速度を気にしなくて言い場合にはContainsは有効ですね。

>>696
上記の理由より、予め比較を終わらせておく手段をとるのが最善のようですね。

698 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:13:41 ]
数が多くなるならリストを予め作っといて>>693の後者の考え方で判定するのがきれい

699 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:34:51 ]
>>695
>>まぁ比較用のbool変数に対して予め比較を終わらせておくって手段もあるんですがね。

俺もこうするかな


bool b1 = a != 1;
bool b2 = a != 2;
bool b3 = a != 3;

if( b1 && b2 && b3 )
{

}

700 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:21:29 ]
俺は状態を管理するクラスを作るかな。

701 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:24:30 ]
var b = a != 1;
b &= a != 2;
b &= a != 3;
if (b)
{
}
だろ

702 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:24:47 ]
ただ条件文自体は普通に書くのが一番分かり易いし取り回しもいいと思う。

703 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:25:45 ]
>>702
まあ状況によりけりだが素直に条件式書く方がスマートだったりするよな

704 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:31:55 ]
拡張メソッドでNotIn作れば良いよ

705 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:34:00 ]
素直に条件式書いた方がコンパイラ的にも最適化しやすいと思うし。



706 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:40:56 ]
業務アプリならifのパフォーマンスなんかどうでも良くて人間が見やすいことが優先されることが圧倒的に多いけどな

707 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:50:31 ]
業務アプリなら他のプログラマが見ることもあるだろうから普通に書いた方がいい。
個人なら好きにすればいいよ。

708 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:57:54 ]
>>695
つまらないこだわりはよせ
月にロケットを飛ばすプログラムが一行で書けたところで
何の意味もない

709 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:07:20 ]
あれ?2010からはヘルプはドキュメントブラウザじゃなくてウェブブラウザになったの?
しかもオンラインのみ?
ローカルに設定したんだけど・・・

710 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:13:25 ]
あ、失礼w
ローカルアドレス参照になってましたorz

711 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:18:03 ]
>>708
意味あるだろ

712 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:32:35 ]
>>711
どこに?

713 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:36:39 ]
俺ルールだと
if ( a != 1
&& a != 2
&& a != 3
) {
}
条件の追加削除が楽だし、&&なのか||なのかが前に並んで、俺が分かりやすい。
後ろに置くとチェック変数の変数名長でガタついて見間違えやすいから。
横並びなんて誰得。複合条件ならカッコつけてインデント。複雑なら変数方式。
これを部下に押し付けてる。

途中で||とか変な条件入ったら693なんてどーすんの?

714 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:38:20 ]
大昔のパソコン雑誌(確かASCII)にはその手のコンテストがあったな。
一行プログラムコンテストだっけ?

オッサンの独り言でした

715 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:40:59 ]
>>713
これとか、カンマを文頭に書くのは好きになれないなぁ。
確かに見やすい&わかりやすいけどね。



716 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:52:31 ]
>>713
途中で||が入ったとしても、&&で括れるグループ毎にまとめるとかはできるでしょう。
それに様々な条件が入り交ざったモノってそこまで条件式自体は長くないのが多いし、仮に長かった場合には関数なりなんなりでわかりやすく分離すればいいかと。

717 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:57:35 ]
>>716
分解したら今度は読み解くのにあっちこっち見に行かなければならない

718 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:02:28 ]
神経質な人はやりたくなるのは分かるけど、
手作業でコードの整形とか時間の無駄なんだよな。

719 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:15:44 ]
そんなことよりswitch文で必ずbreak入れなければならない仕様は改悪だと思うんだ

720 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:18:14 ]
caseの中身書かなければ並べられるので不便だと感じたことはないな

721 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:28:38 ]
>>719
少数意見だろうな。

722 名前:デフォルトの名無しさん [2010/05/02(日) 22:30:54 ]
1.bp.blogspot.com/_GxQVDnAyExw/SsNvlU5GFAI/AAAAAAAAAAU/4ir3g-WMg1E/s1600/meat2.jpg

723 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:33:40 ]
フォールスルーの読みづらさは凶悪
フォールスルーが言語でもめったに使われてないからたまに使われてるとほぼ確実に見落とす

724 名前:723 mailto:sage [2010/05/02(日) 22:35:15 ]
フォールスルーが許されてる言語でも の間違い

725 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:38:46 ]
>>722
交通事故かな



726 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 00:51:47 ]
まさかプログラム板でグロ画像見るとは思わなかった。

727 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:27:07 ]
病んでるんだろ
ほっとけ

728 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:33:15 ]
>>726
まあ休みの深夜だしw

729 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 03:27:15 ]
長期休暇は変な人があちこちに出没するなぁw

730 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 09:47:15 ]
>>723
フォールスルーするならコメント書いとけ

731 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 13:15:11 ]
これもヘンな人?

ameblo.jp/ryujiohta/entry-10524500598.html

732 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 13:24:51 ]
削除ガイドライン違反

8. URL表記・リンク
宣伝・罠・実行リンク
・明らかに宣伝を目的としたリンク・クリックや訪問で課金が発生するもの等は、宣伝掲示板以外では削除します。

733 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 14:23:53 ]
コピペ君も同類だけどな、まで読んだ。

734 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:25:02 ]
このプログラムなのですが、どうしてもエラーが消えません。
どこがおかしいのでしょうか?

C:\Documents and Settings\tutomu\My Documents\Visual Studio 2008\Projects\gomokuproguram\sironoisi.cs

735 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:30:23 ]
>>734
知りません。
答えようがありません。



736 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:31:21 ]
キチガイの相手すんな

737 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:32:48 ]
知らんがな。つとむくん。

738 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 00:58:19 ]
うお、うpろだにあげるの忘れてた

739 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:01:27 ]
つとむくん
忘れてたってレベルじゃねぇぞ!

ところで
gomokuproguram

GomokuProgram
ではないか?

740 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:04:52 ]
もうやめて!つとむくんのライフゼロよ!

741 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:07:32 ]
つとむくんは盲点だったわww
確かにwwww

742 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:10:06 ]
山口さんちのツトム君
このごろ少し変よ どうしたのかナ

743 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:12:46 ]
何歳だよお前

744 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:20:32 ]
うpろだにつながらなくなってしまった
なんで名前知ってるの・・・?

いちようウイルスソフトは入れている
2chになんかカキコするんじゃなかった

745 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:24:02 ]
誰だよお前



746 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:26:50 ]
例え私が滅びようが第二、第三のツトムが五目プログラムを作るであろう・・・

グフッ

747 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:34:27 ]
>>744
ウイルスソフトなんて入れてるから駄目なんだと思います。
>>746
ワロタww

748 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 01:39:30 ]
ツトム君の人気に嫉妬した

749 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 02:25:23 ]
プログラム一通り見たけど、設計がなってない

750 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 02:44:44 ]
シロノイシ

なんか小説でも書けそうなタイトル

751 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 09:32:12 ]
つとむ君のスレになりそうだな
【五目】C#相談室【白の石】

752 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 09:50:42 ]
こうだろ
【五目】C#相談室(ツトム君専用)【白の石】

753 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 10:07:25 ]
OSに頼らずにジェスチャーを実装することって可能かなあ・・・
マウスだとボタンとポインター移動部分が独立してるけど
タッチパネルとなるとタッチした瞬間にカーソル移動+
MouseDownとかイベント発生しそうだし・・・

754 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 10:25:11 ]
>>753
戦車ゲームが難しいな
タッチしたら旋回して即発射
つねに振り向きざま即発射

755 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 11:09:10 ]
白の意思・・・か・・・
ついにはじまるのか・・・



756 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 11:46:18 ]
燃え尽きた・・・真っ白に・・・

757 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:38:42 ]
原因がわかりました
iとjをまちがいていました
変数名をtateとyokoにすることによって解決。
forの変数はiから順に使うとならったけど
名前を使ったほうが分かりやすいと思う

あと名前をカキコするのはやめてください。
どこで知ったのかわかりませんが
ちゃんとうpろだに成功してたのかな?



758 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:41:08 ]
"つとむ" はローマ字だと"tsutomu"だよ。
"tutomu"じゃないよ。

759 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:41:58 ]
>>757
ネタなのかマジなのか
>>734で自分で晒してるよ

IDEのデフォルトの保存場所にするとマイドキュメントになるので
下手にプロジェクトとか晒すとユーザーネームまるばれなんだよw

760 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:42:48 ]
>>758
僕はtutomuって書くことが多いですね
最近はローマ字で名前書いたことないですけど

761 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:44:00 ]
>>759
はぁー!
フォルダに名前使ったおぼえないのに
C#が勝手に作った!?_

762 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:45:34 ]
>>761

お前面白いなwww

763 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:45:42 ]
>>761
プロジェクト保存するときに保存先を聞いてくるので
見逃してたら自己責任だろうw

764 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:47:14 ]
>>758
訓令式というものがあってな

765 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:55:48 ]
だめだフォルダの名前が変えれない
名前フォルダの中にデスクトップがあるし訳が分からない
デスクトップの中にエクスプローラーがあってその中にデスクトップがある。
でも普通にファイル開けた




766 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 12:59:30 ]
もうやめてあげて!ツトムくんが人間の形を留めていられなくなっちゃう!

767 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 13:07:42 ]
鼠人間ツトム

768 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 13:12:11 ]
そろそろ板違いだから。
これ以上やりたければ、パソコン初心者板でも行こうな。つとむくん。

769 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 13:14:15 ]
>>768
既に聞きに行っているみたいだぞwww
pc12.2ch.net/test/read.cgi/win/1267768729/828

770 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 13:26:27 ]
ネタじゃなくてマジだったのかw

771 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 14:08:40 ]
板を超えた釣りだろ

772 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 16:53:13 ]
>>769
予想の斜め上www

773 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:02:31 ]
プログラム作る前にやることあるだろ

774 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:56:23 ]
「白の石」って響きがすごくかっこよいんですけど。

775 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 20:02:39 ]
でも、黒の石と別にする合理的な理由が思いつかない



776 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 00:20:35 ]
黒の意思か・・・
・・・風が吹いてきたな・・・

777 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 03:14:02 ]
本人だけじゃなくてパソコンの先生にも問題があると思う
無条件に変数をiから使うとか教えてるっぽいし

778 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 08:52:18 ]
パソコンの先生wwwww

779 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 09:26:18 ]
VS2008を使ってます。
httpでHEADリクエストを送るにはどうすればいいでしょうか。

WebRequest, WebResponseを使うとGETで全部取ってきてしまうので・・

780 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 09:33:54 ]
>>779
Method プロパティに "HEAD" 入れりゃいいだけの話。
"POST" したことあるならやり方わかるよね?

781 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 09:54:38 ]
>>780
Method指定でできましたー
どうもありがとうございます

782 名前:デフォルトの名無しさん [2010/05/05(水) 15:10:58 ]
VS2005なんですが、デザイナで自動生成されるコードで、
プロジェクト規定の名前空間を含めないようにすることはできますか?

規定の名前空間が'hoge'で、コンパイル時に
型名'hoge1'は型'hoge.hoge'に存在しませんとなるのを避けたいのですが・・・

783 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 15:29:35 ]
テンプレートをいじればいけるかも。

784 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:29:47 ]
C#をやってみようと思いますが、
Visual C# 2010 Expressというのは製品版と比べて
どんな制限があるんでしょうか?

785 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:43:22 ]
>>784
普通にやる分には、全く制限が無いと思ってもいい。



786 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:52:04 ]
>>785
えーっすごいですね!
早速参考書を買いに行ってきます。

787 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:53:26 ]
そういやC#部分だけ見たらほとんど制限ないな

788 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:54:40 ]
ところで、どこかに比較表とかありますか?

789 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:58:45 ]
2010の比較表はまだ無いようだ。
参考書はとりあえずやめとけ。ネットで調べたらいくらでも出てくる。

790 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 18:59:40 ]
MSのサイトにあるだろ。

791 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:07:52 ]
>>789
勉強時間が移動中か寝る直前ですし、
本のほうが集中して読めるので。。

>>790
www.microsoft.com/express/Windows/
このページの右の「Compare Express Products」ですか?
読んでもよくわかりません…(英語がわからないのではなく)


792 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:08:56 ]
出来ること
www.microsoft.com/japan/msdn/vstudio/2008/product/express/aboutexpress.aspx

これは広告だから制限は書いていない。
重要な制限としてはテスト周りが制限されている。
・ 単体テスト機能が無いので、外部ツールの NUnit を使う必要がある。
・ アドインが使えないので、TestDriven.Net を使うには工夫が必要がある。
・ C++ とか C# とか言語別製品になっているため、言語の混在したソリューションが作れない。
→ C++で作ったDLLを参照して使うC#のプロジェクトのデバッグでC++のソースは見えない。
えーと、間違いとか校正よろしく。

793 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:18:27 ]
> 1. 無償
> Visual Studio 2008 Express Edition は無償で提供しています。さらに作ったアプリケーションは商用利用が可能です。

これすごいですね

794 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:21:14 ]
>>789
オヌヌメのサイトある?

795 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:21:40 ]
初心者スレ行けば?



796 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 19:25:04 ]
ちょいと行ってくる

797 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 20:10:15 ]
>>793
すごくない
当たり前のこと

798 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 20:13:23 ]
C# Builder Personalとか、商用利用はダメじゃなかったっけ?
それを考えれば「当たり前」とは言えないでしょ。

799 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 20:33:50 ]
何でも人の逆を言ってみたいだけのガキを相手にしてくてもいいのに

800 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 20:35:21 ]
天邪鬼か

801 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 21:22:35 ]
「天邪鬼」とは言えないでしょ。

802 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:20:26 ]
C#ExpressはFormだけで完結するアプリ作るんなら必要十分だが
DB絡むと途端に使えない子になる
まあ無償だからしょうがないが

803 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 22:30:24 ]
>>792
>・ アドインが使えないので、TestDriven.Net を使うには工夫が必要がある。

どうすれば使えるんですか?
ご教示ください。

804 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 23:47:48 ]
>>803
スマンやり方を忘れてしまった。
project.iifp.biz/modules/mydownloads/
から拾ってきたテンプレートでごしょごしょやった気がしたが・・・

NCover単体でやってたのかな?カバレッジのために使ってたし。

805 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 05:58:35 ]
>>802
そんなことないよ。



806 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 14:59:05 ]
スレッドの意味がよくわかりません。
デリゲートと比較すると引数もコールバックも渡せない。
敢えてスレッドを選択するのはどういう場面なんでしょうか。

807 名前:682 mailto:sage [2010/05/06(木) 15:03:43 ]
自力でなんとか調べて、InsertionMark.NearestIndexとEnsureVisibleで
ある程度D&D時のスクロールは実現出来た
ただ、上方向へはスクロールするけど下方向がスクロールしない
マウス近くのアイテムが表示範囲に入ったところで止まってしまう
下方向へもスクロールするにはどうしたらいい?

808 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 15:08:32 ]
>>806
常にバックグランドで待ち構えていなければならないような用途かな
例えばアーカイバプロジェクトDLLはほとんどがマルチスレッドに対応していない
だからアクセス専用スレッド待機させて、生産者消費者パターンでシリアル化する、みたいな

まあUIスレッドのために存在する、って言っちゃってもいいんだけどw

809 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 15:34:01 ]
>>808
なるほど。
スレッド=タスク分散のためのマルチスレッド処理に使う物
と勝手に思い込んでたのでなんでこんな糞仕様なのかと疑問だったのですが
そもそもそういうことに使うものじゃないんですね。
もやが晴れましたどうもありがとうございました。

810 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 17:48:37 ]
>スレッド=タスク分散のためのマルチスレッド処理に使う物

これはこれで合ってるんじゃね?

811 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 17:50:49 ]
デリゲートの非同期呼び出しやスレッドプールはスレッドを使って実装されてる
ややこしい手続きを引き受けてくれる代理店みたいなもん

812 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 20:19:22 ]
非同期呼び出しのおかげで明示的にスレッドを使う機会がめっきり減った。

813 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 21:10:36 ]
ExcelやVisualStudioのタブみたいなTabControlが使いたい件。

814 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 21:20:29 ]
メールのタイトル?

815 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 21:21:39 ]
つWPF



816 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:17:45 ]
コードプロジェクト行けばそういうサンプルなんて何ぼでもあるぞ
とくにそれは見掛けたことがあるから絶対になるわ

817 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 22:25:55 ]
>>816
You've got my 5!

818 名前:デフォルトの名無しさん [2010/05/07(金) 03:39:53 ]
てs

819 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 02:12:36 ]
ThreadPoolもどきを実装してるのは俺だけでいい

820 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 07:42:37 ]
CCRもどきを実装するのも俺だけで十分だ( ^ω^)・・・

821 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 08:56:32 ]
時間で消えるメッセージボックスもどきを実装させられるのも俺だけで十分だ

822 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 10:49:32 ]
それは割とよくあるな。

823 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:39:24 ]
そんなもん非同期にしなくてもWinFormsのタイマで頻繁に時間調べればいいだけじゃね
5分で作れる

824 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 12:20:56 ]
>>823
安価付けろタコ

825 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:30:30 ]
User32.dllに MessageBoxTimeout という関数があってな。



826 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:56:24 ]
>>825
当然それじゃ要求に満たないわけでな。

827 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 14:36:21 ]
>>823
メッセージボックスの場合はDialogResult返さないといけないから、
普通はそう単純にはいかない。

あと数値だけ受け付けるTextBoxとかComboBoxなんかも
かなりの頻度で車輪の再発明されてそうだな。

828 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 14:46:23 ]
入力内容の制限は本来はバインディングでやるべきだな
WPFでは実際にそうなってるが

829 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 14:56:51 ]
>>828
それって「馬鹿の一つ覚え」でしょ。
そういう方法論もあるとは思うが、それが「べき」なんていえる万能な方法なわけがない。

だいいち、入力を弾くなんていうGUI寄りの泥臭い処理を
データを持ってるオブジェクトが担当するなんて、どう考えても悪い設計にしか思えない。

830 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:06:09 ]
>>829
「入力を弾く」のはロジックであって、そもそもGUIの仕事ではない。
逆に入力ルールをUIに持たせようとする神経を疑う。
UIは、あくまでデータの見せ方を定義するもの。ロジックは他に任せろ。

831 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:07:39 ]
いい加減スレ違い。

832 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:13:47 ]
>>830
話が噛みあってないな恐らく。
同じ「入力を弾く」という言葉を使っていても、
君は例えば設定範囲外の数値を弾くようなことを想定しているんだろう。

俺はそんな話はしてないの。(>>827)

833 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:46:18 ]
C#ってもしかしてJavaにそっくり?
Javaが使えれば、何となくC#もできちゃう?

834 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:47:25 ]
よくわからんな、入力書式のチェックの話でしょ?別に勘違いはしてないと思う。
指定したキー(文字)以外の入力は受け付けない、という機能であればViewの仕事だと
思うけど、そういう話?

# 単にキーで入力制限すると、数値しか入力させないつもりが"1.1.0-"なんて
# 入力ができちゃったりするから、個人的にはあんまり意味ないと思うけど。


835 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 15:56:58 ]
>>834
そうそういう話。
君自身言ってるとおり、そんなのはViewあるいはGUI部品の仕事でしょ。

1個以上の小数点の入力を抑止したり、先頭以外の-の入力を抑止(あるいは、初めて
-が入力された時、先頭に-を表示する)するのは別に難しくない。というか普通そうする。



836 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:00:08 ]
>>833
Javaよりだいぶ洗練されてるけど、まあ、似てるっちゃ似てる。

元々が「SUNがあまりに要領得ないからうちでJavaに似た別言語創るよ」みたなノリだし。
今やJavaよりかなり高機能になってるけど、逆にJava側がC#の機能を輸入してたりするし。


837 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 16:03:23 ]
Javaより良いのか!
今まで興味なかったけど、何だか急に興味が沸いてきちゃったじゃないか。

838 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:11:36 ]
ただ最近ちょっと言語仕様太りすぎじゃね?って気もしてきたけど
IDEが優秀だからあんまり気にならなかったり

839 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:18:31 ]
>>837
後発で MS が作ってるものが悪いわけないじゃん。
MS が Java の仕様をあれこれ改善しようとして、それを SUN が断固拒否しなけりゃ
今頃 Java はいい言語になってただろうにねぇ。

>>838
IDE 抜きでもなかなかきれいにまとめてると思うよ、あれだけの高機能を。

840 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:19:42 ]
実際はVJ++で改悪しようとしてたけどな

841 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:33:44 ]
VJ++のどこら辺が悪いかな?
Write once, run everywhere. でなくなることぐらいだったような。
いろいろ便利なので、JDK1.1で成長を止められてしまったのに、長々と使われていた(日本ではほとんど使われなかったけど)。

842 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:35:06 ]
テキストボックスに開いたCSVを、1次元配列に入れていこうとしたのですが
配列の要素数が後ろに増えていくと思ったのですが
1行分の要素しか格納されていきません
要素全てを格納したいのですがどう直せばいいのでしょうか?

// 変数の宣言
string Str = "";
string[] stArrayData = {};

// テキストボックスの1行単位処理
for(int i=0;i<textBox1.Lines.Length;i++){
Str = textBox1.Lines[i]; // テキストボックスから1行取得
stArrayData = Str.Split(','); // カンマでsplit
}




843 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:35:39 ]
> Write once, run everywhere. でなくなることぐらいだったような。
それ駄目だろ、最大のウリだったのに。

844 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:42:31 ]
カンマでSplitした配列をListにAddすれば?

845 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:46:33 ]
>>841
当時 Pure Java とか言ってたくらいだし、
亜種作ることを SUN がとことん嫌ってたから。
なんか係争に発展してなかったっけ?



846 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:49:19 ]
>>841
Write once, run anywhere.
Write once, debug everywhere.

混ざってないか

>>842
stArrayData = textBox1.Lines.SelectMany(s => s.Split(',')).ToArray();

847 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 18:50:11 ]
>>844
すみません。頂いたヒントからググっても
どうにも上手くいかず

上のコードをどう直していけばよいのでしょうか

848 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:02:26 ]
C# の欠点はオープン系のみで構築したいなんて案件だとちょっと辛いってとこぐらいかな。
MONOってどうなの?業務で使った人居る?

849 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:39:02 ]
GPLが混入した時点で全く使い物にならないだろ
.NET関連のオープンソースプロジェクトってGPLより緩いライセンスがほとんどだし
サードパーティのライブラリとかも全滅

850 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:41:02 ]
>>847

// 変数の宣言
string Str = "";
List<string> arrayData = new List<string>();

// テキストボックスの1行単位処理
for (int i = 0; i < textBox1.Lines.Length; i++)
{
Str = textBox1.Lines[i]; // テキストボックスから1行取得
arrayData.AddRange(Str.Split(','));
}

// string[]に変換
// arrayData.ToArray();


851 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:52:00 ]
>>850
ありがとうございます!できました
…C#難しいよ…Perlのが楽だよ

852 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 19:54:14 ]
面倒というならわかるが難しいならそりゃPerlもわかってないんだよ
オブジェクト指向してないでしょ

853 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:03:39 ]
2002年以前の情報のままの奴がいるな。
GPLじゃなくなってから8年もたつのに。

854 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:09:30 ]
>>850
Strの場所おかしくないか?(そして何故大文字)

855 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:13:44 ]
>>854
元のソースで、とりあえずそのままでもいいところは
そのままにしているだけ、だと思う。



856 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 20:14:16 ]
本家もできてないけどな

857 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 21:14:17 ]
Perlでもあのロジックじゃ上手く行かないと思うのは俺だけか

858 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:20:25 ]
Perl はぶっちゃけオブジェクト指向する必要ないと思うぜ

859 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 23:47:15 ]
Perlでオブジェクト指向するくらいならRubyがいいな。

860 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 00:01:58 ]
スレ違い。

861 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 20:52:45 ]
enum を作るときって、関連するクラスの中に作ります?
それとも同じ名前空間内のクラスの外側に作ります?

862 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 20:54:41 ]
そのクラスの外に見せるならクラスの外に作らないとガイドライン違反

863 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 21:35:19 ]
>>862
ソースは?

864 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 21:38:28 ]
>>862
何のメリットが

865 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 21:54:25 ]
msdn.microsoft.com/ja-jp/library/ms229027%28v=VS.100%29.aspx
msdn.microsoft.com/ja-jp/library/ms182162%28v=VS.100%29.aspx
公式には完璧にアウト



866 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:06:36 ]
キリ

867 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:09:19 ]
クラス内のenumを使うユーザーコントロールがデザイン時にエラーになってかなり困ったことがあるよ。
あんまり想定されてなくて危ないのでやめたほうがいい。

868 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:27:07 ]
わかりにくいし使いにくいし探しにくい

869 名前:デフォルトの名無しさん mailto:sage [2010/05/09(日) 22:28:07 ]
>>862,865,867
なるほど。
確かに名前空間の分離で充分賄える内容でした。

とはいえ流石に enum 用の名前空間分けるのも変なかんじなんで
"Foo"StatusType みたいにそれっぽいプリフィクス付けて対処してみます。

ありがとうございました。



870 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 11:51:30 ]
めんどくせーからpublic classの中にpublic enumでつくってもごもご。

871 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:00:24 ]
namespace HogeProject
{
  public class HageClass
  {
    //(ry
  }
}
namespace HogeProject.HageClass
{
  enum StatusType
  {
    hoge = 0,
    hage = 1,
  }
}

872 名前:デフォルトの名無しさん [2010/05/10(月) 12:02:19 ]
禿ワロタw

873 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 12:04:06 ]
if(this.Status == HogeProject.HageClass.StatusType.hage)
{
  MessageBox.Show("禿");
}

874 名前:デフォルトの名無しさん [2010/05/10(月) 12:46:53 ]
C#は糞2.0
pc12.2ch.net/test/read.cgi/tech/1272608727/

875 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 13:27:17 ]
>>871
using HogeProject;

var hage = new HageClass(); // <- 名前空間はnewできない

って書けなくなるじゃん



876 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 05:38:15 ]
www.itmedia.co.jp/enterprise/articles/1004/30/news051.html
これってどうよ?

877 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 06:07:53 ]
C#で文字解析をしたいのですが、
なにかいい方法はあるでしょうか?
例えば、テキストボックスにある
文字列が
"A B" C | D -E
という場合は、
A B AND C OR D ANDNOT E
という文字列に置換したいです。
今は文字列を1バイトずつ調べて
いますが、なにかmethodを使い
よい方法があればと思い質問します。

C#は初心者ですが、よろしく
お願いします。

878 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 06:38:39 ]
正規表現とか

879 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 07:45:43 ]
ぶっちゃけいうとF#でFslex,yacc使った方が幸せになる

880 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 10:04:31 ]
C#でExcelシートを読み込む処理を作っています。
OleDbで接続して読み込むことはできるのですが、
どうしても読み込むことのできない列があり、その列の値だけは
何行目でも空になってしまいます。
試しに他のExcelファイルに変えてみましたが、最初のファイルとは別の
列がまったく読み込めませんでした。
Excelファイルに問題があるのでしょうか?
それともOleDbでDBのように読み込むには何かの制限があるのでしょうか?

よろしくお願いします。

881 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 10:17:39 ]
で、それはどんな列なんだ?

882 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 10:22:23 ]
>>881
商品一覧のようなシートで、読めない列には金額が入っています。
他の列にも同じような値が入っているのですが、一部の列だけ読めないんです。
やはりこれだけの情報では厳しいでしょうか?

883 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 10:26:28 ]
じゃぁその読めない列と読める列の適当なサンプル提示してみれば?
個人情報が残らないようにしてソースの一部とともに公開すれば親切な誰かが見てくれるかもしれんよ


884 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 10:35:27 ]
接続文字列に IMEX=1とか?

885 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 10:59:30 ]
皆さんありがとうございます。
>>884さんの仰るとおりIMEX=1を追加したところ
動作しました。

C#に全然関係ない質問しちゃって失礼しました。



886 名前:デフォルトの名無しさん [2010/05/11(火) 11:09:52 ]
>>883

いつもソース要求しかしないアホ丸出し


887 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 11:13:01 ]
どっちにしてもソース晒すのが礼儀

888 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 11:20:25 ]
>>886
予想が当たったけど、データがなければ分からんのだから、指摘変だよ。

889 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 11:38:01 ]
接続文字列の情報があれば
IMEX=1
が無かったは明白だったわけだから解決は早かったかもしれんの

890 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 15:56:07 ]
C#2010で2008のプロジェクトを変換すると
プロジェクトプロパティにビルド構成が表示されるように
なったんですが、2008と同じようにする方法はありますか?
2010の新規プロジェクトを作ると2008と同じになるようですが・・。


891 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 19:54:46 ]
上の件で、どうも元のソリューションのプラットフォームがAnyCPU
だと変換後に2008と同じような表示にならないようでした。
(テキストエディタでslnとcsprojのAnyCPUをx86に書き換えて確認)
書き忘れましたが環境はC# 2008 Express(一度削除)→C# 2010 Expressです

2010ExpressだとAnyCPUは推奨されないーとか、AnyCPUのときは手動で
ビルド構成の切り替えが必要ーとか、何か関連がありそうな事があれば
教えていただきたい。

892 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 21:47:27 ]
>>891
メニューの「ツール」ー「設定」に基本設定と上級者設定があるからそれで切り替える。
変換元が基本設定でカバーできない範囲だったら上級者設定になるんじゃねーか?
その他の微調整はカスタマイズ、オプションで。


893 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:02:23 ]
VisualStudioのエディタのデフォルトエンコードを UTF-8 から ShiftJIS に
したいのですが、何かレジストリとかで設定できないでしょうか?
保存オプションの詳細設定でいちいち変更するのが面倒になりました。
UTF-8でいいじゃないかという意見もあるでしょうが、UTF-8 をサポートしない
ツールにソースをコピーペーストすると文字が化けるので。
例) かちゅ〜しゃ
/// <summary>
/// 繝繧ケ繝
/// </summary>


894 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:11:27 ]
一旦メモ帳にペーストして再コピーすると良いよ

多分無いんじゃないかな

895 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:18:08 ]
テンプレートを修正するんだったかな。



896 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:26:34 ]
そもそもファイルの文字コードと関係なくクリップボードはUnicodeでコピーされる。



897 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:30:15 ]
つまり、vsのファイルはシフトJISだから、そのファイルを他の
エディタで開けば読めると思うが、コピペだと文字化けする、
ということか。

898 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:34:14 ]
>>896は大嘘だけどな

899 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:44:03 ]
嘘と言い切ることもできないが(CF_UNICODETEXTも付いてるから)
しかしCF_TEXTにUTF-8とか止めて欲しいもんだ

900 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:45:28 ]
UTF-8 をサポートしないツールを捨てよう

901 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:48:49 ]
WinDiffのことかー!

902 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 22:57:29 ]
windiffはもうずっと使っていないなぁ。WinMerge便利だし。
変な文字コードのクリップボードはxyzzyでクリップボードエンコーディングを指定して貼付けがいいよ。
xyzzyは貼付けの文字コード自動判別もできると楽なんだけどなぁ。

903 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:01:33 ]
秀丸はOK

904 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:07:10 ]
>>893
そんな問題に対応するクリップボード拡張ツールがあってもおかしくないな、
と思って検索したら、ベクターにこんなのあったよ。

www.vector.co.jp/soft/win95/util/se285480.html

使えるかどうかは確認してない。

905 名前:デフォルトの名無しさん mailto:sage [2010/05/11(火) 23:59:26 ]
/// <summary>
/// テスト
/// </summary>
うん、Windows7で動作。
オプションでShiftJISに変換するのとどちらが便利か比べてみる。
ありがとう。



906 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 08:11:27 ]
C#の本でVisualStudioのGUI操作を主に取り扱ってる、お勧めな本ありますでしょうか?
C#の言語仕様や文法については他の言語を知っているので詳しく書いてなくてもいいのですが。
特に、GUIコンポーネントの継承、VSS、外部参照方法など
エンタープライズ向けの操作方法が乗ってるのがありましたら教えてください。

907 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 08:20:31 ]
www.amazon.co.jp/dp/4891005009

908 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 12:06:03 ]
>>892
 ありがとう。色々いじってみました。
2010ってデフォルトがAny CPUからx86に変わったんですね。
とりあえずは32ビットwinだとx86じゃないと必ず表示されるという結論
に達しました。
 これに関連してか、Any CPUだと「プロジェクトおよびソリューション」
の「ビルド構成の詳細を表示」をOFFにしても「ソリューションのビルド」
でリリース構成としてビルドされないっぽい事がわかりました。

また何か情報あったら教えてください
ありがとうございました。



909 名前:デフォルトの名無しさん [2010/05/12(水) 12:22:26 ]
>>908
AnyCPUで作っちゃうといろいろ問題が起きるから2010では
デフォルトをx86つまり32bitにしておくことになったはず
この辺はAnyCPU vs2010とかググるとでてくるよ

まあこちらで経験した中ではブラウザコアを使った件はもろこれにあたったな
AnyCPUでブラウザコアを使うアプリ組むと64bitOS上だと64bitのIEが呼び出され
Flashまわりも64bitの物を要求するらしいんだけどないのでエラーになるとか
まあそれ以外にもいろいろあるようだけど
radikoのアプリ書いたときもろこれになった

そういう問題があるので2010ではデフォルトをx86にしてWOW64を当てにして
動かすようにしたとか

910 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 12:28:57 ]
>>909
あれから開発は進んだ?

911 名前:デフォルトの名無しさん [2010/05/12(水) 12:30:02 ]
>>910
誰と勘違いしてるのか知らないけどradiko関連は最初に作った以上はやらないよw

912 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 13:43:14 ]
普段から64bitOSで作業してるからこれにすぐ引っかかる
コーディングしてデバッグ開始して外部DLLの初期の時にもう落ちるからねえ

913 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:38:59 ]
>>845
亀だが、係争に発展した挙句SUNが負けたような

914 名前:デフォルトの名無しさん [2010/05/12(水) 18:40:53 ]
>>912
.netとかいっても内部はネイティブDLLなんかの単なるラッパーだったりするからねえ

915 名前:デフォルトの名無しさん [2010/05/12(水) 19:52:30 ]
よろしくお願いします。

VSC#2008です。

int.Parseに続くカッコ内に2バイト文字の数字を入れると、挙動がおかしいのですが
デバッグ付実行でエラーでず、素通りしてしまいます。
2バイト文字の数字をint型にするには、どういった方法がよいでしょうか。




916 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:08:30 ]
2バイト文字をint型に入れようって考えるのがそもそもおかしいと思うが…
Parseする前にワンクッション、全角数字を半角数字に置換するようにすればいい。

917 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:11:08 ]
いったん半角にすればいいじゃん。

918 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:11:38 ]
むしろReplaceで充分。

919 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:19:12 ]
その前に
>デバッグ付実行でエラーでず、素通りしてしまいます。 
の部分が変だな。どんなコードかいてるの?

920 名前:915 [2010/05/13(木) 12:34:06 ]
Microsoft.VisualBasic.Strings.strConvでNarrowにするのって、
半濁音のピは、ヒと゜に分解されるんですね・・・2文字になるのか・・・orz..

921 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:40:22 ]
濁点付き文字を別に用意したら文字数が増えすぎて文字コードの隙間に入りきらないだろ
視認性も確保できない
*作られた当時の話

922 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:40:42 ]
復活のじゅもんだって半濁音は2文字だろうが!

923 名前:915 [2010/05/13(木) 12:48:42 ]
そうでしたね、ありがとうございます・・・。
ファイル名から数字をChar.IsDigitを駆使して抜き出してから
strConvしたらうまくいきました・・。

便乗質問ですが、
int.Parseで変換しようとしている文字列が表現する数字の桁数が相当多くて、
intに入りきらない場合ってあるじゃないですか。
でね、そんなケースを実験してみたら、

return int.Parse(Microsoft.VisualBasic.Strings.StrConv(str.Substring(startindex, finalindex - startindex + 1), Microsoft.VisualBasic.VbStrConv.Narrow, 0));

デバッグ付実行なのに、何らエラー(バグったり凍ったりダイアログが勝手に出たり)でずに
素通りして、何食わぬ顔でシステムアイドル状態に戻るんですよね。

うーん。うまくいってんのかいってないのかわかんねーと悩んでいます。

924 名前:915 [2010/05/13(木) 12:51:02 ]
なるほど、
これを
OverflowException
s が MinValue 未満の数値か、MaxValue より大きい数値を表しています。
というんですね・・・。
try catch finallyで囲って強制的に例外を吸い上げる(何もしないとスルーしやがるので)しか
ないのでしょうかね・・・ORZ

msdn.microsoft.com/ja-jp/library/b3h1hf19%28VS.80%29.aspx

925 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 12:53:09 ]
COM系のイベント内でやってないか?



926 名前:915 [2010/05/13(木) 12:53:53 ]
>>919さん

わかった!INT.PARSEって明示的に例外処理を用意してやんないと
スルーするんですね?ってことであってますでしょうか。

で、厄介なのはスルー後、何事もなかったかのようにシステムアイドルに
戻るっていうこと。
何食わぬ顔で実行中のFOREACHから抜けだすし、それが記述されてるメソッドからも
抜け出す・・・。

927 名前:915 [2010/05/13(木) 12:54:42 ]
>>925
private void MainForm_DragDrop(object sender, DragEventArgs e)

内でやっています。
(MAINFORMはFORM1のことです)

928 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:02:35 ]
DragDropイベントもCOM系だな
.NETの例外はHRESULTに変換されてCOMの呼び出し元に返値として渡されるので
例外は外部に通知されない

929 名前:デフォルトの名無しさん [2010/05/13(木) 13:35:36 ]
>>928さん

まじでつか・・・ORZ
どうすりゃいいの変になりそう(byビース、ZEROより)

930 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 13:51:48 ]
いきなりParseせずチェック入れた後に変換すればいいのでは?
多倍長ライブラリでInt範囲にあるかチェック→変換
もしくは
文字数カウント→Decimal変換→Int範囲にあるかチェック→変換

931 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 14:02:07 ]
イベント内で例外処理すれば良いだけじゃん?

932 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 14:03:35 ]
>>915MSDNくらい読め、くそが。
TryParse

933 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 14:06:39 ]
TryParse()使えば

934 名前:915 [2010/05/13(木) 14:20:13 ]
>>932、933さん

ですね・・・クビ吊ってきます・・・ORZ

935 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 14:32:32 ]
お前は既に釣っている



936 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 15:29:06 ]
だれうま

937 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 15:31:15 ]
ついでに、intで範囲外ならlongを使えばいいじゃない
幾ら何でもlongを超えるような桁数扱う訳じゃないだろ
あ、先に言っとくがlong.TryParse()だからな?
intからキャストするとかマヌケなことはナシだぜ

938 名前:915 [2010/05/13(木) 16:06:38 ]
ファイル名に日付が入っている場合は、
例えば20100513で8桁。
更に時刻も入っていれば、
201005131606で12桁。

ファイル名から数字を抽出する作業でインチージャを使うのは
その時点ですでに無謀ですね・・・おrz

939 名前:デフォルトの名無しさん [2010/05/13(木) 16:09:11 ]
>>938
結局何がしたいの?
無理して数値型を最初の器にするからはまるんじゃないの?

940 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:09:19 ]
計算に使うんじゃないのかよw

941 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:19:58 ]
もういいから正規表現使えよwwwwww

942 名前:915 [2010/05/13(木) 16:26:38 ]
そんなにいっぺんにいろいろ言わないで下さい・・・滝汗

加工したいファイルをアプリにDDする。
DDされたファイルのファイル名を解析する。
ファイル名は、どのような形式か予測できない。
ファイル名は、おそらく少なくとも1文字の0でない数字が入っているものと想像する。
ファイル名の文字列のうち、頭から探っていって最初に0でない数字と出くわしたら、
そこから、数字の連続が途切れるまでシークし、
少なくとも1文字以上の数字列を抜き出す。

ということをしているんです。
抜き出した数字列をとりあえずイントにしていた、というだったんです。

シクシク・・・

943 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:46:58 ]
だったらなおさら正規表現使え
見た目難解とかの言い訳は聞かん

944 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:47:39 ]
(ノД`)シクシク

945 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:49:39 ]
おれもそれやるなら正規表現でやるわ。



946 名前:デフォルトの名無しさん [2010/05/13(木) 16:49:57 ]
>>943
難解かね?
最悪わからなければ正規表現スレで書いてもらえばいいだけだし
,netの正規表現はperl5互換だったのでその旨だけ書いておけば
人がいれば書いてくれるよ

947 名前:915 [2010/05/13(木) 16:53:47 ]
kwsk(ノД`)シクシク

948 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 16:56:10 ]
>>946
だな
とにかく>>942みたいなことをやりたいなら正規表現一択
そっから数値型に落としたいならVBのStrConv()をC#で使えばいい

949 名前:915 [2010/05/13(木) 16:57:59 ]
www.2shared.com/document/4s_FwtR1/915.html
(ノД`)シクシク

950 名前:デフォルトの名無しさん [2010/05/13(木) 16:58:18 ]
ところでたとえば>>938をどういう風に加工するの?
>例えば20100513で8桁。
>更に時刻も入っていれば、
>201005131606で12桁。
これをどうintの範囲に収めるか

ルールがないとねえ・・・

951 名前:デフォルトの名無しさん [2010/05/13(木) 17:00:30 ]
intの最大がこれか
2147483647

952 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 17:07:23 ]
>>950
いや日時って事前に解ってればDateTime型にするだろJK
例え日時と連番が混在してたとしても、正規表現で一工夫すればある程度分離可能

953 名前:デフォルトの名無しさん [2010/05/13(木) 17:09:32 ]
>>952
いやいや
事前にわかってない物をルール決めて
intの範囲に落とし込むんでしょ?

そのルールというか仕様を決めないとどうしようもないって話・・・

954 名前:915 [2010/05/13(木) 17:17:34 ]
とにかく949でアップしたおソースをゲットして、
諸先輩方からの辛口批判を希望します。

955 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 17:21:28 ]
この意図不明なソース見てどうしろと?
意味じゃなくて意図が不明
まず仕様をはっきりさせるのが先だ



956 名前:デフォルトの名無しさん [2010/05/13(木) 17:21:55 ]
>>954
本人だったのか
使い方わからんし、いろいろポップアップするしでスルーしてたわw
できれば>>4>>7のコード貼るサイト使ってくれ

957 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 17:22:52 ]
949は怖くてダウンロード出来ません

958 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 19:25:45 ]
>>942-943
new Regex("(\D*?(\d*?)\D*?)", RegexOptions.IgnoreCase)
要するにこうか?
未検証だからこのまま動くかどうかは知らん

959 名前:958 mailto:sage [2010/05/13(木) 19:27:11 ]
おっと最後の繰り返しが抜けてた
new Regex("(\D*?(\d*?)\D*?)*", RegexOptions.IgnoreCase)
こうだな

960 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 21:33:49 ]
なんのこっちゃさっぱり分からん。
915が説明すらまともに出来ないクズなのか、俺の頭が悪いのか

961 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:05:51 ]
さっぱり分かるけど、21億、または42億を超えるような数字が取れてしまった場合どうするのかと、
数字が含まれていない可能性もあると書いているのに、1文字以上の数字列を返すところ

後者は"0"返せばいいのかな。

962 名前:デフォルトの名無しさん mailto:sage [2010/05/13(木) 23:07:27 ]
そもそも数値が欲しいのか数字列が欲しいのかすら分からんわけで

963 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 01:45:28 ]
おまんこが欲しいです…

964 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 03:13:16 ]
だったらこんな板にいないで歌舞伎町にでも飛び出せ
早くしろ

965 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 08:40:37 ]
要するに文字列から「連続した数字文字列」を抽出したいといことなんだろう。
何に使用するかは知らないけど。



966 名前:915 [2010/05/14(金) 09:27:23 ]
>>965
そのとおりでつ!
ただし、数字文字列の先頭は0であってはならない。
抽出した数字文字列は1バイト文字に変換しなければならない。

でっつ!

967 名前:デフォルトの名無しさん [2010/05/14(金) 09:54:03 ]
あ、いや、むりして数字にしなくても、数字文字から成る文字列stringのままでもいいかも・・・。
でも、その代わり全角か半角か混在している場合はどちらかに統一するような処理をしたいけれどもでつ。

968 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 10:09:35 ]
ジョニー・デッツ

969 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 12:26:36 ]
でっつ奉公

970 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 13:28:59 ]
>>966
>>959

971 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 14:35:15 ]
>>966
間違っています。
以上。
はい次の方。

972 名前:967 [2010/05/14(金) 15:16:49 ]
915です、とりあえず戻り値をintじゃなくstringのままにしたら、全く問題ありませんでした。
諸先輩方、ありがとうございました。

973 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 15:31:59 ]
ゆとりらしい解決だったな

974 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 17:45:06 ]
結局設計意図がわからなかった

975 名前:デフォルトの名無しさん mailto:sage [2010/05/14(金) 19:43:33 ]
ぽかーん



976 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 13:54:24 ]
f

977 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 20:23:26 ]
機械制御プログラムとかで、コマンド送信時にタイムアウト値を指定する必要があります。
それぞれのコマンドに推奨の最低タイムアウト値が存在するのですが、
こういうのは enum で定義した方がいいんでしょうか?
それとも const int の方が良いのでしょうか?

それぞれのコマンド送信メソッドではタイムアウト値は int で受けつける仕様にする予定です。
(最低タイムアウト値 +- αの値を指定する必要があるため)


978 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 20:25:11 ]
readonly int

979 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 20:27:42 ]
static readonly intに訂正
constはできるだけ使わない(値そのものに意味があるenumも同じ)

980 名前:977 mailto:sage [2010/05/15(土) 21:25:43 ]
値そのものに意味がある enum は NG ですか。
enum → 意味のある数字への変換メソッド等用意するのが正道ということでしょうか?

機械制御のコマンドも数値で表現されているのですが、想定していない数字を受けつけないよう
enum で型を作ってメソッドにわたすようにしていたのですが、
これは適当なクラスを作って定数を持たせるようにする方がいいのかな?

例)
class ControlCode {
public int Value { get; private set }
private ControlCode(int value) { Value = value; }

public readonly ControlCode Reset = new ControlCode(101);
.....
}

... public void SendControlCode(ControlCode code, int timeout);


981 名前:デフォルトの名無しさん mailto:sage [2010/05/15(土) 22:08:30 ]
別にそのコマンドの数値自体には意味はないんだし
絶対にその値を変えることが無いと言い切れるならenumでもいいと思うけどな
値をラップする型を作る方法をとるのであればクラスじゃなくて構造体使うのが普通
==と!=とGetHashCodeは必ず実装すること
WPFなんかでは列挙体みたいな構造体は確かに多用されてる

982 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 09:07:14 ]
なるほど。

MSDN を再度見返してみましたが、後から変更がかかりそうな定数なんかは enum にするのは
よろしくないんであって、意味のある数字を持たせてはいけないってわけではなさそうですね。

今後の拡張や定数自体にプロパティを持たせる必要があるか等考えて再検討してみます。
ありがとうございました。

983 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 09:51:40 ]
enumにご執心のようだが、同じ数値セットできないことは認識してるのかな。
異なるコマンドでタイムアウト値が同じ状況は十分ありえそうだが。

984 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 11:53:12 ]
>>983
できるよ。

985 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 14:09:28 ]
んな馬鹿なと思ってためしてみたら本当に出来たでござる



986 名前:デフォルトの名無しさん [2010/05/16(日) 14:13:00 ]
enumって手抜き用みたいなもんでしょ

987 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 14:17:44 ]
>>984
んな馬鹿なとおもったけど>>985のレスでできるのだなぁと思い、そういやC#のenumはかなり変更されたんだったなと思い出した

988 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 14:25:01 ]
>>985
感謝しろ

989 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 14:36:10 ]
これが出来るって事?


public enum eSwich {
VALUE1 = 1,
VALUE2 = 1
}

990 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 14:37:13 ]
昔からできたでしょ

991 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 15:02:47 ]
これとかよくあるパターンだろ

enum Hoge { A, B, Default = A }

ついでに、別環境(Compactなど)で値が異なるとか

enum Hoge { A, B, Default = B }

>>982
・要素を追加/削除しない
・要素の値を変更しない
・利用者が値を意識する必要が無い

を守れないならenumは不適切

992 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 17:32:26 ]
>>991
ふーん

993 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:21:10 ]
列挙体といえば.NET4で今更Enum.HasFlagが追加されたわけだけどこんなの使う?
ものすごい遅そうなんだけど

994 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:45:44 ]
これから新しく書くものには使う。

995 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:51:43 ]
[Flags]が付いた列挙体に対してはコンパイラが
その型専用に最適化されたバージョンのHasFlagを生成するとかできなかったのかな
ボックス化+リフレクションだからビット演算に比べると途方もなく巨大なコストだよな



996 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 20:58:11 ]
using とか lock みたいな構文糖衣でもよかったよね。

997 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:10:16 ]
unko

998 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:18:05 ]
static bool HasFlag<T>(T value, T flag) {
return ((dynamic)value & flag) == flag;
}
こうしてみたらEnum.HasFlagの1/10くらいの処理時間になった
それでもビットマスクの数百倍だけどdynamic結構速いね

999 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:18:23 ]
o

1000 名前:デフォルトの名無しさん mailto:sage [2010/05/16(日) 21:19:43 ]
C#最強

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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