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


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

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



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始めねば・・・。






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

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

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