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 くらい
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 メニューの「ツール」ー「設定」に基本設定と上級者設定があるからそれで切り替える。 変換元が基本設定でカバーできない範囲だったら上級者設定になるんじゃねーか? その他の微調整はカスタマイズ、オプションで。