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 くらい
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 ] >>915 MSDNくらい読め、くそが。 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を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。