1 名前:デフォルトの名無しさん [2008/02/27(水) 18:24:40 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part24 pc11.2ch.net/test/read.cgi/tech/1202028267/
856 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:11:06 ] >>854 実際にこんなことやろうとしても、 割り当てられていないメモリを読み書きしようとしたとして、 OSに止められるだけだからな。 int* p = (int*)10000; int x = *p; *p = 666; int x = Marshal.ReadInt32((IntPtr)10000); Marshal.WriteInt32((IntPtr)10000, 666);
857 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:13:37 ] どうせ構造体のポインタが欲しいだけとエスパー
858 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:16:57 ] >>852 見て>>856 が思いつかないならポインタなんか触るべきじゃない
859 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:18:32 ] つかC#でポインタ使うとこってどこ?
860 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:25:08 ] Interopとか画像処理とか構造体の配列触るときによっぽどパフォーマンスが大事なときとか
861 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:56:57 ] >>854 勘違いしてない? ここはC♯(シーシャープ)という言語のスレだぞ。 もしかして学校の宿題なら、それは、CとかC++という言語じゃなかったか?
862 名前:822 mailto:sage [2008/03/18(火) 00:38:27 ] >>818 ,823-824 レスサンクス 明日試してみる。
863 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:36:23 ] 多次元配列は使いそうだけど、ジャグ配列って使わないよな? 覚えるのめんどくさいんだが・・・
864 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:40:27 ] >>863 Cから来たら無意識にジャグの方を使う。
865 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:42:29 ] >>864 ・・・まじかよ、じゃあ素直に勉強するわ d
866 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:46:24 ] いや勉強するもなにも 宣言と要素アクセスのやり方だけ知ってりゃいいんじゃん ジャグのほうは単なる配列を要素とする配列ってだけの話だし 無意識に使われるジャグ配列って「ジャグ」じゃなくね?
867 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:09:39 ] List<int[]> lst = new List<int[]>(); //動的に配列を追加していくループ for(...){ lst.Add(....); } int[][] jag = lst.ToArray(); 格納される配列の要素数が動的に変化するような場合とかもあるし、 ジャグのが柔軟。
868 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:56:09 ] 普通ジャグにしね? ジャグじゃないとN次元配列が書けんし
869 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 04:30:05 ] そんなことはない。
870 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 06:30:03 ] ジャグ配列ってすごく使いにくいぞ
871 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 07:46:45 ] パフォーマンスはジャグの方が全然良いけどな。
872 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:16:17 ] 使いにくさで言うと断然多次元配列だと思うけど Sortメソッドも使えない
873 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:24:21 ] 多次元配列よりジャグの方が直感的なんだよな。気がついたらジャグで作ってることが多い気がする。 初期化するときも使用するときも、機械的にいつも似たようなfor文で処理できるし。 >>871 すごく初耳。
874 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:50:02 ] >>873 rectangular の方は a[i, j] → *(a + i *WIDTH + j) jagged の方は a[i][j] → *(*(a + i) + j) 相当で、一見 rectangular の方が早そう(間接参照よりは掛け算の方が軽い)だけど、 1次元配列の参照は IL が専用命令持ってるけど、 多次元配列参照命令がない関係で jagged の方が早いって聞く。 jagged 配列の方が柔軟だけど、new しまくらないといけないのが面倒なときもあるのよね。
875 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 11:40:01 ] ジャグ配列の方が速いのは一番右の添え字が連続したアクセスの場合だけだったような
876 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:44:04 ] メインフォームにおいて、文字キー T とか Y のkeyPressイベントを起こすにはどうしたらいいんですか? private void MainForm_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { } の中に記述してもイベントそれ自体が発生しないんですが・・・
877 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:07:50 ] フォーカスがないだけだろ
878 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:08:47 ] >>876 そのイベントハンドラはちゃんとイベントにバインドしてあるのか
879 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:23:40 ] KeyPreview
880 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:56:20 ] get,setの利点が不明(C#2.0) public string Hoge{ get{ return this.hoge; }} こう書くと public string getHoge{ return this.hoge; } と書くのに比べて何が幸せなんだぜ?
881 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:12:21 ] Console.WriteLine(Hoge); Console.WriteLine(getHoge()); あと,リフレクションとの相性
882 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:14:58 ] しりあらいず
883 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:22:10 ] リフレクションというかコンポーネントモデルやな。PropertyDescriptor。 …ヘジは1.0からこの辺のものを第一言語要素にする点こそ重要って 言ってた気がするがスルーされっぷりが可哀想というか
884 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:26:51 ] getHogeがメソッドでないから、きっと記述方法のことを言ってるんだとエスパー 括弧なしのgetHogeでHogeプロパティ作れと プロパティとアスセサ(メソッド)の違いについてならそういう風に書くだろうし
885 名前:デフォルトの名無しさん [2008/03/18(火) 17:35:12 ] iPod touchみたいな慣性付きスムーズスクロールはどうやるのでしょうか? そもそも普通のスムーズスクロールはどうやるのでしょうか
886 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:40:07 ] 以下のプログラムから出力される数字を、 wavファイルにするにはどうすればいいでしょうか。 #include <iostream> #include <math.h> using namespace std; const int rate=44100; int p(double q, int f, int t) { const double pi=3.1415; double x; x=sin(2*pi*f/rate*q); cout << int(x*127+128+0.4999); cout << "\n"; if (f<t) p(q,f+1,t); return 0; } int main(void) { p(440.0 , 0, rate); return 0; }
887 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:44:02 ] ごめ。 c++スレかと思った・・忘れてください
888 名前:デフォルトの名無しさん [2008/03/18(火) 19:03:44 ] PictureBoxを使って、 Font font = new Font(fontName, size); g.DrawString(code, font, Brushes.White, 0, 0); で、1文字描画します。 この時描画した文字の幅を求める手段を教えてください。
889 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:07:52 ] MeasureString
890 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:09:56 ] WebColorConverterのインスタンスを取得するにはどうするのが正しいの? MSDNにはTypeConverterのインスタンスは直接作らずにTypeDescriptorを使えと書いてあるけど TypeDesctiptor.GetConverter(typeof(Color))だとColorConverterが返ってきてしまう
891 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:07:38 ] 今でも>>886 のことが忘れられない…
892 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:24:13 ] 宇宙仮面のC#プログラミングってサイトの、ED が点滅するボタンのページ >次に、ツールバーのカスタマイズにより、コンパイルしたアセンブリーをツールバーに登録します。 ってどういうこと? ツールバーのユーザー設定? コンパイルしたアセンブリーって項目があるってこと?
893 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:33:46 ] 事故解決しましたごめんなさい
894 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:02:56 ] class A<T> { ・・・ } とあるとき、Tの型をAのクラスの外から調べて使っていく便利な方法があったら教えてください。 リフレクションを使えばなんでもできますが、できれば使用したくないです。 C++ では class A<T> { typedef T ElementType ; } とできたので話は簡単だったんですが・・・ #VBのLinq to XMLが便利すぎ〜〜〜〜ぐはぁぁぁぁ #ヘジたぁぁぁん
895 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:05:32 ] dateTimePickerをパースして1日追加して表示しようとしているのですがなりません 何か勘違いしているのでしょうか? DateTime dt = DateTime.Parse(dateTimePicker.Text); dt.AddDays(1); lvi.SubItems.Add(dt.ToShortDateString());
896 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:11:38 ] >>894 なにがしたいのかわからんけど class A<T> { public Type ElementType = typeof(T); } こんなんじゃだめなの?
897 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:11:49 ] >>895 勘違いでーす DateTime dt = DateTime.Parse(dateTimePicker.Text); dt=dt.AddDays(1); lvi.SubItems.Add(dt.ToShortDateString());
898 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:13:29 ] >>896 それだと、 A.ElementType inst = new A.ElementType(); とかできなくて不便なんですよ。
899 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:19:26 ] >>898 じゃあ void Method<T>(A<T> a) where T : new(){ T item = new T(); } こうじゃねえの
900 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:24:16 ] >>898 A<T>にこんなメソッド追加すれば public T CreateElement() { return new T(); }
901 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:27:08 ] >>899 それもちょっとなんですよね、全部のメソッドについてやらないといけなくて、場当たり感が・・・ C#に移ってみたもののC++とは勝手が違って難しいです、逆にC#では意外とあっさりできる物なども多いのですが。
902 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:28:39 ] >>897 ありがとうございます。 盲目でした・・・。
903 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:48:06 ] >>895 なんで DateTime dt = dateTimePicker.Value.Date.AddDays(1); じゃだめなの?
904 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:51:20 ] どうでもいいところに反論したがる奴がいるなw
905 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:10:16 ] 903じゃないがどうでもいいかぁ? カスタムフォーマットとかで元のコード落ちたりしないだろうか
906 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:15:29 ] 大体TをnewするよりA<T>を使う側がそのものずばりをnewする方がうまくいくと思うがなあ
907 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:16:47 ] >>906 だよね 使う側はTがなにか知ってるんだし
908 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:31:56 ] てか、いろんなA<T>に対して同様の処理をしたいなら それこそ、その関数なりクラスなりをジェネリックにすべきだと思うが
909 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:37:48 ] 独り言キモイ
910 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:41:47 ] 馬鹿ってのはどうして自分のことばを自分に適用できないのかねw 統合失調なんじゃないのチミ
911 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:59:40 ] >>910 因果関係が逆な気もするぞ。 そういう人間のことを馬鹿というのでは。
912 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:10:00 ] VB.NET質問スレ(Part25) pc11.2ch.net/test/read.cgi/tech/1203650042/294 294 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/14(金) 20:29:48 ふーん偉そうに他人を「偉そうだ」と言うのは偉そうじゃないんだ。 本当馬鹿ってのはどうしていつでも自分自身の言葉を自分に適用できないんざんしょ不思議。 まあ基本であることに全然異議はないんだけど、その基本すら理解できない御仁がいらっしゃるから 「偉そうに」貴殿はまちがっておられるぞよ、と進言差し上げたしだいなんでございますがね。 345 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/17(月) 21:08:14 多分「俺」に否定的な言葉を投げる奴はみんな「(また)お前」なんだよw 冗談抜きで最近こういう統合失調一歩手前って人間増えてる気がするね またお前か。 ふらっとスレだけは荒らさないでくれよな。
913 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:38:20 ] どう見てもビョーキだなwww
914 名前:デフォルトの名無しさん [2008/03/19(水) 16:04:07 ] 統合失調好きだなあ
915 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:03:12 ] >>912 言ってるそばから自分棚上げかよw 本当馬鹿ってのはどうして自分自身の吐いてる言葉を自分に適用できんの? それから「荒れて」いるのはスレじゃなくてお前さん自身の脆弱な心、でしょ?w 馬鹿で心が弱いお前さんの感情が刺激されること=スレが荒れること、ではないよ。
916 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:11:08 ] マ板でやれ
917 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 00:39:48 ] Webbrowserコントロールがjavascript周りでエラーを吐きまくるのでオフにしたいんですが、 サンプルコードが載ったページをご存じないですか? いくつか類似のページはありますが(www.divakk.co.jp/aoyagi/csharp_tips_wbzone.html )、 旧.Net用でVS2005/2008では使用できませんでした。 ページを読み込む前にDLしたページキャッシュを読んで書き換えて無効化する方法も考えましたが、 読み込みをキャンセルさせる方法が分からず、汎用性もないため諦めました
918 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:00:45 ] USBカメラを単純にプレビューするだけのサンプルってないですかね? 色々探してみたんだけど、どれも複雑で。。。
919 名前:デフォルトの名無しさん [2008/03/20(木) 03:01:04 ] >>917 WebBrowser.ScriptErrorsSuppressed = true;
920 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:15:31 ] なんでVBのサンプルがC#より上にあるんだよ
921 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:18:37 ] アルファベット順だろうな
922 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:29:42 ] じゃあCの方が上だろ
923 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 08:32:49 ] ゲイツがBASIC世代だから?
924 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:06:52 ] xmlでnode名とvalueを指定して 特定箇所のvalueを更新する方法は ありますか? ファイル丸ごと読み込んで書き出す方法しか 知らないので教えて下さい
925 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:06:39 ] >>922 Visual BasicとVisual C#とVisual C++だったらVBが先だろ。
926 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:49:55 ] >>924 1) 一気に読み込んで、DOMを使って編集する。 2) XmlReaderで少しずつ読みながら、XmlWriterで書き出す。
927 名前:デフォルトの名無しさん [2008/03/21(金) 14:02:14 ] Linqを使い始めたら、yield を使った即席の IEnumerable ができると便利だと思ったのですが・・・ static System.Collections.Generic.IEnumerable<int> CreateInt100() { for (int i = 0; i < 100; ++i) yield return i; } private void button2_Click(object sender, EventArgs e) { System.Collections.Generic.IEnumerable<int> collection = CreateInt100(); foreach (var element in collection) System.Console.WriteLine(element); } 上のメソッド CreateInt100() を毎回作るのは面倒くさいですし、名前空間を汚すので匿名メソッドにしてみようかと考えました。 private void button2_Click(object sender, EventArgs e) { System.Func<System.Collections.Generic.IEnumerable<int>> lanbda = () => { for (int i = 0; i < 100; ++i) yield return i; }; System.Collections.Generic.IEnumerable<int> collection = lanbda(); foreach (var element in collection) System.Console.WriteLine(element); } 残念ながらエラーになってしまうのですが、何か良い方法をご存知の方がおられましたら教えてください。
928 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:08:54 ] Enumerable.Range
929 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:23:33 ] >>928 すまみせん、int のシーケンスは例であって、int のシーケンスを作りたい訳ではないです。 手際よく yield を含むコードを書き下したいのです。
930 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:25:27 ] できないなあ
931 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:32:03 ] ツリーコンテナの列挙をするときには便利な機能と割り切ってそれ以上深く考える事をしなかったんですが・・・ yield 便利だね、なんでもかんでもコレで書いてしまいたくなる衝動に駆られます。
932 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:33:50 ] それはするべきじゃないだろう
933 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:36:43 ] Haskellの無限リストより書き方が直観的で良いです
934 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:53:32 ] クラスの比較をするときに、比較したいメンバを片っ端から .Eulals 等で比較するメソッドを 片っ端から書きまくって、Eulals , GetHashCode …とこれまた片っ端から書きまくって 比較対照数×比較系メソッド数分の条件判断を書くという、ちょっと間違えれば書き損じ出まくりです yield を使って列挙する側は、列挙する側、比較する側は比較する側とバシッと分けて書いてみると…なかなか気持ちいいです。
935 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:58:46 ] >>934 よくわかんない コードで頼む
936 名前:デフォルトの名無しさん [2008/03/21(金) 15:11:35 ] 余りに気持ちいいので、ちょっと紹介しておきます。 クラス C の Equals GetHashCode のオーバーライドが、メンバーの変更によって変更しなくても済みやすくなっています。 using System.Collections.Generic; using System.Linq; public class C { public int Field1; public int Field2; public string Field3; public override bool Equals(object obj) { C tmp = obj as C; if (tmp == null) return false; IEnumerable<object> x = this.CreateFieldEnumerable(); IEnumerable<object> y = tmp.CreateFieldEnumerable(); return x.SequenceEqual(y); } public override int GetHashCode() { return CreateFieldEnumerable().Sum((a0) => a0.GetHashCode()); } IEnumerable<object> CreateFieldEnumerable() { yield return Field1; yield return Field2; yield return Field3; } };
937 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:23:32 ] 文字がアルファベットかどうか判定したいんだけど、 Char.IsLetter('あ'); の結果がtrueを返してくる。 ほかにいい方法ありますか?
938 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:34:09 ] >>936 GetHashCode()に和を使うのはどうかと
939 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:35:08 ] >>937 ( ゚д゚)つ正規表現
940 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:36:15 ] a<= x && x <= z || A <= x && x <= Z
941 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:36:35 ] >>938 そんなの問題があるならテキトーに替えてくださいよ(汗
942 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:39:04 ] >>937 「アルファベット」の定義は?
943 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:44:27 ] HashCodeの作り方がよくわからんからEqualsのオーバーライドもあまりやりたくないな
944 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:10:50 ] >>939 >>940 >>942 どうもです。普通にa-zA-Zで比較して判定します。 それにしてもMSDNのあの説明では日本人は勘違いしますね。 MSは苦労したとは思いますが。
945 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:30:12 ] 日本語のアルファベットはひらがな、カタカナ 英語のアルファベットはA〜Z 単にアルファベットと聞かれたらどちらか分からない。
946 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:37:49 ] 一般的な日本人はアルファベットと言われたらA-Zの26文字のことだと思う ANK=Alphabet Numeric Kanaって単語だってあるのに。
947 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:44:07 ] >>945 MessageBox.Show(char.IsLetter('山').ToString());
948 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:57:23 ] >>944 ぼくは一般的じゃないんですかそうでつか><
949 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:05:24 ] >>948 私は >>946 とは別人ですよ。あなたは人より教養があるんだと思います。
950 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:30:00 ] ギリシャ文字はアルファベットの名前からしてもアルファベットだし、 ヘブライ人も彼らの文字をアレフベートって呼んでるし、 そう考えると、ヘブライ文字の親類のアラビア文字もアルファベットだし、
951 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:57:47 ] >926 domとうい単語しらなかったです ありがとう
952 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 18:09:09 ] もうとっくに結論でてますが・・・ 昔と違って、アルファベットの概念が広がっているね int 山 = 5 ; とか、コンパイル通るし、UTF8 で便利になった反面混乱も多々あり。 ja.wikipedia.org/wiki/Unicode あえてライブラリを使うなら、基本ラテン文字 (ASCII互換)、かつアルファベットを調べるとなると Char.IsLetter('あ') && 'あ' <= 0x7f アホ臭いから、直接文字コードを調べるのが良さそうな気がしますね。そしてせっかくの新機能があるので拡張してみた。 static public class CharExt { public static bool IsBasicLatin( this char c) { return c <= 0x7f; } } class MyClass { void func() { bool isBasicLatin = 'A'.IsBasicLatin(); // (笑 System.Console.WriteLine(isBasicLatin); } }
953 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 22:52:21 ] >>951 xsd.exe .net で検索してみな
954 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:04:31 ] なになら最近できたというらしい WPF を使ってみた。 Xamlとか一切使わずに、フルにC#でコーディングしてみたんだけど、System.Drawing.Graphics + Pain イベントと比べて断然楽だね Linqに引き続き、説明がさっぱり分らんのは相変わらずで、なんとかしてくれよマイクロソフト・・・ 簡単説明サイトをだれか作ってくれないかな・・・自分で作れってかorz
955 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:08:41 ] XAML使わないと添付プロパティとか物凄く面倒だぞ
956 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 13:32:49 ] むしろWPFはコーディングしたら負けだろ
957 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:29:50 ] 固定デザイン固定アニメーションならコーディング無しでもいいが プログラマブルに動かしたければ、やはりコーディングするしかないよ いやできなくは無いが、逆に面倒になるだけという意味で。
958 名前:954 mailto:sage [2008/03/22(土) 14:54:20 ] とりあえず棒グラフとか折れ線グラフとか作ってます、描画クリッピングの処理とか つまらない処理にも関わらず、工数の取られる作業がプロパティーの設定とGrid親子構造の作り方一つで 簡単対処できるのには驚愕しています、最後に印刷処理を作りたいのですが、どうするんだ・・・
959 名前:954 mailto:sage [2008/03/22(土) 14:58:45 ] それと、デタラメに描画が速いね、これにはタマゲタ さすがDirectX使っているだけの事はある、描画範囲外に大量にLineを配置しても全然速度低下がない。 これが System.Drawing.Graphics ベースだと、Pain 処理はややこしくなるし 手抜きして全部描画しようものならガックンガックンになるし。
960 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:42:46 ] 今C#のCUIを勉強してるんだが、練習問題ってどっかないかな? 探してみても、本とか講座とかしか出てこないんだがー
961 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:44:43 ] CUIって勉強するようなことあるのか?
962 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:49:35 ] >>961 プログラミング自体が初めてだからさ、一応勉強しとかないとと
963 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:53:20 ] ConsoleクラスちょっといじればCUI限定の問題はクリアと考えていい
964 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:54:54 ] >>959 Pain処理ってある意味間違ってないよなw >>962 unixコマンドのリファレンス引っ張ってきて実装すれば catとかtelnetとか
965 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:58:08 ] >>963 そんなもんですか、やっぱ基本的にGUI弄るってことかな ありがとうございます^ >>964 ググってみます^
966 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:58:10 ] CUIをやらなきゃいけない理由でもあんの? 初めてなら逆に手を出す必要はないと思うんだが。
967 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:13 ] >>966 いやー、やっぱ基本的なことは知っといた方が良いのかなと
968 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:51 ] CUIとかGUIなんてどうユーザとやり取りするかって話でしかない 本当にやりたいのはその先だろ? >>966 "言語の"勉強にはCUIのほうがいいと思う
969 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:58 ] 言語仕様からきっちり解説するような本だとだいたいコンソールからだよ
970 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:14:39 ] てことは、コンソールが必要になったら、その都度調べる程度で平気ってことですかね どうもです、頑張ります^
971 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:16:01 ] GUI を根本からサポートしている言語を除けば、 GUI まで教え始めるとページ数多くなるからな。
972 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:36:12 ] GUIだとはじめに必要な「おまじない」が多いし 入出力がまどろっこしいから言語仕様の解説には不向き
973 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:11:32 ] >>972 C#だと、それほどでも無いだろ、Windowクラス生成して以上終了だし。 Win32使うと、激しいことになるけど 初代VS.NETには、CUIベースのわかりやすいサンプルが多かったんですけどね。 クイックスタートのサンプルもう一度復活させてもいいと思うんだけど・・・
974 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:13:39 ] >GUI を根本からサポートしている言語を除けば、 だからな。 C# は GUI に力要れてるから問題ない。
975 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:20:50 ] 言語の勉強する場合、色んなロジックを書いて その処理結果を簡単に出力出来るという点では、 コンソールの方が簡単でいいよね。 GUIだと、そもそものイベントドリブンの仕組みから 色んなコントロールの説明とかしなくちゃならないから。 いきなり、言語の学習の次のステップからになってしまう。
976 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:21:32 ] 下手な入門本でGUIだとすぐVSでポトペタだからなぁ。
977 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:24:32 ] 言語の勉強なら文字の入出力ができれば別になんでもいいわけで 一番手軽なのがコンソールっていうだけ 使う話とはまた別だ
978 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:39:27 ] つまり言語の入門にはTcl/Tkが最も優れているということですね
979 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:41:44 ] WinFormsなら初心者でも簡単だけど WPFになるとXAML覚える方が大変なんじゃないか?w
980 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:59:23 ] >>975 C#の場合それは問題多いだろ、開発環境が無ければ何故その機能があるのか、そうなっているのか理解できないものが大量にあるし。 たとえば、カスタムアトリビュートしかり、深いネームスペースしかりで。
981 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:57:09 ] >>980 その反論の意味が全く分からないんだが。 では、GUIの方が入門者にとって、C♯"言語"の学習をし易いのか?
982 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:14:14 ] つか、今の初心者つったら、CUI? command.com? 何ソレ? だろ、そこから使用方法と説明が必要だ。
983 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:18:29 ] いまどきの新人にパイプの説明したら一週間考え込まれた事があるw そんなオレは、もうロートル入りだorz
984 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:24:29 ] >>982 今の初心者はcmd.exeだからな
985 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:59:38 ] .NET学習的にもPowerShellがvista標準じゃなかったのは痛いなぁ
986 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:06:46 ] プログラミング Microsoft Visual C# 2005 言語編 (マイクロソフト公式解説書) プログラミングC#―C#2.0/.NET2.0/Visual Studio2005対応(オライリー) 読むならどっち?
987 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:08:20 ] オライリーの方。 Googleブック検索でないよう少し見てみたらよかったし「初めてのC#」もよかったから。
988 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:10:30 ] そういえばC#使ってるけど未だに解説書の類を読んだ事がないな。 もう何でもpublicで作ってるしその内問題に遭ったりするんだろうか
989 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:16:40 ] まだ俺2.0止まりでXAMLとか分からないんだけど、ASP.NETとかでやってるみたく FormベースでXML使ってコントロールとか定義できる物ってことなの?
990 名前:954 mailto:sage [2008/03/22(土) 23:33:53 ] >>989 使い始めて間もないのですが・・・簡単に説明すると フラッシュみたいな物、htmlでいえば、imagタグとか適当にホームページ作成ツールで作って それに名前を付けておいて、サイズや位置情報を、プログラム側からいじくれるという仕掛け。 各種タグで表示するオブジェクトには名前がつけられて、 その名前.アトリビュート名 = 適当な値 とすると、値が書き換えられて、表示が変化します。 Gridというタグがあって、これは各種オブジェクトを格納(子タグが作れる)、ここに自分で生成したオブジェクトを追加する事もできます。 基本的な要素には、LineとかPolyLineとか、DirectXで良く見られるプリミティブ要素のようなものがあって、ページ中に線やポリゴンなども書けます。 これに座標変換行列を効果させて、回転・拡大縮小・平行移動・平行四辺形的な変形といった事ができます。 最終的にはDirectXで描画されるらしく異様に高速。 大半はデザイナでデザインしておいて、必要な所だけをコードしてしまえます。 Paintイベントで再描画のコードは書く必要なしです。
991 名前:954 mailto:sage [2008/03/22(土) 23:41:12 ] 逆にDirectXが分るなら、メッシュの中にボタンやらラベルやらといったプリミティブがあるイメージかな?
992 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:47:13 ] thx。そろそろ俺も3.0始めねば・・・。