乙……だが微妙なスレタイだな 検索の便宜というのは分かるが
ついでに C丼
C++のSTLのmapみたいなやつのC#版ありませんか?
みたいなやつ
1個目が検索キーで2個目が実態のリストでにてござる ござらぬか?
Hashtable or Dictionary<TKey, TValue>
13 :
996 :2006/06/11(日) 08:16:22
byte[]からstringはうまくいきました。ところでbyte[]からint[]とかchar[]とかも あるんでしょうか?使う予定はありませんが。
byte[] から string にするときに Encoding クラスを使ったのならば Encoding クラスのほかのメンバも見とけよ
15 :
996 :2006/06/11(日) 09:47:40
>>14 ありがとうございます。char[]はできるけどint[]は無理ってことですね
文字エンコーディングと int[] にどんな関係があるんだろ UTF-32 とかか?
数値の文字列("123456")を数値としてintに入れたいのかな? しかしそしたらなぜ配列なのかが分からんしな・・・
昔 char* cp = (char*) 1; ってコードみたけどそういう人かもしれん。
VC#2005EE 使ってますが、標準のADOでPostgreSQLに接続はできないのでしょうか? どこからかODBCドライバをDLしてくるものなのでしょうか
22 :
デフォルトの名無しさん :2006/06/11(日) 22:43:14
setが2つあってその差分の集合 あるいは両方にあるものの集合とか関数一発でとれませんか。 javaのcollectionみたいな。 setはなさそうなのでICollectionになるのか
なんで一般名詞を使わず set とか言うんだろうな C# では set はプロパティのアクセサだっつの 取りあえず .NET 2.0 の標準ライブラリの中では無いよ
List<Hoge> a,b があったとして a.FindAll(b.Contains) とか a.RemoveAll(b.Contains) とか
>>24 ありがとう。がIListとかICollectionには適応できんのか。
>>25 自分でstaticな関数を作った方が楽だと思う。
たいした難易度でもないのだし。
27 :
20 :2006/06/12(月) 05:32:11
>>21 ありがとうございます。
早速ためしてみます
∩ | | | | | | | | | | | | / ̄ ̄ヽ やばーい | |/ /| | この言語すごい神ー (・ω・)ニニニニニニニニ⊃ // | | // | | // | | // | | とノ と ノ 言語というかVisualStudioと.NetFrameworkが神な感じだけど
デバックモードの出力と、リリースコンパイルされたものの出力が違うのだが、 こういう時ってどうしたらいいのですか? 周りにはとりあえず、デバックコンパイルのものを渡しているのですが・・・。
同じならばなんでモードを切り替える必要があるのかと。
何のためのリリースモードなのかと・・・
何の出力か書いてないからわからないが、デバッグビルドとリリースビルドで異なるとすると、 System.Diagnostics.Debugでログを書いてるとか、[Conditional("DEBUG")]を使ってるとか #if DEBUG Then とやってるとかこんなところか。 DEBUGビルドだとコンパイル時の最適化とJIT時の最適化の両方をOFFにするから相当パフォーマンスが悪い。
33 :
デフォルトの名無しさん :2006/06/12(月) 15:57:29
PHPではApache+MySQLでデータベースプログラミングができましたが、 C#でこのようなデータベースプログラミングをするには、どのようにしたらいいのでしょうか?
でーたべーすぷろぐらみんぐ ってなに?
35 :
33 :2006/06/12(月) 16:09:15
書き方が悪かったかもしれません(汗 ただ単にデータベースにアクセスして、テーブルを作成したりデータを読んだり書いたりするだけです。
ADO.NET Express Edtionだとちと使いにくいかもしれない。
37 :
29 :2006/06/12(月) 16:13:15
38 :
33 :2006/06/12(月) 16:19:06
>>36-37 サーバーはSQLServerを使わないといけないのでしょうか?
Apacheサーバーを使いたいのですがよくわかりません。
VB6ではできたはずなんですが。
ぽかーん。
>>38 ApacheとMySQLの区別が付いてないようだがMySQLを使いたいなら、
ADO.NET - .NET Framework ODBC Provider - MyODBC で接続が一般的かな。
他にも方法はありそうだが調べないとわからない。
初心者用のふらっとC#に移ったほうがいいかもしれんね。
41 :
33 :2006/06/12(月) 16:30:33
43 :
デフォルトの名無しさん :2006/06/13(火) 08:28:28
string[ , ] str = { {"hoge" , "12" , "55"} , {"foo" , "6" , "33"} , {"bar" , "31" , "41"} }; こんな二次元配列があったとして2列目の項でソートしたい場合どうすればいいでしょうか。 以下のようにソートしたいのです。 string[ , ] str = { {"foo" , "6" , "33"} , {"hoge" , "12" , "55"} , {"bar" , "31" , "41"} };
多次元配列は滅べ。 しかも文字列なのに数値でソートかよ。
ワロス
質問。 構造体は既定のコンストラクタが作れず、 引数ありのコンストラクタを使わずに そのまま宣言した場合は各メンバをそれぞれ初期化しないといけないよな? でも、 Point p = new Point(); Console.WriteLine( p.X ); これで動くのはなぜ???
>>43 ジャグ配列ならIComparer<string[]>実装してArray.Sortで簡単
>>44 >そのまま宣言した場合は各メンバをそれぞれ初期化しないといけないよな
んにゃ。既定のコンストラクタはコンパイラが作る。
そいつでフィールドは既定値で初期化される
>>48 あ、本当だ。
自分で作った構造体の既定のコンストラクタを呼んだときはちゃんと初期化されてる。
頭が混乱していたのがすっきりしたよ、thx。
>>48 > IComparer<string[]>実装して
そこは匿名メソッドと洒落込むところじゃね?
>>44 クラスを作って、それをリストで管理した方が楽だよねぇ・・
汎用的なデリゲートをいちいち定義するのめんどくない? void Action<T>の他にobject返却値付とかあればいいのに。
Func<T> Func<T1, T2> Func<T1, T2, T3> Func<T1, T2, T3, T4> ってのが追加される予定じゃなかったっけ
>>53 おなじようなのVoid用とReturn用と定義した。
EventHandler<T>を知ったときちょっと感動した。
56 :
デフォルトの名無しさん :2006/06/14(水) 14:18:51
ListBoxのItemsにクラスAを入れると クラスAのToStringの結果がListBoxに表示されますが これをクラスAのToString以外に変更するにはどうすればよろしいか? たとえばクラスAのGetValueの結果を表示する。
DataSource 使うなら DisplayMember で特定のプロパティにできるな
58 :
デフォルトの名無しさん :2006/06/14(水) 15:07:30
webページ上からHTMLのソースをリッチテキストに表示したいのですが Socketクラスのどのメソッドを使えばよいでしょうか
TCP/IP 喋れるならどれでも良いが、HTML から RTF に変換するのが死ねそうだな
と思ったがHTMLじゃなくてそのソースか。 ていうかなぜSocket使うんだ?
>>60 そうです、HTMLのソースです
C#2003初心者なもので
Socketでいけると思ったのです
Socketにはそんなもの無いのでしょうか。
ヒントだけでもいただけないでしょうか
Socket は IP 通信の最も低レベルのクラス。 つまりラップされてないので HTTP を喋る必要がある。 で、その上に TcpClient があって TCP/IP 通信用のクラス。 更にその上に WebRequest(HttpWebRequest)/WebResponse(HttpWebResponse) があって、 最上位に WebClient がある。 後者になるほど HTTP 扱う上で手軽になるが細かい操作ができなくなる。 .NET 2.0 で WebClient は無闇に拡張されたけど。
>>62 助かりましたありがとうございます
今度からはもう少し調べてから質問しにきます
>>63 いろいろ試してみます
ちょうど手元にC#でTCP/IPプログラミングという本があるので使ってみます。&弄って慣れてきます。
文字コードとか気をつけないとダメだよ。
>>66 了解です
上記のサイトにも書いてありましたのでじっくりやります。
C#というわけではないんだけど、VSのソリューションファイルとかのXMLファイルプロトコルってどこかにあるんでしょうか? 内部解析したい。
69 :
デフォルトの名無しさん :2006/06/14(水) 17:48:22
Visual C# 2005 Express に特化した質問で申し訳ないです。 1.TreeViewではその項目を複数選択することはできないのでしょうか? VC#のソリューションエクスプローラもTreeViewではないかと思うんですが、 ここでは、CTRL+クリックで複数が選択できます。 このような選択はユーザーには開放されていないのでしょうか? 2.richTextのプロパティで設定したフォントは表示用のようで、入力する 時のフォントはここで設定したものではないようです。どこで設定する のでしょうか?
>>70 ぐおーー、すばやい反応ありがとうございます。
TreeView に似ているだけの自前なんですね・・・orz
現状、チェックボックスを出して変わりに対応しているんですが
探してみます。
フォントはなるほど Arialになってしまっているのですね。
完全にバグですね。
重ねて、情報ありがとうございました。
72 :
69 :2006/06/14(水) 18:32:30
むぅ、リンク先に習って、RichTextExクラスを作ってみましたが、 ぜんぜん変わりませんでした。 それと、KeyPressイベントでSelectionFont を設定しなおすのも やってみましたが、変わりませんでした。 private void richTextBox1_KeyPress(object sender, KeyPressEventArgs e) { richTextBox1.SelectionFont = richTextBox1.Font; } ブレイクかけて SelectionFont が Arial になっているか見たのですが、 ちゃんと MSゴシック 9 でした・・・症状が違うのかな?
C#でSAPI使ったことある人いる? 参考にしたトコおせーて
お世話になります。 ネットワーク上の共有フォルダにexeファイルをおいてそのプログラム中で同じフォルダにあるファイルにアクセスしたいのです。 自分の存在するフォルダ名を取得するにはどうすればいいでしょうか?
>>74 MSBuildまで考えてなかった・・・というかそりゅーしょんとかとMSBuildの関係はいかに?
VS2005のコンパイルはMSBuildによって行われてる?
>>75 Application.StartupPath
これでOK?
>>76 .slnはXMLにあらず。.vbprojとか.csprojがMSBuildのXML形式。
なので、ソリューションを読み込んで、そこからプロジェクトごとにMSBuildを起動してるのだと思う。
ウエブページをデザインして作りたいのですが(初めてです) IISではなくアパッチ使いたいのですが、できるのでしょうか? イントラがIISを使えないという糞なのでちょっと困ってます。
>>78 なるほど。んでもなんでslnはxmlでないんでせう?
>>79 Mono とか使えばホスト可能なはずだが
IIS 使えない環境で ASP.NET はどうかなー
CGIでexe起動とか。
>>71 正確にはバグじゃないがまぁそれはいい
2.0だとLanguageOptionのプロパティがないか?
MenuStripでメニューを作っているのですが、 ToolStripItemの中にAvailable == false の項目があると、一番下に見えない項目があるかのように振舞ってしまいます。 表示直後は問題ないのですが、カーソルを一番下に動かすと各項目がずれて表示されます。 ContextMenuStrip menu = new ContextMenuStrip(); ToolStripItem item; item = menu.Items.Add("Item A"); item = menu.Items.Add("Item B"); item = menu.Items.Add("Item C"); item = menu.Items.Add("Item D"); のようなコードがあったとき、 item.Available = false; をA〜Cの下に書くと問題が発生します。Dの下に書いても問題は起こりません。 これを回避したいのですが、どうすればよいのでしょうか。
ざわ… ざわ…
ぱっと見て「○○だなぁ」と思うコード
こういうのってAvailableでなきゃいけないもんなの?Visibleとかじゃダメなの?
試したが Visible でも症状は同じ バグと言っていいだろうが、まあ微妙にキモいコードだな
>>85 以前に同じような症状で悩んだけど、
結局フィールドでmenuitemを持っといて
RemoveとInsertで回避するしかなかった記憶がある
91 :
88 :2006/06/15(木) 15:05:11
ドキュメソトには Available プロパティは、Visible プロパティとは異なります。Available が ToolStripItem を 表示するかどうかを示すのに対し、Visible は ToolStripItem およびその親を表示するかどうかを 示します。 って書いてあるけど、意味がよくわかんね( ゚д゚)、
超初心者でごめんなさい
数値の取得は出来ているのですが、これをTextBox1に反映させるためにはどうしたらいいでしょうか。
private void comboBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
try
{
System.Net.WebClient wc = new System.Net.WebClient();
System.IO.Stream st = wc.OpenRead("
http://pc8.2ch.net/test/read.cgi/tech/1149934230/ ");
System.IO.StreamReader sr = new System.IO.StreamReader(st,System.Text.Encoding.GetEncoding("Shift-JIS"));//文字エンコーディング
Console.WriteLine(sr.ReadToEnd());
st.Close();
}
catch
{
}
}
}
いやそりゃ TextBox1 の Text に設定すれば良いんじゃね?
言い方がまずかったでうs TexBox1に数値をいれてやりたいのですがそのやり方がわからないのです
示されたコードのどこに数値が含まれてるのかさっぱり分からないんだが……ブラフのコード?
>>95 ビルドすると出力のデバッグのとこのログに数値が出てきてしまいます。
いやだから TextBox1 の Text に設定すれば良いんじゃね? これとオマイの言ってることのナニがちがうのかを説明してみそ
謎の数値を受信しちゃったのか。やばいゾ。
>>92 数値をTextBox1に反映させるのは非常に難しい技術です(´・ω・`)
Tagに入れるしかありません・・・・
ジェネリックの型制約で、オペレータ(+−など)が使えることを 条件にすることはできる? ただ単にdoubleとintどっちでも使えるメソッドを作りたいだけなんだが
無理
不便だよなぁ
C++ みたいに、複数の実体を生むわけじゃないから、 static である operator はジェネリックなコード中では使えないのよね。 IAddable だの IAbelGroup だのを継承して virtual Type Add(Type) を実装しておけば a + b が a.Add(b) に展開される、 みたいな仕様を追加しないと駄目なんじゃないかと。
>>103 それよりもinterfaceにstaticメソッド書けるようにしてほしいよ。
それだけでいい
>>105 それだとジェネリックな動作できなくね?
それ抜きにしても interface に static メソッドかけるようにはして欲しいけど。
いつ起こるかわからない特殊な例外ではないか? フォーム起動中にOnLoad中に非同期デリゲートでネットワーク処理をしつつ、フォームに結果を表示し、(結果表示にはInvokeを使用) Showの次の実行文でThreadをPriorityをNormalより低く作ってスタートすると起動中のフォームが固まる現象にあったのですが 誰か原因がわかる人いますか? NetworkForm f = new NetworkForm(); f.Show(); LowPriorityThread t = new LowPriorityThread(); t.Start(); みたいな
109 :
69 :2006/06/16(金) 16:54:01
RichTextBoxで、「あああいいいうううえええおおお」と 表示するとき、あああは黒で、いいいは赤で〜みたいに 色変更するにはどうしたらいいのでしょうか? .FontColor だと、全部同じ色になるし、SelectionColorでは なにも変わらないし・・・TextBox ではどうですか?
SelectionColor はその名の通り Selection の色を決定するんだから、まず選択しろ。
>109 SelectionColorに指定したいColor設定でいいと思うよ。 反映されないなら、選択範囲間違ってない?
112 :
69 :2006/06/16(金) 17:22:33
なるほど・・・たしかに SelectionColor ですから、そうですね。 では、Textに放り込んであるテキストの任意範囲の色を変える のではなく、これからAppendする文字の色を指定することはで きないんでしょうか?
113 :
69 :2006/06/16(金) 17:27:40
m(_ _)m できました。
114 :
69 :2006/06/16(金) 18:11:19
>>72 ですが、KeyDownイベントでは SelectionFont はまだ MS ゴシック
なのですが、TextChanged イベントが入ったときには Arial に変わって
います。当然、KeyPress,KeyUpイベントでもすでに Arialに変わってしま
っていることまでわかりました。
さて、どこのイベントで、SelectionFont を再設定すればいいでしょうか?
あ、もちろんdwLangOptions &= ~IMF_DUALFONTをほどこした、
RichTextExクラスを使っての話でした。 FrameWork2.0ではこのあたり
挙動が変わっているんでしょうか?
115 :
69 :2006/06/16(金) 18:42:07
# 連投もうしわけありません 苦肉の策で private void richTextBox1_TextChanged(object sender, EventArgs e) { int pos = richTextBox1.SelectionStart; richTextBox1.Select(0, richTextBox1.SelectionStart); richTextBox1.SelectionFont = richTextBox1.Font; richTextBox1.Select(pos, 0); } なんてやってみたら入力フォントはArialでなくなったけど、 画面がぁ〜選択、解除が見えてみっともない・・・
自分で作ったほうが早いと思うよ
BeginUpdate/EndUpdateは無かったっけか 逐一の画面の再描画を抑止する方法が何かしらあったはず
つかフォントが Arial になる問題は既出の方法で解決できるんだから それができてないのはなんかコードに問題があるんだろ
119 :
69 :2006/06/16(金) 19:01:55
既出の方法って、こういうクラスから呼んでフラグおとせっつうやつだよね。 ぜんぜん通用せんのですよ。 public class RichTextEx : RichTextBox { private const uint IMF_DUALFONT = 0x0080; private const uint WM_USER = 0x0400; private const uint EM_SETLANGOPTIONS = (WM_USER + 120); private const uint EM_GETLANGOPTIONS = (WM_USER + 121); [DllImport("user32.dll", EntryPoint = "SendMessageA")] private static extern uint SendMessage(IntPtr hWnd, uint wMsg, uint wParam, uint lParam); public RichTextEx() { uint dwLangOptions = SendMessage(this.Handle, EM_GETLANGOPTIONS, 0, 0); dwLangOptions &= ~IMF_DUALFONT; SendMessage(this.Handle, EM_SETLANGOPTIONS, 0, dwLangOptions); } }
120 :
69 :2006/06/16(金) 19:05:02
>>116 そのくらいの技量があればそうするのですが・・・orz
それじゃその後でハンドルの再作成が行われたら終了だが。
>>114 >RichTextExクラスを使っての話でした。 FrameWork2.0ではこのあたり
>挙動が変わっているんでしょうか?
既に誰か答えてたと思うが、.NET 2.0ならこれで解決。
uint opt = (uint) richTextBox1.LanguageOption;
opt &= ~((uint)RichTextBoxLanguageOptions.DualFont);
richTextBox1.LanguageOption = (RichTextBoxLanguageOptions) opt;
123 :
69 :2006/06/16(金) 19:20:17
>>122 これが見つけられませんでした。
ばっちりでした。
ありがとうございます。 感謝。
これは覚えとこう・・・ ありがたやありがたや・・・
125 :
デフォルトの名無しさん :2006/06/16(金) 22:25:46
DataGridで列幅を指定したのですが,ヘッダーを非表示にしたら設定が反映されません。ヘッダーを出したら、空白と一番上の線が邪魔になります。 どうすればいいでしょうか? どなたか教えて下さい。
RichTextBoxでTextの選択状態を調べると日本語入力が確定してしまう問題って 何とかなりませんかね? SelectionLengthをApplication.Idleで購読しているのですが。 Idle時に1文字でも選択しているかしていないかを取得するだけでよいのですが。
IME 系の API かメッセージで入力中かチェックするかフラグ立てるかするってのは?
あるライブラリでprivateなアンマネージドDllを使用して機能を実現しているのですが、 ライブラリの中にリソースとしてアンマネージドDllを埋め込んで、そのDllを呼び出す。様なことをしたいです。 インストーラを作らないで簡単に配布できそうなので一体化させたいのですが リソース中のDllをファイルとして展開しないでそのまま実行する方法はありますでしょうか?
>>126 意味不明の書き込みするな( ゚д゚)、
マルチ死ね
>>129 >リソース中のDllをファイルとして展開
これで事前バインディングできんの?
jarファイルみたいなのほしいな。
型初期化子でリソース読み込んでdllをファイル化していけるはず。 Jarみたいなのっていえば、ResourceWriter辺りを使うのかな? どこかにJarファイルっぽく使ってるサンプルとかってありますかね?
134 :
デフォルトの名無しさん :2006/06/17(土) 13:48:47
TreeViewの背景イメージを設定する方法ってありませんか?
つILMerge アンマネージDLLはできたんかな
「マルチ」とかいう書き込みをうざがる奴、死ね( ゚д゚)、
137 :
デフォルトの名無しさん :2006/06/17(土) 23:29:23
文字列をgraphic上に描画したときの描画幅と高さを返す関数が あったと思うんだけど、調べても出てこないorz ご存知の方、教えてください
138 :
デフォルトの名無しさん :2006/06/17(土) 23:36:06
RichTextBox で、任意の位置をSelectして、 ScrollToCaret();すると、その位置にキャレット が移動しますが、スクロール位置がテキスト ボックスの最上位になります。 これを、テキストボックスの中央の行に選択 位置を持っていくようなキャレット&スクロール はどのように実現するのでしょうか?
139 :
137 :2006/06/17(土) 23:39:12
あー見つかった 自己解決しました
138 ですが、SendMessageで解決しました。
1.やりたいこと System.Collections.GEneric.List<T>というのを使いたい (C#コンパイラをバージョンアップしたい?) 2.結果 コンパイルエラーとなります。 3.やったこと ・調査 ジェネリクスというのが比較的新しい機能なので使えないのかなと考えました。 ・DL&インストール .netframeworks2.0 というのとSDK2.0 というのを入れてみました 4.問題? VSのヘルプ→バージョン情報を見ても上手くバージョンアップ されていないのかなと思います。 Microsoft .NET Framework 1.1 バージョン 1.1.4322 SP1 Microsoft Visual C# .NET 69504-335-0000007-18510
VS2003 は .NET 1.1 専用。 VS2005 が .NET 2.0 専用。 と言う事で VS2005 入れろ。Express Edition なら無料で MS から落とせる。
ソースコードとエラーは以下の通りになります。 private void btnAPInfo_Click(object sender, System.EventArgs e) { List<FileInfo> fileList = GetFileList(); } private List<FileInfo> GetFileLilst() { 処理 } 無効なトークン '<' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。 無効なトークン '>' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。 クラス、構造体またはインターフェイスのメソッドには戻り値の型が必要です。 初心者であまり分かってなく申し訳ないのですが、 どなたか分かる方教えて下さればありがたいです。
145 :
142 :2006/06/18(日) 15:56:12
すばやいレスありがとうございます。2005入れるしかないですか。 お金が無い・・・・ orz Express Edition というのを試してみます。ありがとうございました!
Express Editionで十分だ。買う必要ないだろ
テンプレ 1.やりたいこと 2.結果 3.やったこと 4.問題?
>>147 結果が来る位置がおかしいよw
ふらっとスレにあったこんなのは?
・何をしたいのか
・〜〜みたいな、は使わない
例:ContextMenuStrip で右クリックメニューを出すとき、イメージ表示領域を消したい。
・何をしたのか
・コードをずらずら書かない。書くなら必要最小限
例:ContextMenuStrip の ShowImageMargin を false にしたら一階層目は消えた。
・何が駄目なのか
・エラーメッセージがあるなら書く
例:しかし二階層目以降が消えない。解決方法はないか。
149 :
デフォルトの名無しさん :2006/06/18(日) 21:59:13
ThreadPool.QueueUserWorkItem にてつらつらと数十個(不定)のスレッドを起動し 全てのスレッドが終わるまでメインスレッドを待たせたいのですが、どんな方法が 最もスマートでしょうか? スレッドを起動するたびに待機用変数をインクリメントして、それぞれのスレッドの 終了時に待機用変数をデクリメントして、メンスレッドでは無限ループで待機用変数が 0になるのを待つ。 と言う方法が思いついたのですが、わざわざスレッドを使う割にはCPUリソースが非常に もったいない気がします。
ManualResetEvent 使えば?
>>149 void ThreadFunc{
HONYARARA
if(interlockdecrement(threadRemain)==0){
manualEvent.Set();
}
}
void ActivateAndWaitThreads(){
for(int i=0;i<ThreadNum;i++){
threadRemain++;
new ThreadStart(new Thread( ThreadFunc));
}
manualEvent.Wait();
}
こんな感じ?すげぇてきとうなのでよろ。
public class Class1 { public Class1() { static void Main(string[] args) { System.Console.WriteLine("Hello World!"); } } } このコードをコンパイルすると、 CS1513}が必要です CS1022型、名前空間の定義、またはファイルの終わりが必要です って言うエコンパイルエラーが出ます。 どこが間違っているのでしょうか? どうしたらいいでしょうか?
3 行目
↑失礼しました。解決しました
156 :
ババル :2006/06/19(月) 20:36:47
世の中にはVSC#.NETというGUIで作れるものがあるのですが それを使わずにあえてコード記述して作るという行為には 何の利点があるのでしょうか?
馬鹿著んコードで出来ないきめ細かな制御
教育的利点。 csc.exeの使い方、参照・リソースの追加、その他の仕組みを理解するきっかけになる。
159 :
デフォルトの名無しさん :2006/06/19(月) 22:30:05
それだな。間違いない。
>>159 よーわからんが
Type.Missingのかわりにnullをいれたら?
163 :
159 :2006/06/20(火) 09:11:59
>>160 色違いって・・・
>162
サンクスコ、やてみる。
色違いじゃない、色遣いだ!!!!!!!!!!!!!!!!!!
165 :
159 :2006/06/20(火) 09:23:49
>>164 えぇっ、(・д・)
.NET Framework2.0からmysqlを利用するには どういったライブラリがありますか? 公式のConnector/.NETはFramework1.1にしか 対応していないようなのです ODBCのものもいくつか有志で出ているようですが どれを使えば安全なのかわかりません
安全を担保するのが 2ch のレスか……。
168 :
159 :2006/06/20(火) 11:38:58
>>165 よーするに
「見にくいんだよヴォケがぁぁぁ!!」
と言ってるものかと。
>>169 いや、色のあまりのセンスのなさがプログラムのセンスのなさを体現してるのかと
171 :
159 :2006/06/20(火) 12:52:52
そんなに見づらい? ってか、皆さん、僕みたいに、背景をブルースクリーンにしないの?
172 :
159 :2006/06/20(火) 12:54:50
ってか、キーワードの色を黄色とするのは普通だと思うけど、 まぁ確かに文字をピンクにするのはどうかとも思う。 でも、そこらへんは個人の裁量だと思うお。 っていうか、センスある?ない?ってそんなこと聞いてる わけちゃうし。かんべんしてや。
背景は黒でしょ
174 :
159 :2006/06/20(火) 13:59:31
>>173 ワードの世界では、背景を黒にすることを、
BlueScreenをTrueにする、っていうらしいですよ、奥さん。
175 :
デフォルトの名無しさん :2006/06/20(火) 14:02:19
RichTextBoxを簡単なエディタとして使っていますが、 現在のカーソルの桁と行を知る関数などは用意されて いないようで、いまは行数は string s = richTextBox1.Text.Substring(0, richTextBox1.SelectionStart); int idx=0; int line = 0; while ((idx = s.IndexOf("\n", idx)) >= 0) { idx++; line++; } みたいにしているんですが、テキスト後半になると重くなり あまり良い方法ではないと思います。 なにかよい方法があれば教えてください。
176 :
159 :2006/06/20(火) 14:14:31
177 :
175 :2006/06/20(火) 14:25:32
まったく別人なんでそらすもなにも・・・
179 :
159 :2006/06/20(火) 14:52:00
>>178 >>176 は僕ではありません!!
ってか、困ってます。このバグが直らないと、
今日、出張先から帰れないよ・・・。しくしく。
ちなみに、今、岩手の花巻。家は、和歌山。
どこでえらーでたのか、COMのエラーコードは何だったのかぐらい書きナ晴れ
182 :
159 :2006/06/20(火) 15:05:14
button1をクリックして、検索を実行したら、 GIFファイルに示す箇所で、GIFファイルに示すようなエラーがでました。 エラーが出たのは、GIFファイルが示す箇所です。 このエラーがCOMのエラーコードだったかは定かではありませんが、 とにかく、グーグルで検索してもほとんど引っかからないので、 情報が少なすぎて、自分では解決できません。 助けてください。
HRESULTからの例外 ほにゃららって書いてあるんだからそのエラーコード調べて濃いツーの
>>159 本人証明したいならsageんな!
もしくはトリップつけろ
ぐは! ここageてもID出ねーのか。 スマソ
以下、トリップつけて粛々と調べたことを書け。さもなくば回答は得られんであろう。
>>175 GetLineFromCharIndex がある
188 :
187 :2006/06/20(火) 16:09:43
と途中送信しちゃった で、.NET 2.0 なら GetFirstCharIndexFromLine を使えば良い それ以前だと EM_LINEINDEX だったかを使う事になるな
189 :
175 :2006/06/20(火) 16:22:05
>>188 うれしい!!ありがとう、爆速になりました。
どういうソースなったか、いちおう置いておきます。
int line = richTextBox1.GetLineFromCharIndex(richTextBox1.SelectionStart);
int column = richTextBox1.SelectionStart - richTextBox1.GetFirstCharIndexFromLine(line);
line++;
column++;
ありがとうございました。m(_ _)m
190 :
159 :2006/06/20(火) 16:56:24
>>183 >HRESULTからの例外 ほにゃららって書いてあるんだからそのエラーコード調べて濃いツーの さっぱりわからないのです。 何をどこを調べれば手がかりがつかめるのかすらわからなくて・・・。
>>190 まんま、HRESULT 0x800706f7 でぐぐるだけでも
情報あるけどそれとは違うの?
ぐぐればそのまんまでてくるぞ。 マイクロソフトの解決法ヘルプも
193 :
159 :2006/06/20(火) 19:45:53
ぐぐるってなんですか?
とりっぷつけろよぼけ
ちらっとgoogleってみたが、OfficeのGUID地獄なのか。MS自身が看板製品でこれをやるのか(笑 本物の159がまだいるかどうかはわからないが、こういう質問をする時は、 もともとは動いていたコードが現地で動かなくなったとかそういう情報があればアタリが付けやすい。 excel 5.0 は入れて無くてもVS6が入ってるPCには登録されてるのは確認した。
つんでれだなおまいら。
197 :
デフォルトの名無しさん :2006/06/20(火) 22:17:03
アプリケーションを開発していくとき何かノートとかに記述したりしますか? 僕は普通のノートに記述しているのですが、ほかの人はどうしていますか。 マジレスを希望しています。
>>197 プロジェクトごとに「メモ.txt」というテキストファイルを用意して、
気が付いたことを何でも書き込んでいく。
紙媒体は使わない。
>>197 基本的にはメモ帳や秀丸やWORDとかEXCEL
明らかにアイデアを出すための物で何度も走り書きするものはとりあえずその辺にある紙の裏
大体まとまったら電子化して紙は破棄
ノートに記入するのは主に会議の議事録の為のメモ書だけだな
配列の一部分だけを関数の引数として簡単に渡す方法ある? Cだったら、&buffer[8]とかやって、呼び先で8バイト目以降にアクセスさせることができたんだけど。 初心者なんで、unsafeやらfixといったややこしいことは避けたいっす。
>>197 ・Wikiたてて皆でごちゃ書き
・ホワイトボードにごちゃ書き
・ソースにコメント
で足りてるかなぁ個人的に。
手元に紙はおいてあるけど、落書き帳にしかなってない。
>>200 C#でそういう場面がどれだけあるかが疑問。
ちと困っている事例を挙げてほしい。
Cにしても、&buffer[8]な渡し方だと、
NULL終端になっているなり、別引数で長さ与えるなりしなきゃいけないわけだけど、
C#で前者はなさそうだし、
後者のように長さも与えるメソッドなら、普通はオフセットも与えられるでしょ。
byte[] buffer, int offset, int countの3つか、
ArraySegment<byte>をとるオーバロードがあるはず。
自作メソッドだとしたら、おとなしくオーバロード版を作るべし。
203 :
200 :2006/06/21(水) 01:25:29
>>202 今困っているのは、暗号処理なんです。
結構でかいbyte配列のbufferの一部に対してのみ暗号化したいんです。
暗号化関数はDLLという形で提供されていて、ソースを見ることもいじることはできません。
その暗号化関数はencrypto(dst, src, size)という形のみで、
オフセットの指定ができるオーバロードが無いんです。
この関数を呼ぶためだけに、暗号化したい領域(←結構でかい)をコピーした配列を
わざわざ用意したくもないですし…。
>>203 うーん…
実際にコピーして試してみて、本当に問題が生じた?
せいぜい元配列より小さいsizeの大きさしかコピーされないんだよ?
205 :
デフォルトの名無しさん :2006/06/21(水) 02:30:32
DLL製造元にごるあする以外ないだろ。 っていうか、それマネージドのメソッド? 結構でかい対象を暗号化するのに配列丸ごとしかないってのは もともと想定する使い方がちがったりしないのか…?
206 :
デフォルトの名無しさん :2006/06/21(水) 02:31:34
そうそうもうひとつ、 お前の言う結構でかいとはどのくらいだ?
byte[] b = new byte[n]; Buffer.BlockCopy(src, srcoffset, b.... で"encrypto"すりゃいいじゃないか
208 :
159 ◆WA92CiqsoY :2006/06/21(水) 09:22:59
すみません。トリップつけました。
まだいたのか。いい加減家に帰れ
210 :
159 ◆WA92CiqsoY :2006/06/21(水) 09:26:12
結局、バグが直らずに、まだ東北にいます・・・
211 :
159 ◆WA92CiqsoY :2006/06/21(水) 09:39:48
213 :
159 ◆WA92CiqsoY :2006/06/21(水) 09:51:53
214 :
159 ◆WA92CiqsoY :2006/06/21(水) 09:56:56
遅延バインディングで解決できそうである、という解決方法は、 実は以前から他の方にご指摘いただいていたのですが、 正直、検索機能を適正に実行するためだけに、 遅延バインディング(Creatobject)にするのは、 コードを作成する際の便宜を考えるとあまりに代償が大きくて、 やりたくありません。 こんなこというと怒られそうですが、 だって、検索機能でしょ!くぅ〜
ま、どうするかは、君が考えることなので置いといて、
散々昨日からぐぐれ、検索しろといわれて
>>212 にURL
貼ってもらうまでそこにたどり着けないプログラマって
のは、いかがなものか・・・それもオフィシャルな情報
すら・・・ま、いいが。
あえていわなかったが
>>212 のページは具具って5秒で見つけたんだが・・・・
もういい。かえれ。
以後、かまって君はスルーヨロ
218 :
159 ◆WA92CiqsoY :2006/06/21(水) 11:19:19
僕は、グーグルに800707F5って入力することしか できませんでした。ほんとうに、すみません。
死ねば良いんじゃないかな^^
220 :
159 ◆WA92CiqsoY :2006/06/21(水) 12:14:57
221 :
159 ◆WA92CiqsoY :2006/06/21(水) 12:15:34
Before (-_-) After (・∀・)
なにこの構ってちゃん
すいませんADO.NETなんですが DataTableにExpressionプロパティ入りのDataColumnを追加して、 SqlDataAdapter.Updateしたら、 「Expression列のReadonlyを変更できませぬ」という 例外が出ました。 そうはいってもExpression列のReadOnlyはデザイナ上でだってfalseには できません。 この列以外は全部ソーステーブルと1対1です。 どこをどうしたらいいんでしょうか。 とりあえず、書き込み前に自分でいろいろいじってみたんですが DataColumn.ColumnMapping をあとからコード上でHiddenにしたら通るようになりました。 これでいいんでしょうか?いいんだとしたら、これをデザイナ上で設定 するにはどうすればいいですか? 自問自答みたいになってますがおながいします。
224 :
223 :2006/06/21(水) 17:12:35
すみません間違えました。ColumnMapping をHiddenにしても
解決してませんでした。自分が「更新」ボタンを押してなかっただけの
ようです。
ひきつづき
>>223 の解決方法をおながいしますorz
PropertyGridの縦の分割線?の位置を、コントロール作成時に設定する方法ってありますか? 入力する方を広くしたいのですが、ご存知の方いましたら教えてください。
227 :
デフォルトの名無しさん :2006/06/21(水) 23:36:56
キーを動的決められるように設定を永続化したいのですが、 .Netクラスライブラリでそのまま使えるような XmlSerializerでシリアライズ可能な永続化オブジェクトクラスはないですか? データ構造はkey, valueのタプルで両方文字列でOKなんですが NameValueCollectionみたいな感じで。 ApplicationSettingsBaseで動的にキーを追加できて、好きなファイル名で保存できればよいのですが・・・ もしくは、ApplicationSettingsBaseなどで動的にキーを追加することはできますか?
>>227 System.Collections.Specialized.StringDictionary
>>228 Directry系はXMLへのシリアライズが不可なのでDataSet/DataTableを使うしかなさそう。
DataSetのSettingの初期値の生成はIDEがサポートしてないので自分でなんとかしなきゃいかんのが大変。
230 :
159 ◆WA92CiqsoY :2006/06/22(木) 13:03:10
(・ω・)
231 :
231 ◆Ci3UmwhFqY :2006/06/22(木) 14:04:02
Excel 5.0ライブラリって、 エクセルのどのバージョンに入っているものですか?
233 :
231 ◆Ci3UmwhFqY :2006/06/22(木) 17:36:50
234 :
159 ◆12k2cDk1bk :2006/06/22(木) 18:04:00
えっと、とりあえず、 エクセルをアンインストールしてみたり、 ワードを再インストールしてみたり、 してるけど、まだうまくいかんと、 さっき、OSの再インストールをクライアントと一緒に始めた。 ○rz。。
そんな解決方法じゃちょっとしたきっかけでまた動かなくなるんじゃないの? 諦めて遅延バインディングにしろよ
COMを参照設定すると、COM InteropのDLLが出来るのだが、これの作り直しはやってる? これが最初に作られたときの環境がExcel 5.0の古いtypelibで、 その時のDLLをいつまでも使ってたら正しい環境に持っていっても直らない。
>>234 冷静になれよ
遅延バインディングにすれば解決するんだぞ
問題が再発するたびにクライアントに「OS再インストールしてネ」って言うのか
>>236 IDEで再ビルドすると、最新のにならなかったっけ?
241 :
デフォルトの名無しさん :2006/06/22(木) 20:09:54
UserControl継承してコントロール作ってるんだけど コントロールが破棄されたときに実行したいコードは どこに書いたらいいの?
Dispose(bool)をオーバーライドか Disposedイベントじゃね?
244 :
237 :2006/06/22(木) 21:20:42
>>239 ありがとうございます
検討違いだったようでお恥ずかしいです;
245 :
デフォルトの名無しさん :2006/06/22(木) 22:31:12
246 :
デフォルトの名無しさん :2006/06/22(木) 23:31:23
ピクチャボックスに表示されている画像で、クリップ領域に表示されている部分だけを習得するにはどうすればいいですか?
listView.SelectedItemsで取得したアイテムを簡単に扱うにはどうすればいいのでしょうか? ListView.SelectedListViewItemCollectionに格納するまではわかったのですが、どこのサンプルコードもforeachを使ったものばかりでした。 配列に格納したりなどして、もっと簡単に扱えないでしょうか?
SelectedListViewItemCollection は十分簡単に扱えると思うが。 簡単ってのはどんなんだよ。
249 :
247 :2006/06/23(金) 07:13:42
>>248 インデクサ等を使って断続的に処理したいんです
foreachだと連続した処理に限定されてしまうので…
インデクサ使えるし。
251 :
247 :2006/06/23(金) 07:47:13
>>250 そうなんですか!?
私の勘違いだったようです
すいませんでした
252 :
デフォルトの名無しさん :2006/06/23(金) 10:48:53
xmlを次のように処理してエラー表示を出したりしているのですが、 LineNumberがコメントあたりでずれてしまいます。 どうも、コメント行の次にNodeType.Textがきたとき、そのValueに 前の行のコメントの改行がくっついてきているようで、そのあたりで ずれるのかな?と思うのですが、対策が取れずに困っています。 textreader = new XmlTextReader(file_name); textreader.WhitespaceHandling = WhitespaceHandling.None; textreader.WhitespaceHandling reader = new XmlValidatingReader(textreader); reader.ValidationType = ValidationType.Schema; reader.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { ・ } ・ } private static void ValidationCallBack(object sender, ValidationEventArgs e) { log.message(reader.LineNumber , e.Message); }
253 :
252 :2006/06/23(金) 11:04:27
なんとなく、見えてきたのですが、これはどうしようもないのかな? 下のような書き方をしたとき、コメント行と次のテキスト行は同じ行として カウントされているようですね。 1 <tag ...> 2 <!--コメント--> 3 これはテキストとして扱う 4 </tag> ↓ 1 <tag ...> 2 <!--コメント-->\r\nこれはテキストとして扱う 3 </tag> このように処理されるために、以後こういう書き方のあるところは全部 1行づつずれていってます・・・・ これの解決法って・・・
254 :
252 :2006/06/23(金) 11:41:41
↑
>>253 は勘違いみたいだ・・・orz
じゃあ、どこでずれてるんだ・・・
255 :
252 :2006/06/23(金) 11:52:16
すみません、LineNumberはあっていました。 私の勘違いです。
256 :
159 ◆12k2cDk1bk :2006/06/23(金) 12:34:32
遅延バインディングって、 Ctrl+スペース押しても、変数名とかが 自動的に補完されてくれませんよね。
>>256 C♯ での遅延バインディングって
IntelliSense 使うようなものだったっけ?
VB と違って Reflection API 使って
呼び出す必要があったと思うが。
258 :
159 ◆12k2cDk1bk :2006/06/23(金) 14:10:36
IntelliSense が使えなくなるんですよ、遅延バインディングだと。 まったくやっかいな問題です。
嵐としてNGID推奨
もう岩手に骨をうずめろ。
262 :
159 ◆12k2cDk1bk :2006/06/23(金) 14:38:16
もうやめようよ、もう関西に帰ってきたし。 ってか、担当者代えられた、そんだけだけど。
263 :
デフォルトの名無しさん :2006/06/23(金) 17:12:18
<?xml version="1.0" encoding="shift_jis"?>
<data xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance " xsi:noNamespaceSchemaLocation="base.xsd">
というように始まるxmlファイルを下のようなプログラムで読むとき、xsdを読んでくれないのですが、
ほかに何を設定しないといけないのでしょうか?
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create(file_name, settings);
while (reader.Read())
{...}
XmlSchemaValidationFlags.ProcessSchemaLocation は?
265 :
263 :2006/06/23(金) 22:28:10
>>264 なぜ、この大事なものに気がつかなかったのでしょう・・・orz
ありがとうございました。スカッと解決しました。
266 :
デフォルトの名無しさん :2006/06/24(土) 19:17:41
ListViewのオーナドローで ListViewItemStates Selectedフラグってアイテムが選択されてなくても 立ってるんですけどそういうものでしょうか? ListViewItemStates を信用していいのか不安になってきた。
2次元配列で、行を配列として取り出したり、列を配列として取り出すには そういう取り出し方を持つ独自のクラスを作るしかないですかね? やりたいことは、intの2次元配列のある行または列について intの1次元配列を引数にもつ既存のメソッドに渡したいのですが。
削除依頼が出ている方のスレに書き込んでいた・・・。(泣 改めて質問です。 LAN内のPCからグローバルIPを取得する何かいい手はないのでしょうか?
>>267 多次元配列を使わない、これが最大のコツだ。
>>270 うーん、完全に行と列が対等なのになあ。
>>272 メモリの配置上、行と列をコスト的に対等に扱う事はできない。
274 :
266 :2006/06/25(日) 01:08:28
原因がわかりました。 HideSelectionをfalseにするとStateに常にSelectedが立つようです。
>>274 ほんとだ。これは気持ち悪い動作だな。
e.Item.Selected は正しい値を返すようだが。
MSDN フォーラムのフィードバックに投げた方が良いかも。
ぬるぽって、JavaのNullPointerExceptionのことだけど .NETではNullReferenceExceptionじゃないですか。 アンチJavaな.NETユーザーでもぬるぽって使ってますか?
マ板に行け。
ぬるり
>>276 real worldで「ぬるぽ」なぞと言う奴がいたら、切る
real worldで切ったら、逮捕される。
ぬるふぉ
ぬふぅ
とうとうC++で char[] って書いてしまった
あるあるw
俺も俺もw
おっかしぃいいいいいいいいいいいいいいいい
void f(char[]); C++で正当な関数宣言。
そうだね
int main(int argc, char *argv[]) だしな。
それは違うだろ
StatusStrip について質問です。 ToolStripComboBox を配置したのですが、 ・コンボボックスの高さを変更するにはどうすればよいのでしょうか。 AutoSize = false で ToolStripComboBox.Height プロパティを変更しても変化がありません。 (あるいは、StatusStrip の上端とコンボボックスの間に空間を空けるにはどうすればよいのでしょうか。) ・ドロップダウンのデフォルトの方向を上方向にするにはどうすればよいのでしょうか。
295 :
159 ◆12k2cDk1bk :2006/06/26(月) 10:37:15
みんながワードエクセルをを使っているのに、 なぜか、ワードエクセルのインストールCDが一枚しく、 特にボリュームライセンスが用意されているなどの特段の事情がない場合、 みなさんだったら、どうしますか? 1.責任者に、ライセンスを取得するよう進言する。 (ただし、ボーナスが減額されたり、印象を悪くする可能性がある) 2.看過する。 3.自腹でライセンスを購入する。 4.自腹でライセンス付きパッケージを購入する。
しつこいバカが沸いた場合どうする? 1.無視する
297 :
159 ◆12k2cDk1bk :2006/06/26(月) 12:20:27
>>296 そんな冷たいこと、いってくれるなよ、ボケが。
299 :
159 ◆12k2cDk1bk :2006/06/26(月) 12:56:26
皆様、ごめんなさい。 つまらないことはもうやめます。 先日、会社の部長にリストラを宣告されて イラだってました・・・。すみません。
>295 5.自腹で電話してチクル。
301 :
デフォルトの名無しさん :2006/06/26(月) 17:57:14
ホスト名からIPAddress インスタンスの生成がしたいのですが、 IPAddress address = Dns.Resolve("google.com").AddressList[0]; とすると、 'System.Net.Dns.Resolve(string)' は古い形式です: と警告が出ます。 IPv6対応関連かなぁと思うのですが、正しい方法はどのようにすれば いいか誰か教えてください。
302 :
159 ◆12k2cDk1bk :2006/06/26(月) 18:01:21
ErrorProvider.IconをSYstemIcons.Errorにしたら、 直径32ピクセルの巨大しいたけが表示されるようになってしまいました。 直径16ピクセルのプチしいたけを表示したいのですが 大きさの指定ってどうすればできますか?
304 :
デフォルトの名無しさん :2006/06/26(月) 18:08:39
>>302 thx!!
「DNS 古い形式」 で検索したら出てきたよw
>>303 user32.dllからアイコン抜いてリソースにつっこむ。
そしてSystemIcons使ってますって顔をする。
308 :
デフォルトの名無しさん :2006/06/27(火) 02:11:54
駆け出しのPGです。 VC#とVC#データベース関連書籍で良いのがあったら 教えて下さい!
カットシステム .NETフレームワークのためのC#システムプログラミング 技術評論社 パーフェクトC# VisualC#.NETによる[基本]データベースプログラミング ・・・と、自分が持ってるものを挙げてみる。 実際には立ち読みして良さそうのを探した方がいいんじゃないかと思う。 人によって読みやすい/読みにくいあるし。 自分はオライリーの本が苦手
310 :
デフォルトの名無しさん :2006/06/27(火) 02:52:38
309>有難うございます。
>>308 標準 C#入門 ってやつがなかなか良かった。
あと、ADO.NETなら
黄色くて厚い プログラミング ADO.NETってやつが良い感じ。
312 :
デフォルトの名無しさん :2006/06/27(火) 08:32:32
ExplorerのD&Dエフェクトみたいに、透明度を中心から外にかけて高くするように 描画するにはどのようにすればよいのでしょうか?
力技なら ・テンプビットマップに描画 ・SetPixelAlphaでグラデ似なるようにアルファ値設定 ・BitBltで転送 かな ビットマップ同士のアルファブレンドとか南下で競うなきもするけど見つからん買った
314 :
159 ◆12k2cDk1bk :2006/06/27(火) 12:58:29
>>307 それも一応考えてみたけど、
一応はOOoにもWordObjectLibraryに相当するホスト可能性があるけど、
今までの開発資産をある程度失うことを考えるとどうしても・・。
昨日、担当者にゆってみたよ。
「ライセンスパッケージ」を買っておくれよ、と。
そしたら、
「しばらく考えさせてください」といういつもの答えが返ってきた。
315 :
159 ◆12k2cDk1bk :2006/06/27(火) 12:59:43
ODBCのSQLTablePrivilegesを使いたいのですが system.data.odbcから生ハンドルをとるには どうするのでしょうか?
317 :
デフォルトの名無しさん :2006/06/27(火) 19:54:21
質問させてください。 .NetFramework1.1で以下のような処理を書いていましたが、2.0のTableAdapterで同じような処理を行なう方法はありますでしょうか? DataSetのdsはリレーションを張った状態でparenttableとchildtableがあり、conはsqlConnectionでdaParent,daChildはそれぞれのテーブル用のDataAdapterです。 con.Open(); try { SqlTransaction tr= con.BeginTransaction(); daParent.SelectCommand.Transaction=tr; daParent.InsertCommand.Transaction=tr; daChild.SelectCommand.Transaction=tr; daChild.InsertCommand.Transaction=tr; try { daParent.Update(ds.parenttable.Select("","",DataViewRowState.Added)); daChild.Update(ds.childtable.Select("","",DataViewRowState.Added)); tr.Commit(); } catch(Exception ex) { tr.Rollback(); } } finally { con.Close(); } FillをTransactionScopeで囲んでしまえばそれで良い気もするのですが、自動昇格して分散トランザクションになってしまいます。 同じコネクションで処理してしまいたいのですが、方法がいまいち判りません。 良い方法がありましたら、お教え願えませんでしょうか。 よろしくお願いいたします。
318 :
デフォルトの名無しさん :2006/06/27(火) 21:37:12
TreeViewコントロールにて、任意のノードを選択する方法を教えてください。 よろしくお願いします。 VS 2003 Fra1.1
SelectedNode
320 :
デフォルトの名無しさん :2006/06/27(火) 21:41:06
>>319 すいません、SelectNodeの後を教えて下さい。
なんでマニュアルを読まないんだ?
>>317 別に 2.0 で BeginTransaction が Obsolete になったわけでもないと思うが……。
>>317 明示的にDTCを抑制するなら接続文字列にEnlist=falseをつければいいのだが、
なぜ317のケースで自動昇格するのか疑問。
Open Close の間でTransactionScopを開始してるとかしてないだろうか?
テーブルアダプタにコネクション明示的に設定してるか?
325 :
デフォルトの名無しさん :2006/06/27(火) 22:38:17
MDIで、ある子フォームを最大化しているときに 別の子フォームをActivateでアクティブにすると、 一瞬、通常サイズの子フォームが見えるんだけど、これってうまい回避策はない? Ctrl+TABで切り替えるときはこんな現象は起こらないんだが。 考えてみた方法は、アクティブにする子フォーム以外を非表示にするやり方。 こういう逃げ方でなく正攻法があれば教えてほしい。
>>313 グラデになるようにアルファ値設定で描画するまではいいのですが
描画先のフォームがうまく透過になりません。
Bitmap alphaBlendedImage = new Bitmap(bounds.Width, bounds.Height);
//・・・・GetPixelしてSetPixelのアルファ値変更・・
Form f = new Form();
f.TransparencyKey = SystemColors.Control;
f.Size = alphaBlendedImage.Size;
f.BackgroundImage = alphaBlendedImage;
f.Show();
フォームの裏にある背景とブレンドしたいのですが
透過色であるControlとブレンドされてしまい、うまくいきません。
このような要求を実現するためのどこかポインタを教えていただけるとありがたいのですが。
レイヤードウィンドウみたいなことをしたいのか?
メモ 半透明の色または透過色のイメージは、Windows フォーム コントロールでは背景イメージのようにはサポートされません。
>>322 ,323,324
今色々試して理解が進みました!ありがとうございます。
DataAdapterで作成していたものをTableAdapterで作成する方法を
知りたいのですが、1.1ではコネクションをIDE上で明示的に同じものを
指定していたものを、2.0ではそれが無くなったのでいまいちピンと来て
いませんでしたので、よって、コネクションに対する処理を全く記述せず、
以下のように書いていました。
using (TransactionScope ts = new TransactionScope())
{
tableAdaperParent.Update(ds.parent);
tableAdaperChild.Update(ds.child);
ts.Complete();
}
全てのTableAdapterのconnectionに同じコネクションを指定してうまくいきました。
SqlConnection con = new SqlConnection(Properties.Settings.Default.DBConnectionString);
DSTableAdapters.ParentTableAdapter tableAdaperParent = new DSTableAdapters.ParentTableAdapter();
DSTableAdapters.ChildTableAdapter tableAdaperChild = new DSTableAdapters.ChildTableAdapter();
tad.Connection = con;
tas.Connection = con;
using (TransactionScope ts = new TransactionScope())
{
con.Open();
try{
tableAdaperParent.Update(ds.parent);
tableAdaperChild.Update(ds.child);
}finally{
con.Close();
}
ts.Complete();
}
ばたばた書いたので日本語変ですいません・・・
332 :
デフォルトの名無しさん :2006/06/28(水) 17:24:38
教えてください。 pageloadに以下のような処理でxmlデータを返すaspx 「test.aspx」を作成しました。 Response.ContentType="application/xml"; Response.Write("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); ds.WriteXml(Response.OutputStream,XmlWriteMode.IgnoreSchema); これを独自の拡張子、例えば「test.axml」のような形で呼び出すことは可能でしょうか?
必ず特定の型のオブジェクトがソースとなるイベントを表すため、 下記のように、イベントハンドラの第一引数をobject以外の型にしました。 delegate void MyEventHandler(MyClass sender,EventArgs args); しかし、.NetFrameworkでは、イベントハンドラの第一引数は必ずobjectとなっています。 ということは、このような使い方には何か問題があるのでしょうか?
別に。 ガイドラインに従ってないってだけ。 拡張性には劣るだろうが、ま、気にしないなら別に良いんじゃね。
正規表現のパターンマッチによって得られたGroupsの要素を 列挙するにはどう書けばいいんでしょうか?
>>330 デフォルトだとConnectionプロパティがprivateになってるから見つけにくいですな。
外部キーが設定された親子テーブルをまとめて処理してくれる仕掛けが欲しいことろです。
NSDNに複数テーブルの更新例が載ってますがめんどい・・
337 :
デフォルトの名無しさん :2006/06/28(水) 20:16:41
Nintendosoft Developer Network
>>335 foreach( Group g in groups)
340 :
デフォルトの名無しさん :2006/06/28(水) 21:18:19
c#でエクセルのシートの行を丸ごと削除することは可能なのでしょうか? VB.NETとは結構構文が違うので、うまくいきません。。
VB できるならそっちでやっとけ。 C# じゃ面倒なだけだ。
>>341 そんな言い方するほど面倒くささは変わらないと思うが。
refとType.Missingをつらつら書かなきゃいけないだけだよな。
344 :
340 :2006/06/29(木) 00:56:18
Type.Missingがポイントですね。 ありがとうございます。 何か原因わかってきました。
>>363 それよりもTransactionを見せてほしい。
昇格サポートしてなきゃ分散トランザクション強制かよ。
Jana Doe Styleみたいな3分割のパネルをもったアプリを作りたいんですが、 どのようなコントロールを使うといいですか? SplitContainerを使うと2分割はできるようなんですが。
SplitContainerの片方のパネルにもう一つSplitContainer それくらい思いつけ。
>>34 それをやったら4分割になってしまったんですが
両方のパネルに SplitContainer してないか?
うんこStyleユーザの知能が知れるな
コンソールアプリで、C#のコードを入力するとそれを実行するアプリを作ろうと思ってるんだけど System.Reflection.Emitにあるクラスを駆使してできるかなぁって思ってたら C#のコードを解析する方法がわかんない。 どうすればいいんすか? // コード string input = Console.ReadLine(); AppDomain domain = AppDomain.CurrentDomain; AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly(new System.Reflection.AssemblyName("TempAssembly"), AssemblyBuilderAccess.Run); ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule("TempModule"); TypeBuilder typeBuilder = moduleBuilder.DefineType("TempClass"); MethodBuilder methodBuilder = typeBuilder.DefineMethod("TempMethod", MethodAttributes.Public, typeof(object), new Type[0]); ILGenerator ilGenerator = methodBuilder.GetILGenerator(); // この辺でinputを解析する必要があると思うんだが、わからない。 // ↓の使い方もあまりよくわかってない。 // ilGenerator.Emit(OpCodes.Ret); Type type = typeBuilder.CreateType(); object obj = Activator.CreateInstance(type); MethodInfo methodInfo = type.GetMethod("TempMethod"); Console.WriteLine(methodInfo.Invoke(obj, null));
Microsoft.CSharp
356 :
354 :2006/06/29(木) 20:26:50
ちなみに、入力したコードの戻り値がvoidだった場合のことは今のところ考慮してないんで。 やっぱ、inputをMSILに解析する処理を全部自分で作ってilGenerator.Emitを呼び出す必要があるのか・・・? そしたらさすがに諦めるか・・・。
357 :
354 :2006/06/29(木) 20:31:05
>>355 それって、CodeDomを使うってことだよね?
CodeDomとSystem.Reflection.Emitを組み合わせることってできるの?
俺の認識だと、CodeDomはソースコードをコンパイルしてアセンブリを出力するためのものだと思ってるんだけど違うのかな。
調べてから聞いてんのか?
つかC#のコードなんだろ? ならCodeDOMだ。
360 :
354 :2006/06/29(木) 20:36:02
>>358 ごめん、一応調べてから聞いた。
ただ、俺には少し難しくて
>>357 のような認識に行き着いた。
361 :
354 :2006/06/29(木) 20:37:28
調べたってのは、最初の質問をするよりも前の話ね。
>>359 もうちょい頑張って調べてみる。
dクス。
363 :
316 :2006/06/29(木) 20:56:06
すいません、これむりなの? ODBCのSQLTablePrivilegesを使いたいのですが system.data.odbcから生ハンドルをとるには どうするのでしょうか?
364 :
354 :2006/06/29(木) 20:58:37
俺の今まで辿った流れを言うと、 1.System.Reflection.Emitを駆使してやろうとした。 2.C#コードの解析方法わかんねー!ってなって、CodeDomを駆使してやろうとした。 3.アセンブリが出力されるのか・・・、やっぱ1でやりたいなって思って今に至る。 ちなみにCodeDomを駆使してやろうとしたときのコードが↓。 string input = Console.ReadLine(); StringBuilder sb = new StringBuilder(); sb.Append("using System;"); sb.Append("namespace test"); sb.Append("{"); sb.Append("public static class TestClass"); sb.Append("{"); sb.Append("public static object TestMethod()"); sb.Append("{"); sb.Append("return" + input); sb.Append("}"); sb.Append("}"); sb.Append("}"); StringReader sr = new StringReader(sb.ToString()); Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider(); CompilerParameters parameters = new CompilerParameters(); parameters.GenerateExecutable = false; parameters.OutputAssembly = @"C:\test.dll"; parameters.GenerateInMemory = false; parameters.TreatWarningsAsErrors = false; CompilerResults result = provider.CompileAssemblyFromSource(parameters, sb.ToString()); if (result.Errors.Count == 0) { // 実行 } このコードとさっき晒したコードをうまく組み合わせればいいのか・・・?
>>364 おいおい、Emit でやっても結局は Assembly だぜ。
CompileAssemblyFromSource このメソッド名をみて疑問に思わなかったのかお前は。
じゃねーわりい勘違いw
368 :
354 :2006/06/29(木) 21:15:54
>>367 は
>>365 のこと?
>>366 それ以外のメソッドを使うってこと?
最初、Parseメソッドを使えばアセンブリ出力しないでできるのかな?と思ったんだが
なんかParseメソッドはオーバーライドされてなくてNotImplementedExceptionだかがスローされた。
MicrosoftもParseを実装していてくれれば自分がAntlrで苦しむこともなかったのに・・・
ファイルに出力しないのは CompilerParameters.GenerateInMemory だな。 未実装だが。
371 :
354 :2006/06/29(木) 21:29:21
なんか勘違いしてたかも。 CompilerParametersのOutputAssemblyを設定しないで、 GenerateInMemoryにtrueを設定してやれば ファイル出力はされずメモリに格納されるっぽい???
372 :
354 :2006/06/29(木) 21:30:02
373 :
354 :2006/06/29(木) 21:50:19
ででででできたお!! みんなdクス!! string input = Console.ReadLine(); StringBuilder sb = new StringBuilder(); sb.Append("using System;"); sb.Append("namespace Temp"); sb.Append("{"); sb.Append("public class TempClass"); sb.Append("{"); sb.Append("public object TempMethod()"); sb.Append("{"); sb.Append("return " + input + ";"); sb.Append("}"); sb.Append("}"); sb.Append("}"); Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider(); CompilerParameters parameters = new CompilerParameters(); parameters.GenerateExecutable = false; parameters.GenerateInMemory = true; parameters.TreatWarningsAsErrors = false; CompilerResults result = provider.CompileAssemblyFromSource(parameters, sb.ToString()); if (result.Errors.Count == 0) { Assembly assembly = result.CompiledAssembly; Type type = assembly.GetType("Temp.TempClass"); Object obj = Activator.CreateInstance(type); MethodInfo methodInfo = type.GetMethod("TempMethod"); Console.WriteLine(methodInfo.Invoke(obj, null)); } 1+1って入力したら2ってちゃんと帰ってきたぞwwwww
乙
俺も昔簡単なC#インタプリタ作ったが(もちろんCodeDOM使って)、 初めて動いたときは感動した。
376 :
デフォルトの名無しさん :2006/06/30(金) 09:14:47
cのmemcmpはc#だと何ですか? Array,Bufferあたりだと思ったけど見当たりません。単に byte[] a, b; if(a.Length == b.Length){ for(...){ if(a[i]!=b[i]){ return false; ができればいいのですが。
>>376 それでいいんじゃない?
何を問題にしているか分かんないからこれ以上答えらんない。
>>376 C#というか.NET Frameworkには実装されてないので自分でやらないと駄目
単純にArray.CopyToかCloneでいけるんとちゃうの?
381 :
376 :2006/06/30(金) 11:13:24
標準ライブラリにはありませんか。なんで用意されてないんだろう。
アフリカでは良くあること
あるあるあるある。
>>373 で、メモリ内に生成したアセンブリのアンロードはどうする?
385 :
354 :2006/06/30(金) 14:31:05
>>384 メモリ内に生成されてるんだからGCがちゃんと回収してくれるでしょ。
別にアンマネージリソースじゃないから、明示的に何かしてやる必要なくない?
まぁ、CSharpCodeProviderはIDisposable実装クラスだから、ちゃんとDisposeかけてやる必要あるか。
387 :
デフォルトの名無しさん :2006/06/30(金) 15:41:36
richTextBoxを使って簡単なテキストエディタを作成しています。 秀丸のように、左側に行番号を表示したいのですが、どのような 方法で実現できるでしょうか? やってみたことは次の2つです。 1) テキストに line.ToString().PadLeft(5) +":" など頭につけて、 richTextBox.のTextにいれた。 行番号が編集できてしまうし、行を追加したとき、行番号が増えない・・・ あたりまえだ・・・orz 2) richTextBoxの左に幅の狭いTextBoxを置き、ここに行番号を 表示させた。 いまく、richTextBoxの現在の行頭番号が取得できないのと、 スクロールしたときなどのイベントが取れないし、そのつど、 TextBox の行番号文字列を作成しなおすので処理が重くて 使い物にならない・・・ なにか、よい方法をご教授してください。
>>370-372 少なくとも手元にある.NET2.0では
static void Main(string[] args) {
CompilerParameters cp = new CompilerParameters();
cp.GenerateInMemory = true;
cp.GenerateExecutable = false;
cp.ReferencedAssemblies.Add("System.dll");
CompilerResults cr = CodeDomProvider.CreateProvider("csharp").CompileAssemblyFromSource(cp, @"public class A { public static int F() { System.Console.WriteLine(""1234567890""); return 12345; } }");
Assembly a = cr.CompiledAssembly;
Type t = a.GetType("A");
MethodInfo m = t.GetMethod("F");
Console.WriteLine("return: {0}", m.Invoke(null, null));
Console.ReadLine();
}
が普通に動作したが…
>>385 ロードしたアセンブリそのものはGCの対象外。
>>354 がやりたいことが、大して大きなアセンブリ動的生成でないならば、
あとかたつけはあまり考えなくとも良いけど、
サーバのような長命アプリでユーザからの入力に応じて最適化されたアセンブリを生成するとかいうなら、
アプリケーションドメイン分けしてアンロードするしかないかと。
どのコストがどの程度かは実際やってみないとなんとも。
>>384 へのレスが的外れ気味なのを見ると、
すまんがちょっと全体的に知識不足な感が否めない気がする。
>>388 > が普通に動作したが…
アセンブリファイルはテンポラリフォルダに作成されるんだ。
わざと間違ったコード書いて CompilerResults の出力見ればコンパイルのコマンドオプションごと取得できるから分かる。
まあコンパイラ(csc.exe)が対応してないんだからどうしようもないんだが。
390 :
354 :2006/06/30(金) 20:33:44
>ロードしたアセンブリそのものはGCの対象外。 GCの対象外か。アプリケーションドメインがアンロードすればメモリ上のアセンブリは削除される? >大して大きなアセンブリ動的生成でないならば、 あとかたつけはあまり考えなくとも良いけど、 いや、俺はその辺ちゃんとやりたい。 >全体的に知識不足な感が否めない うん、俺あんま詳しくない。 Assembly assembly = result.CompiledAssembly;のCompiledAssemblyで 現在のAppDomainに対してアセンブリをLoadするみたいだけど、 AppDomainが終了するとメモリ上のアセンブリも削除されるんなら ここで別のAppDomainにLoadするようにすれば解決ってことだよね?
391 :
354 :2006/06/30(金) 20:37:28
あれ、なんか違う。 不要になったらAppDomainをアンロードする処理が必要なのか。 その辺の処理の仕方も調べとかないと。
393 :
354 :2006/07/01(土) 03:59:33
なんかよくわからなくなってきた。 つーか、CompilerParametersのGenerateInMemoryにtrueを設定すると、 CompileAssemblyFromSourceを実行しただけでアセンブリがロードされるぞ・・・。 これって別のAppDomainにロードするのは無理ってことじゃまいか?
別 AppDomain でコンパイルすれば良かろう
395 :
354 :2006/07/01(土) 16:53:50
それだと、コンパイル処理を行うクラスを作成して、 そのクラスは別アセンブリに切り離して、 そんで別AppDomainにそのアセンブリをロードして、コンパイル実行ってなるんだよな。 そこまでやるのはちょっと。。。 しょうがない、俺のやりたいことだとアセンブリのアンロードしなくても全く支障ないし、諦めるか・・・。 みんな色々ありがと
な、何を言ってるんだ?
つうか
>>392 のリンクにあるような方法で出来るだろ。
398 :
デフォルトの名無しさん :2006/07/01(土) 20:50:51
VC#2005の質問です。 webBrowserを使うとページによっては Flashがうざいんですけど一時的に消す方法ないですか?
MSHTMLでゴリゴリやれば可能だけれどもWebBrowserでは無理じゃないかな
400 :
398 :2006/07/01(土) 22:33:33
>>399 やっぱり無理ですか。
レスありがとうございます。
401 :
354 :2006/07/02(日) 01:15:16
>>396 別AppDomainで処理をするには、その処理を含んでいるアセンブリそのものを
別AppDomainにロードする必要があると思っているんだけど、違うやりかたがあるの?
>>397 リンク先のケースだと、プラグインの動的読み込みだから、アセンブリがファイルとして存在するんだよね。
でもコンパイルしたときにメモリ上に出力する場合って、それと同時にAppDomainにロードされちゃうみたいだから・・・。
コンパイルしてファイルに出力すれば済むんだけど、それはやりたくないのでどうにも。
いったいどこを問題にしてるわけ? >別AppDomainで処理をするには、その処理を含んでいるアセンブリそのものを >別AppDomainにロードする必要があると思っているんだけど、違うやりかたがあるの? そのとおりだけどそうすればいいだけで別に困らんと思うが? >リンク先のケースだと、プラグインの動的読み込みだから、アセンブリがファイルとして存在するんだよね。 だからファイルからロードする代わりにコンパイルするんだろ? 何か問題があるわけ? ※そりゃ多少は面倒は増えるが。
今までやってることはほとんどそのままで、 実行するときに別AppDomainでやればいいってだけだと思うんだが。
404 :
354 :2006/07/02(日) 02:02:57
>>402 ファイルからロードするなら、
>>392 のリンク先のやりかたで別AppDomainにロードできるけど
コンパイルしてメモリ上に出力する場合は、それができないじゃん。
そうすると、コンパイル自体をまず別AppDomainで行う必要があると。
んで、
>>395 にも書いたとおり、そこまでするのはちょっとなぁってこと。
そこまでっていうのは、アセンブリのアンロードをしたいという理由で別DLLを用意するということね。
なあ、どこまで分かってるんだ? なんで別AppDomainでコンパイルするためだけに別DLLを用意する必要があるんだよ。
>それだと、コンパイル処理を行うクラスを作成して、 >そのクラスは別アセンブリに切り離して、 >そんで別AppDomainにそのアセンブリをロードして、コンパイル実行ってなるんだよな。 なんで別アセンブリにしなきゃならないと思ったんだ?
>>401 メモリ上にコンパイルをするにしても、一時ファイルできちゃうみたいだし、
使用後のリソースを片つけるという意味では、その一時ファイルも消さないといけない。
おとなしくファイルにコンパイルした後、ロードしたほうがいいのでは?
>コンパイルしてファイルに出力すれば済むんだけど、それはやりたくないのでどうにも。
これの根拠は?
>>390 でも
>>大して大きなアセンブリ動的生成でないならば、 あとかたつけはあまり考えなくとも良いけど、
>いや、俺はその辺ちゃんとやりたい。
と、いってるのに、
>>395 では諦めるといっている。
基本的に、脳内の思い込みで制限を課しているのがほとんどだと思うのだが。
本当にちゃんと根拠があるわけ?
408 :
354 :2006/07/02(日) 23:16:12
んー、既にAppDomainにロードされているアセンブリを他のAppDomainにロードしようとしたら
うまくいかなかったから、てっきり別にアセンブリ(DLL)を用意する必要があると思ってたんだけど違うのか・・・?
>>407 >と、いってるのに、
>>395 では諦めるといっている。
いや、当初はまさかアンロードのために別DLLを用意する必要があるとは思わなかったんだ。(これが勘違いだったようだが。)
結局、別DLLを用意せずに、ある処理を別AppDomainで実行するためにはどうしたらいいの?orz
>うまくいかなかったから、てっきり別にアセンブリ(DLL)を用意する必要があると思ってたんだけど違うのか・・・? どうやってみてどううまくいかなかったんだ? 常識的に考えてそんな制限あったら使いもんにならんだろうが。
410 :
354 :2006/07/03(月) 00:55:13
>>409 以下のようなコードを記述して、tempDomain.AssemblyLoadイベントのハンドラにブレークポイントを張ったんだが
ハンドラが実行されることはなかったので。根本的に間違ってるかも。
// CSharpExecuter.Programクラス
static void Main(string[] args)
{
AppDomain mainDomain = AppDomain.CurrentDomain;
AppDomain tempDomain = AppDomain.CreateDomain("Temp");
string input = Console.ReadLine();
StringBuilder sb = new StringBuilder();
sb.Append("using System;");
sb.Append("namespace Temp");
sb.Append("{");
sb.Append("public class TempClass");
sb.Append("{");
sb.Append("public object TempMethod()");
sb.Append("{");
sb.Append("return " + input + ";");
sb.Append("}");
sb.Append("}");
sb.Append("}");
Assembly loadAssembly = tempDomain.Load(Assembly.GetExecutingAssembly().GetName());
Test test = (Test)loadAssembly.CreateInstance("CSharpExecuter.Test");
Assembly assembly = test.CompileAssemblyToMemory(sb.ToString());
Type type = assembly.GetType("Temp.TempClass");
Object obj = Activator.CreateInstance(type);
MethodInfo methodInfo = type.GetMethod("TempMethod");
Console.WriteLine(methodInfo.Invoke(obj, null));
AppDomain.Unload(tempDomain);
Console.ReadLine();
}
411 :
354 :2006/07/03(月) 00:56:30
続き // CSharpExecuter.Testクラス public Assembly CompileAssemblyToMemory(params string[] source) { using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { CompilerParameters parameters = new CompilerParameters(); parameters.GenerateExecutable = false; parameters.GenerateInMemory = true; parameters.TreatWarningsAsErrors = false; CompilerResults result = provider.CompileAssemblyFromSource(parameters, source); if (result.Errors.Count == 0) { return result.CompiledAssembly; } else { string message = string.Empty; foreach (CompilerError error in result.Errors) { message += error.ErrorText + "\r\n"; } throw new ApplicationException(message); } } }
C#にYaccみたいな構文解析のソフトってありますか?
ANTLR
>>410 おまえがメソッドのマニュアルすらちゃんと読めてないことは分かった。
…ていうかおまえドメインの扱いまったく理解してないだろ。
現在のドメインと対象のドメインでそれぞれどう動いているか、
対象のドメインから何を返してよくて何を返したらだめか、
アセンブリのロード等を行った場合に返ってくるのは
現在のドメインのアセンブリか、対象ドメインのアセンブリか、
その辺ちゃんと理解しないと無理だぞ。
いくつかヒントを言っとく。
AssemblyはMarshalByRefじゃないからドメインまたがって参照は返せない。
>>410 のコードだとコンパイルしてる型はMarshalByRefじゃないから
やっぱりドメインをまたがっては返せない。
もちろんその前にお前が対象ドメインで操作してるつもりのアセンブリは
実際には現在のドメインのアセンブリだから対照ドメインでコンパイルはできてない。
また
>>411 からは分からないが、CSharpExecuter.TestがMarshalByRefじゃなければ
対象ドメイン内でコンパイルなどできない。
まあその前にインスタンス返そうとした時点で例外になると思うが。
TempClassをMarshalByRefにしてドメインをまたがって参照を取得するか、
CSharpExecuter.Testでメソッドの実行まで行って結果をもらうだけにしないと、
対象ドメインで実行することはできない。
Activator.CreateInstanceは当然ながら現在のドメインにインスタンスを
作成するし、そもそもアセンブリを現在のドメインに呼んでしまったら意味ないし。
…
突っ込みどころ満載過ぎて、もう、どうしようもないな…
ああ、 >TempClassをMarshalByRefにしてドメインをまたがって参照を取得するか て書いたけど、この場合はインターフェイスとか用意しといて実装して インターフェイスで受け取るようにしないとだめだな。 ※MarshalByRef派生の基底クラスやデリゲートでもまあいいかもしれんが。 でないとTempClassのアセンブリを現在のドメインに読む必要ができてしまう。
オレが↑を理解できないことはわかった。
418 :
412 :2006/07/03(月) 05:42:40
>413 thx!!
419 :
デフォルトの名無しさん :2006/07/03(月) 12:38:39
RichTextBoxをユーザーの操作を一切受け付けくない用途に使いたく ReadOnlyにしていますが、マウス操作ができてしまい困っています。 カーソルについては KeyDownEvent でe.Handled = true;で禁止できま きた。しかしマウスについてはどうしても禁止できず、マウスで範囲指定 して、スクロールもできてしまいます。 なんとかすべての操作を禁止させたいのですが、方法はありますか?
読み込んだHTMLファイルのタグを全て除去したいのですが よい方法はありませんか?
>>419 ならLabelとか使えばいいんじゃん?
>>420 「<」と「>」で囲まれた部分を削除すればいいんじゃん?
>>419 RichTextBoxを継承してWndProcオーバーライド
マウス系のメッセージを握りつぶせ
>>419 自己レスになります。
フォーカスのEnterイベントで他のコントロールに
Forcusすることで解決しました。
>>421 Labelとか、TextBoxでは機能不足で、
RichTextBoxでないと表現できない
ものなのでしょうがないんです。
426 :
420 :2006/07/03(月) 17:14:38
ありがとうございます。 textBox2.Text = textBox1.Text.Replace("<.+?>","たぶ"); のようにして、HTMLタグを"たぶ"と変換してみたのですが 変換されずそのまま表示されてしまいます。 ”<”と”>”の位置を探して位置を指定して削除する方法で行うのでしょうか?
>>426 Regex.Replace(textBox1.Text, "<.+?>", "たぶ");
じゃ、だめ?
428 :
420 :2006/07/03(月) 17:30:28
ありがとうございます!! うまく動作できました!!感謝!
やはり最後はRegexなわけだな。 ところで、みんなRegexは何て発音してる? 俺は基本「れげっくす」で、 心に余裕があるときは略さず「れぎゅらーえくすぷれっしょん」て読んでる。 人に話したことは無い。
れじっくす
431 :
デフォルトの名無しさん :2006/07/03(月) 20:56:07
れぐいーえっくす
れぐえっくす
せいきひょうげん
りじぇっくす
エグいっす
437 :
デフォルトの名無しさん :2006/07/04(火) 10:07:00
DataGridで、カラム(ヘッダというのかも)と、データ部で、 alignmentを変えるにはどうすればいいでしょうか? 具体的にはカラムは中央寄せで、データは右寄せにしたいと思っています。 環境はWindows2000、.Net Framework1.1 VC#2003です。
C#でお絵かきソフトって作れますか?
コンパイラの警告 (レベル 1) CS1911 に関する質問です。 class C { delegate void D(); delegate IAsyncResult BeginDelegate(AsyncCallback callback, object o); delegate IAsyncResult Continuation(AsyncCallback continuation); static Continuation MakeContinuation(BeginDelegate d) { return delegate(AsyncCallback callback) { return d(callback, null); }; } IEnumerator<Continuation> F() { D d1 = delegate() { }; yield return MakeContinuation(d1.BeginInvoke); // ここで警告 // 以下、EndInvokeなど } // その他、イテレータの駆動メソッドなど } のようなものを作っています(↑のものは実際のものをかなり簡略化)。 コンパイルすると、「d1.BeginInvoke」の部分で、 匿名メソッドまたは反復子から、 'base' キーワードをとおしてメンバ 'C.D.BeginInvoke(System.AsyncCallback, object)' へアクセスすると、 確認不可能なコードを生じさせます。 含んでいる型のヘルパ メソッドにアクセスを移動することを考慮してください。 のような警告が出ます。 おそらくどこかに隠れたbaseがあるのだと思うのですが、どこにあるのでしょうか。 一応、Reflectorなどでも確認したのですが、見当たりません。 よろしくお願いします。
441 :
439 :2006/07/04(火) 17:07:25
自己解決しました。 BeginInvokeはvirtualだった…
カンマ区切のエクセルのデータを配列に格納したいのですが カンマ区切でデータを分割するにはどうすればいいですか?
string.split(new char[] {','})
ほんとうにそれだけで大丈夫かな? "\123,00の品物",ごご,がが とかだと問題でるやろ
Microsoft.VisualBasic.FileIO.TextFieldParserクラス
>>438 君が大したプログラマだったら、Photoshopに負けないものを作れるかもしれない。
君が大したことないプログラマだったら、Microsoft ペイントに負けないのが関の山
かもしれない。
C# だと速度的な観点から言えば Photoshop には勝てない気が。
Photshoptと同じようなもの作ってもなぁ・・・
MATLABみたいに画像処理できるの作ってよ できればGUIで
なぜそこでMATLABが
MATLABおもすれー(^ω^;)
>>449 初めて見たけど、素直なインターフェースで良さげなソフト。
ちょっと前使ってたがレイヤーも使えるしそこそこいい けどやっぱダメだ
GimpShop よりも明らかに使いやすいな
>>448 Photoshop並のものを作ってシェアウェアで公開しても誰も買わないだろうな
P2Pのせいかソフトウェアは無料が当たり前
一般人は「パソコン使う仕事は全部虚業」って考えが多くなってて困る
ケータイアプリはゴミでも金取れるけどな
458 :
354 :2006/07/04(火) 23:19:47
>>449 確かPaint.NETは学生がMSのアドバイスを受けながら開発したものなんだよな。
使ってみたことあるけど、グラデーションのかけかたがわかんなかった。(用意されてないのか?)
うはww名前消し忘れたwwwwww
DateTimePickerには9998/12/31までしか設定できないみたいですが どうしてDateTime.MaxValue(9999/12/31) を設定できないんでしょうか。 回避するにはどうしたらいいでしょうか?
>>460 その頃にはゴキブリが地上を支配しているから、台所行って頼むしかない。
PictureBoxに表示した背景画像の上に、 スプライトのように、一部透明な画像を表示したいんですが どうしたらいいでしょうか? 透過色指定したPNGファイルで、MakeTransparent(〜); を呼び出しても、 PictureBoxのBackgroundColorの色が表示されてしまい、 BackgroundColorを透過色にしても(当然ながら)ダメでした。
背景画像とやらに直接描画する
レイヤードウィンドウを使う
テキストファイルの指定した行のみ読み込む方法はありませか?
StreamReader で目的行まで空読み
467 :
465 :2006/07/06(木) 23:26:58
あっ!!そうか!ありがとうございました!
えぇぇぇぇぇぇ
うるせーよ。どっかいけw
Visual C# .NETでForm2のオブジェクトのプロパティをForm1に 表示するにはどうすればいいんだぜ?
textBox.Text=form2.HogeProperty.ToString();
PropertyGrid
マルチページのTIFFを表示して印刷するアプリを作ってるんだが、 上手くいかなくて困っている。 Image#FromFileでファイルを読み込むとファイルがロックされてしまう。 仕方がないので以下のようにしたら、今度はアクティブなフレームを切替える ところでGDI+のエラーが出てどうにもならない。 FileStream fs = new FileStream("hoge.tif"); Image img = Image.FromStream(fs); fs.Close(); // 別のボタンのイベントでアクティブなフレームを切替える どうにかして、ファイルをロックせずに、マルチページTIFFを読み込んで ページの切替えを自由自在にやる方法はないもでしょうか?
GDI+のエラーって?
一旦ファイルを MemoryStream に読み込んでそれから Image つくれ。 // 最近減ったなこの質問
文字列から数値に変換しようとして悩んでいます。 Int.Parse("255"); などの数字文字列は問題なく変換されますが、 Int.Parse("ff"); などの16進の文字列は変換できないようです。こういう場合どうするのが良いのでしょう? Convert などは駄目みたいですね。
Convertにもオーバーロードがある Int32.Parseにもオーバーロードがある
479 :
デフォルトの名無しさん :2006/07/08(土) 21:31:23
VS2005なんですが Form1のメニューバーの「バージョン情報」から Form2(バージョン情報のウインドウ)のウインドウを開くにはどうしたらいいんでしょうか?
>>478 どもです。見つかりました。
念のため回答を書いておきます。
Int32.Parse("FF", System.Globalization.NumberStyles.AllowHexSpecifier));
これで 255 を取り出せます。
>>479 Form2 を作って ShowDialog すればいいんじゃね?
482 :
デフォルトの名無しさん :2006/07/08(土) 22:25:11
Windows.Forms.Form が表示された直後に1回だけ呼ばれるイベントってないですかね? Load は表示される前だし。 Activate でフラグを立てて2度目移行は反応しないってのを考えたけど、それ意外にある?
フラグじゃなくてイベントハンドラそのものをさっぴいとけ
485 :
デフォルトの名無しさん :2006/07/09(日) 00:02:48
WebBrowser.Navigate("〜〜〜〜"); で表示させたURLから移動したことを検出するにはどのような操作をすればいいんでしょうか?
Shown
487 :
470 :2006/07/09(日) 02:55:42
Serialクラスははずれっぽい フックを使うのかな。。
>>476 よくある質問だったのかorz
ありがとう。多分これでできそう。
Excel互換のCSV処理なら、Microsoft.VisualBasic名前空間のTextFieldParser関数を使う。 配列にデータを放り込む程度なら、5,6行もコード書けば終わる。
>>483 「表示された」という現象はソフトの操作者が認識する。
よって、そんなイベントはありえない。
494 :
491 :2006/07/09(日) 15:07:38
だって、そうじゃんよ(・∀・) いくらシステムの方で「表示されました」って主張したって、 実際にディスプレイを見ている使用者の目に映っているとは限らない。
だれが、使用者の目に映ったかイベントをハンドルしたいといってるのかと
497 :
491 :2006/07/09(日) 15:29:35
>>495 でもそうゆうことになっちゃうじゃんよ結局。
それで漏れは「無理だ」といったわけ。
>>483 は、表示される前では意味が無く、
表示されてから行いたい処理があるからこそ
「表示された直後」のイベントが欲しいと言ってるんだろ?
一般に表示を担当するスレッドの優先率は低いから
実際に表示されるタイミングは、システムの処理状況しだいで
変わるじゃんよ。おまけにビデオカードやディスプレイなんかの
ハード的な条件も加わるだろ?
実際に使用者の目に映るまでには、いろんなボトルネックがあるわけ。
だから、いくらシステムが「表示しました」なんて言い張ったとしても
そのタイミングで実際にユーザが「見えている」とは限らないでしょ。
それでも「見えてから」行わないと意味の無い処理をしたいと
>>483 は希望してるんだと漏れは考えたわけよ
わかった?
>>497 あほすぎて付き合う気にも慣れん。
クライアントのいったことを脳内解釈して希望と全然違うシステム作って俺は間違ってないとふんぞり返りそうな奴だ。
499 :
491 :2006/07/09(日) 15:43:09
>>498 あくまでもありうる解釈として厳密に言ってみただけだよ。
実際の開発現場での実践論を話してるわけじゃない(・∀・)
ジョークが通じない奴だなおまいはw
>499 冗談だったのなら>494の段階で言うべきだったな。 あそこで頑張っちゃったからもはや取り繕えない。まぁ、ID変わるまで 黙ってろってこった。
502 :
491 :2006/07/09(日) 15:50:52
503 :
491 :2006/07/09(日) 15:54:27
>>501 >>494 は別に頑張ったわけでもないし
必死なわけでもないんだけどなぁ・・・ww
IDも表示してないし(・∀・)
なんか必死な人がいるスレはここですか?
>503 ああ、間違った。ここはID表示なかったね。良かったじゃないか。 オレは冗談だと分かってたのでドーデモいいのだが、それを逆手に取るのも 2ちゃんってもんだろ?それにイチイチ反論するってのが馬鹿なのよ。 無視してればそれこそ>491-492が冗談のわからない馬鹿として見られたのに、 >494で、「ああ、馬鹿にされるのもしょうがないか」と思わせたね。 関係ない話題なんで、オレはもう書かない。
507 :
デフォルトの名無しさん :2006/07/09(日) 16:03:06
痛々しいスレッドはここですね
508 :
491 :2006/07/09(日) 16:03:20
ちょっ、まいったなぁw
ちょっとした揚げ足取りみたいな言い返しって
普通の生活の中でよくやるじゃんよおw
>>491 もそんな感じで言っただけじゃんか
おまいらそうゆうことしないの?(・∀・)
>>503 あくまでもありうる解釈として厳密に言ってみただけだよ。
実際に
>>491 が必死かどうかを話してるわけじゃない(・∀・)
ジョークが通じない奴だなおまいはw
ここは
>>491 が冗談のつもりで言ってそれに一応突っ込んだ人に対してそのジョークさ加減を必死に説明するスレになりました。
511 :
491 :2006/07/09(日) 16:07:26
>>506 >>494 にしたってただの「返し」のつもりだったんだけどな・・・w ま、いいや(・∀・)
>508 打たれ弱いな。お前にお笑いはムリだ。
513 :
デフォルトの名無しさん :2006/07/09(日) 16:08:39
言い訳がましいw
>509 コピペ乙
なんだか小学生が失敗したときに「わざとだよ」と開き直るのを見た気分。 「もういいんだよ」と優しい言葉をかけてやろうではないか皆の衆。
おまえもな
そんなにリロードしてサーバに負担をかけるんじゃない。 日曜日の夕方だ。もっと有効な時間活用をしろ。 オナニーとか。
>515 >491はなにか失敗したの?
>>518 オカズが無い.............orz
おまいら何かやなことでもあったの?(・∀・)
522 :
デフォルトの名無しさん :2006/07/09(日) 16:37:05
ああ、ウザイ奴を掲示板で見かけてな。
>>491 .NET Framework2.0からShownイベントというものが用意されたんだよ。
ドンマイ。
IEの選択範囲を自作アプリのtextBoxにD&Dって出来ないですかね?
できるよ。
質問です ウィンドウハンドルってIntPtrにしなくていいんでしょうか? サンプルだとintだったりlongだったりするんだけど
intはやめておけ。ウィンドウハンドルはWin64だと64ビットになるから。 だからと言ってlongにするとWin32ではなんとなく無駄な気がする。
528 :
483 :2006/07/09(日) 18:45:07
>>491 さんが人気者になってたんで、ちょっとレスしづらかったですがw、
>>486 さんありがとう。
529 :
524 :2006/07/09(日) 18:46:29
>>527 Win64だとintは64bitではないのか?
32bitでも64bitでも int は Int32 で long は Int64 だ
C# でゲーム作成って、はやるのかって思った
533 :
デフォルトの名無しさん :2006/07/09(日) 19:17:11
流行るの?
>>532 相変わらず.Net Framework入れてないユーザーが多い点を除けば結構便利
Vistaは最初から.NetFramework入るんですか?
RichTextBoxで、ある文字列を検索して色をつけたいのですが、どうすればできますか? 検索はFind()で出来ますが、「色をつける」が分かりません。
SelectionColor
>>538 ありがとうございます。
Find()で範囲をSelect()し、SelectionColorでうまくできました。
しかし、それではカーソル位置が変わってしまいます。
もともとの選択位置にカーソルを戻す場合はどうすればよいのでしょうか?
何を呼んだ結果カーソル位置が変わったかは分かってるよな? その逆をやれば良いだけだ。 プロパティとメソッド一覧を穴の開くほど見ろ。
542 :
デフォルトの名無しさん :2006/07/09(日) 21:16:23
やだよバカ
>>529 this.textBox1.AllowDrop= true;
#####
private void textBox1_DragDrop( object sender, DragEventArgs e )
{
if( e.Data.GetDataPresent( DataFormats.Text ) )
{
string droppedText = (string)e.Data.GetData( DataFormats.Text );
}
}
10行も長い、俺は3行以上は読めない
547 :
524 :2006/07/09(日) 21:55:17
>>543 早速試してみましたが出来ませんでした・・・。
textBox.Text = (string)e.Data.GetData( DataFormats.Text );
なども試してみましたが、カーソルの表示が駐車禁止みたいなマークのままです。
D&D そのものが分かってないようだな。 ちょっと調べればサンプルとか出てくるだろ。
>>536 これまでWinFXと呼ばれていたものが、.Net Framework3.0と名称が変わり、これは、
Vista標準搭載。3.0の正体は.Net Framework2.0+αらしい。
552 :
526 :2006/07/09(日) 22:49:38
[DllImport("user32.dll")] private static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName); FindWindowで目的のウィンドウが見つからなかったら0が帰ってくるらしいんで if(hWnd == (IntPtr)0)で見つからなかった場合の処理してるんだがおかしい?
IntPtrの静的メンバに
とりあえず IntPtr.Zero を使え
555 :
524 :2006/07/09(日) 22:54:06
ドラッグでファイルパスを取得して、そのファイルを開くのは出来ますが、 IEから選択範囲を取得するのは無理って事なんですかね?
556 :
526 :2006/07/09(日) 23:00:06
>>555 少しは公開されているソース読むとかしろよ
できてるものがあるんだから...
561 :
デフォルトの名無しさん :2006/07/10(月) 00:11:07
Referer 情報を保持したいのですが HttpWebRequest.Referer プロパティってどのように設定すればいいんでしょうか?
どのようにと言われてもサンプルのようにとしか。
文字列を代入するんだよ、そんなことも分からないんじゃプログラムを作るのはやめたほうがいい
IntPtrってcでいうchar*、int*、void*とかのの総称でしょ? 名前からするとint*みたいな。 しかもなぜかISerializable。
565 :
デフォルトの名無しさん :2006/07/10(月) 00:30:33
>>562 サンプルなんてありました?
CとPHPとアセンブラくらいしかやったことないので
まだオブジェクトっていう考え方よくわかってません・・・・
HttpWebRequest.Refere= "
http://hoge_nurupo.com ";
とこんな感じに指定はできないんではないですか?
567 :
デフォルトの名無しさん :2006/07/10(月) 00:40:36
568 :
デフォルトの名無しさん :2006/07/10(月) 02:16:57
初歩的な質問ですがお願いします。 TabPageの派生クラスを作成しTabControlに追加したいのですが デザイナで追加したTabPageの型をコードのほうで変更するやり方だと デザイナで「変数が割り当てられていません」というエラーが出てデザイナが使用不能になってしまいます。 独自に作成したコントロールをデザイナで使用するためにはどうしたらよいのでしょうか?
>>569 今日は「ゴミ以下」が多いから気にするな
すでに夏厨の季節か
>>564 どっちかというとそういう名前の整数型と言う方が近いかもしれない。
Cでいうところのintptr_t。
C#で明示的にSSEとかのSIMDを利用することってできますか?
>>568 designの方のコードはいじらないで、まず派生クラスをつくってからコンパイル。
すると、ツールボックスに自作のコントロールが出てくるから、
それをポトペタ。
>>555 >>543 に加えて
private void textBox1_DragEnter( object sender, DragEventArgs e )
{
if( e.Data.GetDataPresent( DataFormats.Text ) )
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
TextBox.OnPasteをオーバーライドしてWndProcから呼ぶようにしたら、 貼り付け後のアンドゥができなくなってしまいました。どうしたら いいですか? OnPasteでは、貼り付け可能な文字かどうか判断して SelectedTextを更新しているだけです。
Problem フォームに動的にコントロールを追加したい ボタンのクリックイベントハンドラで以下のコードで実現できるが この方法では作成したコントロールを別の場所から制御できない Button btn = new Button(); //プロパティをいろいろ設定 this.Controls.Add(btn); //この後ハンドラのブロックを抜けるためbtnはGCの対象になり、 //アクセスできなくなる メインフォームクラスでprivate変数を持てばそれを通して別の 場所からもアクセスできるが、それではコントロールを数十個 追加するなどすれば破綻してしまう
>>577 根本的にC#を判ってないと思う。
何で破綻するのか3行で書いてみ?
579 :
577 :2006/07/10(月) 16:10:45
はい public class Form1 : Form { private void button1_Click(object sender, EventArgs e) { Button btn = new Button(); //btnのプロパティを設定 this.btn = btn; } private Button btn; } これでインスタンス変数btnを通してあとからでもButtonをいろいろといじれる でも、このままではButtonは一個しか増やせない。3個にしようと思えば その分インスタンス変数を増やさないといけなくなる あ、Buttonを格納できるコンテナを使えばいいのかな?
580 :
524 :2006/07/10(月) 16:13:54
581 :
524 :2006/07/10(月) 16:23:02
>>579 最初に必要なだけ並べておいて全部Hide()
必要になったらShow()じゃダメ?
>>579 this.Controls.Addしたんだから
this.Controlsの中に入ってるじゃんよーw
もっと単純にかんがえようよ(・∀・)
584 :
583 :2006/07/10(月) 16:58:55
インデクサ使えるよな・・・ (Button)this.Controls[n]でOKだよな・・・
585 :
579 :2006/07/10(月) 17:11:07
いいんです… 僕は頭が悪いんですから… もういいんです… ありがとうございました…
>>585 お前は頭が悪いのか?
つまり
>>582 や
>>583 を見ても解決できなかったということか?
もし解決できたんなら、それでいいじゃないか。
みんな、そうやって知識を蓄えて成長するんだよ。
解決できなかったなら頭悪い死ね。
慰めてるのかけなしているのか
Problem TabControlのラベル部分の背景色を変更したい TabControlのImageListプロパティを設定することで ラベル部分にアイコンを表示することは出来るが、 背景色や文字色は変更できない
Click Event とかで特定の Tab を開かせるのは どうやればいいですの
>>590 意味ワカンネ
とりあえずTabControlなら
SelectedIndex やSelectedTab で設定できるけど。
まさかヘルプ読めば書いてあって気違いでも分かるような
超低能な質問するわけないよね?
ピクチャーボックスにDrawRectancleした四角形をスムーズに移動させたいです。 いまは、前の位置を背景色で塗ってから新しい位置に四角を書いています。 もっとよいやり方があったら、ヒントをお願いします
593 :
デフォルトの名無しさん :2006/07/10(月) 20:25:34
それでいんじゃね
595 :
592 :2006/07/10(月) 21:03:45
いえ、使っていません 一気に1000個描画してから切り替えているようですが、移動させると考えると、その都度切り替えるということですかね?
596 :
588 :2006/07/11(火) 01:55:42
>>589 へぇぇオーナードローってのがあったんだ
勉強になりますありがとうございます
Formのサイズを定数で指定したいです InitializeComponent()の中でthis.Sizeなどをいじっても いつのまにか初期設定にリセットされています InitializeComponentのコメントにも 「デザイナサポートに必要なメソッドです。このメソッドを コードエディタで変更するな」 と書かれています かといってFormクラスのコンストラクタで InitializeComponent(); の直後にサイズを変更するコードを書くのは サイズの設定をわざわざInitializeComponentの中と外の 二箇所で指定することになりスマートじゃないです
>>597 デザイナでサイズ指定しなきゃ良いじゃん
599 :
デフォルトの名無しさん :2006/07/11(火) 03:05:46
作業ディレクトリの指定に関する質問です。 fileOpenDialogで実行ファイルまでのパスを取得した後に Process.Start()で実行しようと思っています。 この際に実行ファイルがあるディレクトリをWorkingDirectoryにしたいのですがどういう方法があるでしょうか? 実行ファイルまでのパスから取得する方法はあるのか、或いはfileOpenDialogする際に取得する方法があるのか、 また他の方法があるのか教えてください。
600 :
599 :2006/07/11(火) 03:13:17
訂正:fileOpenDialogじゃなくてOpenFileDialogの間違いです
System.IO.Path
602 :
597 :2006/07/11(火) 09:29:02
>>598 どういうこと?
デザイナでFormのSizeを0,0に設定するってこと?
コンストラクタでやれ
>>602 デザイナで好みのサイズにしたら、あとはサイズ変更しなきゃいいんじゃないの?
あとはFormBorderStyleを固定(Fixidが付いてるやつ)にして
MaximizeBoxにFalseを設定すりゃ、実行時もサイズは変更できないよ。
でも、直接いじったからって初期設定にいつの間にかリセットなんてされないはずだが・・・?
そのFormは継承Form?
定数てのがミソなんでせう。
SizeにしてもLocationにしてもコンストラクタ内で再設定しても プロパティ自体は新しい値を保持するけど、実際に表示された ときに、反映されるとは限らない。実際はデザイナの設定の とおりに表示される場合がほとんど。 コントロールの表示属性を変更するような処理は コンストラクタの中で書いちゃいけないのは常識。 Loadイベントの中で行うべし。
>>597 は「定数」の意味を理解していないに100ペソ
もしくはオレ流定義をしているに100ペソ
>>597 ところで、「定数」はどこに定義してるの?
デザイナでセットしても実行時にどっかでそれをセットしてるんだから祖こんところを調べろよ。
System.Type A と System.Type B を与えられたときに、 「A から B に変換可能か?」という判断と 「可能ならば変換する」という処理をしたいんですが、 どうすればいいでしょうか? Type は In32 とか Single とか基本的なクラス のみでいいんですが。
>>610 int とか float の相互の型変換は、C# 自体がその機構持ってるわけじゃなくて、
単にそれらの数値型に implicit なキャスト operator が実装されてるだけだった気が。
うろ覚えだから違うかもしれないけど。
なので、型変換可能かどうかという判断をするメソッドはないんだけど、
GetMethods とか使って、implicit キャストが実装されてるかどうかを検索すれば
多分可能だと思うけど、なんかそもそもの設計が変な気もする。
>>610 「変換可能」の定義が曖昧
実数型を整数型にキャストして小数点以下が落ちるのは「変換可能」なの?
有効桁数を超えるキャストをして丸められたりするのは「変換可能」なの?
パターンを考えないと意図しない結果になると思うよ
動的に数値型の型が不明っていうのはどういう場合なんだ?
614 :
597 :2006/07/11(火) 13:34:18
>>604 いいや勝手に書き換えられてるよ
ただ初期設定に書き換えられるというのは勘違いだったみたい
以下再現法
VC2005なんだけど
普通にWinアプリプロジェクト作成して、
デフォルトで作成されてるFormのInitializeComponent()の中
で、例えばFormのClientSizeが決定されたあとでそのForm.ClientSize
を使って別のコントロールのSizeを決定したくても、デフォルトで
作成されるFormの初期化では、例えばFormにButtonが一個
あるだけだと以下のようになっている。
//button1
this.button1.Size = new Size(30,30);
//Form1
this.Size = new Size(300,300);
で、これを以下のように変更する
//Form1
this.ClientSize = new Size(300,300);
this.button1.Size = this.ClientSize;
これでbutton1のサイズがFormのクライアント領域に合わされる
で、この後例えばFormのNameプロパティを変更したりすると、
なぜか上記のコードの変更が勝手に書き換えられる
以下のようになってしまっていた
//button1
this.button1.Size = thisl.ClientSize;
//Form1
this.ClientSize = new Size(300,300);
//あれここに書いていたはずなのに上に移動してしまっている
このままコードを実行すると、画面一杯になったButtonが一応表示される
しかし、例えばFormのSizeを400,400に変更したりすると、
Buttonは300,300のままで変化しない
プロパティ変更してるじゃん……
InitializeComponentはデザイナ用のコードなんだから当たり前 何のためにpartialになってると思ってんだ
>>614 それ、
>>597 でやろうとしてることと違うじゃん。結局なにがしたいの?
定数で指定したいとか言ってたのに定数が見当たらないけど?
>>616 も言ってるけど、InitializeComponentってのはデザイナ用のコードなんだ、
直接いじったあとに、デザイナーで何かしらいじれば、
デザイナがInitializeComponent内のコードを再び書き直すよ。
617に書き忘れたけど、 ボタンのサイズをフォームと同じにしたいんなら ボタンのDockプロパティにFillを設定してやれば解決だよ。
要するにフォームの起動時の位置と大きさを設定したいなら Loadイベントでやれってこった 保存するときはRestoreBounds を使えってこった
>.NET Framework 2.0 の Form オブジェクトに RestoreBounds プロパティが追加されました。 >これは、フォームが最小化または最大化しているときでも、通常表示状態のフォームの位置とサイズを保持する Rectangle 型を返すものです。 うお、知らなかった。 今まで最小化最大化時は保存しないってことにしてたよ……
オレ流コーディングを見せ付けるスレはここですか?
>>619 コンストラクタのInitializeComponentの後の方が良くない?
StartPositionをCenterScreenにしてLoadイベントでSizeを変更すると画面中央にならないよ。
>>619 オレも知らなかったよー
今まで
---
this.Opacity = 0;
this.WindowState = FormWindowState.Normal;
---
の後にサイズと位置を保存していた・・・
でもさぁ、RestoreBounds ってどうゆうとき使うの? 最小化や最大化しちゃった後でもシステムが記憶してるじゃない
最小化・最大化するとWidthやHeightの値はそれに合わせて変更される その状態で元のサイズを知る方法が今まではAPIしかなかった どういうときにつかうかといえば、フォームのサイズを記憶する必要があるソリューション 最大化のWidth/Height/Left/Topを保持し、次回起動時にそれを設定したら、最大化を解除しても画面いっぱいのままでしょ それを防ぐには本来のサイズを保持して、最大化・最小化のステートとは別にしておく必要がある つか少しは考えろよ
デレツン
構造体のEmptyフィールドって、 public static readonly StructA Empty = new StructA(); とすればいいの?
Xpマシンに.NET2003(C#)で作ったAP入れて動かしてるんだけど、 ごく稀にForm上に設置した特定のラベルコントロールが赤×表示されてしまう 事があります(赤×表示=ラベル一杯にバッテンが赤線で表示される)。 Webで調べたんだけど、日本サイトでは何も見つからなくて、海外サイトでは 何やら同様の現象について議論は交わされてるんだけど、はっきりとした 原因・解決策が載った所に行き着きません。。。 どなたか経験者・有識者の方、アドバイス下さい。
>>628 そのコントロールのPaintで失敗してるんじゃないかな
>>629 返信ありがとうございます。
確かにPaintに失敗してるとは思うのですが、原因と解決策がわからんのです。
再現も出来ないんで、五里霧中状態です。。。
>>630 そうですか。としか言いようがないが。
ソースか実行ファイルうp
>>628 あー、それ俺も Release バージョンでよくなる。
なにか例外が発生しているようで例外ダイアログボックスが出るんだけど、
そのダイアログ上のコントロールも全部赤×で表示されてるので詳細がわからない。
Application.Run を try ... catch ... で囲ったり AppDomain.CurrentDomain.UnhandledException を
設定たりしてるけどトラップされていない模様。
一度それが発生するとメニューバー・ツールバー・ステータスバーなどが赤×で表示される。
再現方法もわからないしなんの解決にもなってないけど報告まで。
>>627 new する必要もない。
構造体なら宣言だけしとけば自動的にインスタンスが作られる。
// new で初期化するのとじゃちょっと意味合いが変わったような希ガス
サスペンドから戻った時に、 System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。 てな実行時エラーを出す常駐ものがあって、なんとなくFormに貼り付 けたタイマーあたりでエラーが起きてるぽいんだけど、サスペンド対応の 定石みたいなものってあったりする?いったんタイマーを停止させない といけないとか。
VC#2005 Expressでプロパティウィンドウの下に 説明が表示されるじゃないですか。 何かの拍子でこれが消えて項目だけになるのですが、 なにか解決方法とかってあるのでしょうか?
>>635 あーなるなる。2003の時もそうだった。
消えるというか説明の領域が最小になるんだよね。
その都度領域を広げなおすしかないんじゃない?
そんなに手間でもないしね。
>>634 何となくとか言わず原因を追及しろよ。
サスペンドや休止はハードウェアやドライバの依存が強くて困るんだよな。
>>636 ステータスバーとプロパティウィンドウの間にカーソルを持って行くと
カーソルが境界線っぽい形になるけど
何故か摘もうとすると矢印状態に戻って上手く摘めません
で、今さっき、右クリック->コマンドにチェックを入れたら
コマンドの領域と一緒に説明パネルが出てきました
前はその辺りを弄っても変化なしだったような気がするけど
一応解決なのかな?
639 :
デフォルトの名無しさん :2006/07/11(火) 20:05:52
VC#EE重くない?タイプしていっても表示が追いついてない感じ
640 :
デフォルトの名無しさん :2006/07/11(火) 20:14:55
いや、全く
重い。 がしかしそれは私の環境が貧弱なせいなのは明らかだ orz
642 :
624 :2006/07/11(火) 20:51:40
643 :
デフォルトの名無しさん :2006/07/11(火) 23:23:00
C#ってアロー演算子ある?
そんなもの、あろうはずもなく。
646 :
デフォルトの名無しさん :2006/07/11(火) 23:56:02
どっちですかー
言語仕様読めよ
ねーよ
649 :
デフォルトの名無しさん :2006/07/12(水) 00:47:42
ヒント:読めない事情がある
メンバにアクセスするには "." を使う。 ポインタが使えるのはunsafeコードだけ。 ポインタには->演算子が使える。 いじょ。
651 :
デフォルトの名無しさん :2006/07/12(水) 03:00:24
おk、把握した
なつかしいな ->演算子 Cやってた頃よく使ったなぁ・・・
>>631 >
>>630 > そうですか。としか言いようがないが。
> ソースか実行ファイルうp
返事遅れましてすいませぬ。
ソースですが、内容を以下に簡単に書きますと、
@Form上にLabel生成(サイズ、色等以外のプロパティはほぼデフォルト)
※InitializeComponentsで。
AFormLoadイベント時に、Labelのtextプロパティに外字をコードで設定
といったところです。他のLabelコントロールと違うのはAの処理くらいで、
それ以外では特に操作・描画は行っていません。。。
構造体に関する質問です。 public struct ST { int Val } public class TestApp { public static void Main() { ST s; s.Val = 1; // 代入 object o = s; // --- (A) // 関数の引数 object として渡す Func(s); } public static void Func(object o) { // -- (B) } } 上記 (A) で構造体 ST の実態 s を object の参照 o に代入した場合に BOX化というのが行われるとあるのですが、objectの参照に何が入るのかがわかりません。 構造体 ST をラップした無名のクラスのインスタンスとかが生成されるのでしょうか? また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか?
何と言われてもオブジェクトはオブジェクトだよ。ボクシングされた。 ローカルスコープで宣言された値型は値がスタックという領域に取られる。 参照型は参照がスタックに、値はヒープに取られる。 ボクシングされると値のコピーがヒープに作られ、その参照がスタックに残る。 アンボクシングされるとヒープからスタックに値が再びコピーされる。 > また、上記 (B) の個所で Main の構造体の実態 s は変更不可なのでしょうか? 無理だね。 やりたきゃ ref/out を使うんだが、まあそう言う場合大抵は構造体を使うべきところじゃない場面だ。
>>655 よくわかりました。ありがとうございます。
>>654 の場合 (A) が実行されるとスタック上の s と o が参照するヒープ上のインスタンスが存在して
これらは、まったくの別物って考えなんですね。
逆に、(A) の後に
ST s2 = (ST)o;
を実行した場合、スタック上に値 s2 が確保されて o が参照するヒープ上のインスタンスの
内容をコピーするということになるんですかね?
しかし、値のコピーをヒープに作って、その参照を保持なんて器用なことをしているとは・・・
C#・・・あなどれん・・・
漏れ、構造体って最初の頃は使ってたけど、 今は全然使わなくなったな。 構造体でできることはすべてクラスでできるし、 さいしょは構造体として設計しても 結局、「クラスにしときゃよかった」ってことになる ことが多くて、今じゃさいしょからクラスにしている。
659 :
デフォルトの名無しさん :2006/07/13(木) 09:07:14
Cのときしか使ってない
660 :
デフォルトの名無しさん :2006/07/13(木) 09:13:08
>>658 レベルが上がってくると最適化で必要になる。
漏れはあえて区別してる orz
俺が低レベルだとーぷんすかぽんぽんっ!
萌えた
俺は変数3つぐらいの構造体をよく使うな
ベクトルとかは構造体にしてる
666 :
658 :2006/07/13(木) 11:19:00
その最適化でどれだけスピード上がるのかと。その部分案マネージにしたほうが委員ジャマイカ?
結構変わるぜよ
669 :
デフォルトの名無しさん :2006/07/13(木) 11:47:30
>>667 レベルが上がってくると高速化以外の最適化も必要になる。
メモリ?
>>667 stringを連結しまくるのじゃなくてStringBuilder使うとかなり速くなるだろ。
スタックに積まれるのも重要ではあるんだが配列時のほうがクリティカル
になりやすくこっちのが重要。
意味的には既定動作がコピーというのは値として扱うのに向く。
そしてジェネリックじゃないコレクションに巨大な構造体を大量に… なんてのがあった。 高速化のためだそうだw
>>671 あまりそういうところでクリティカルになったことなかったけれど今度試してみるわー
メンバ変数の数というか、トータルバイト数が4とか8以下の物で、
仮想関数絶対使わない確証あるときだけ構造体にしてる。
他はクラス。
>>672 速度比較検証でもしてやったらいいんじゃないか?
ジェネリック使ったほうが速いよね・・・
>>672 具体的に何をしてるかわからないとコメント出来ないね。
>>675 えっと、でっかい構造体 HugeStruct とかがあったとして、
HugeStruct[] a = new HugeStruct[N];
a[0] = new HugeStruct();
HugeStruct b = a[0];
だといちいちでっかいデータのコピーがあって糞重たいはず。
要素として object 型を取るような非ジェネリックコレクション(例えば System.Collections.ArrayList) 使う場合、
ArrayList a = new ArrayList();
a.Add(new HugeStruct());
a[0] = new HugeStruct();
HugeStruct b = (HugeStruct)a[0];
だと、いちいち boxing, unboxing、キャストが必要だから、その分遅い。
ジェネリックコレクション使えば、boxing, unboxing、キャストが不要な分だけは早くなる。
あっ、
>>677 の最後の行、
ジェネリックコレクションでも boxing, unboxing はなくならないか。
なくなるよ。
ジェネリックコレクションって内部でキャストしてるんじゃないの?
>>679 じゃあ、糞でかい構造体に対して、ジェネリックな
ArrayList<HugeStruct> とか使うと非ジェネリック ArrayList 使うよりやばい?
コレクション自体をCloneする場合以外は別にboxingなんてないほうがいいに決まってるだろ
683 :
デフォルトの名無しさん :2006/07/13(木) 17:05:19
ブラウザでリンク先が指定されているボタン等を、自分のアプリにドロップされた時に
そのリンクの文字列(例えば "
http://2ch.net ")を取得したいんですが、
どうすればいいんでしょうか。
>>680 キャストしないですむようにコードを生成するんだよ。
>>681 頻繁にソートと化するのなら関係あるかもしれんね。試したことナイから知らん。
まずボタンをドロップどうやってするのかとこ一時間
688 :
683 :2006/07/13(木) 17:36:50
そんなにおかしな日本語だったかなぁw リンク先が指定されているボタン等を、webブラウザ上からから自分のアプリに ドラッグ&ドロップされた時に ・・・ ということでお願いします
689 :
デフォルトの名無しさん :2006/07/13(木) 17:37:19
単純に、値の意味を持たせたい時に構造体にすると思うが。
>>680 >>681 調べてみたらジェネリック用にILを拡張してるようで、
ILレベルで<T>のまま情報を保持しててJITで型ごとに別のネイティブコードを生成してるようだ。
確かに馬鹿でかいValueTypeだと非ジェネリックコレクションよりやばいかも知れない。
マニュアルのこの記述には従ったほうがいいかもしれんね。
>struct 型は、通常、四角形の座標や在庫品目の特性など、関連のある変数の小さなグループをカプセル化するために使用します。
692 :
691 :2006/07/13(木) 19:34:52
文脈を間違えた 馬鹿でかい値型だと遅くなるよ、当たり前だけど
屏風の虎を捕まえろって言われたときに、 それではまず虎を屏風から追い出してください、って言うのと似てるね
,′ l ファイル名を日付順で取得する方法を ', 教えておくれよ。にょろ? 〉 l _ノ \ ___ノ` ── ′ {/ ______ _.:.:´:.:.:.:.:.:.:.:.:.:.:.:\ /.:/.:/ ヽ:.:.:i:.:.:.:.:.:.ヽ {:.:/:./ l:.:.j:.:.:.:.:.:.:. ∨!/ ⌒ |:./:.:|:.:.:.:.: |′ ● jイ:.:.:.|__:.:.: |! r‐‐v (_) |:.:.:.| }:.:. ハヽ ノ |:.:.:.|ノ:.:.: (` = -r-rム:.:.:|:.:.:.:.: ト、 | / | |:.:.∧:.:.:.: |:.:.:T7_/_,j .|:./ ヽ:.:.
>>693 ん?「ボタン」がわからないのか?それとも「ドロップ」がわからない?
>>695 なんのためにDateTime構造体に<演算子や>演算子があると思ってるのよ
プンプン
>>696 どっちも単体ではよく分かるんだが、組み合わせると途端に難解になるな
>>698 比較演算以前に DateTime は IComparable だから……
702 :
デフォルトの名無しさん :2006/07/14(金) 00:46:27
MacみたいなButton,Radioボタンコントロール知りませんか? 有料でも可っす
703 :
デフォルトの名無しさん :2006/07/14(金) 08:22:45
UseControlから自分で作れ
Mac使えば
Mac風なVisualStyle使えば
Vista使えば
Manko使えば
709 :
デフォルトの名無しさん :2006/07/14(金) 18:35:41
StringBuilderクラスについての質問です。 >連結する String オブジェクトの数が決まっている場合は、String クラ >スを使用した方が効率的です。この場合、個々の連結演算は、コンパ >イラによって 1 つの演算に結合されます。 MSDNによると、上記のようにStringクラスが効率的とあるのですが Stringオブジェクトの個数によって、Stringクラスを使用するか判断する 点がわかりません。 個人的には、連結文字列がバッファ容量のInt16に対して多いかどうかで 使用を判断するように思えるのですが。 教えてください。
コンパイル時に、連結する String オブジェクトの数が静的に定まる場合という意味だと思う
711 :
デフォルトの名無しさん :2006/07/14(金) 19:00:12
>>710 レスありがとう御座います。
もう少し考えてみます。
ILを見てみると文字列の結合にSystem.String#Concat 使ってる。こっちのほうが効率がいいのかな。 string a = "aaaaa" + "bbbbb" + c + "ddddd" + "eeeee" + c; だとこんな風に展開されてる。 string a = System.String#Concat("aaaaabbbbb", c, "dddddeeeeee", c);
>>712 Javaと同じでこうゆう処理をやってるのかと思ってた。
string a = new System.Text.StringBuilder("aaaabbbb").Append(c).Append("ddddeeee").Append(c).ToString();
ループで大量の文字列を結合するのでなければコンパイル時の最適化がきくから StringBuilderよりstringの結合のほうが効率いいよ
>>712-713 超予測だけど、string#Concatは一気に引数を渡すから必要なLengthが分かるけど、StringBuilderは初期値で固定されてしまうという点で高速化に繋がる予感
string str = "123456789012345678901234567890"; for (int i=0; i<100000; i++) { /* パターン1 */string s = new System.Text.StringBuilder().Append(str).Append(i).Append(str).Append(i).Append(str).ToString(); /* パターン2 */string s = string.Concat(str, i, str, i, str); } 1 : 453ms 2 : 297ms
>>717 毎周newするのは不利なんじゃなかろうかと。
StringBuilder の場合でも ToString で string を new してるだろ
StringBuilder 使う時はインスタンス作成時にキャパシティ明示するのも重要だぜ。 特に717みたいなパターンだと。
>>717 は例としてのコードが不適切
StringBuilderはループに入る前に外側でnewするべきだし
ToStringは不要
723 :
デフォルトの名無しさん :2006/07/15(土) 08:47:46
じゃ、やってみてよ
暗黙的キャストで ToString を呼んでいるだろうから ToString があろうがなかろうが変わらんだろ
そもそもキャストできたっけ?
VBならそうだがC#は暗黙のキャストは無かったはずでstringに変換するにはToStringが必要。
ループの外でStringBuilderのインスタンスを作ればstring#Concatと同等以上になるのは確かだが、
>>717 は測定可能なようにループを使ってるだけで例とし適切である。
もし、ループの外でStringBuilderのインスタンスを作るのを基準としてstring#Concatを比較するなら
object [] buf = new object[400000];
buf[0] = str;
buf[1] = 0
:
buf[399998] = str;
buf[399999] = 399999;
string s = string.Concat(buf);
と比較しなければならない。
てか不適切だから。
>>722 StringBuilderやConcat()の連結速度を計るなら確かにそうだが、現実的に100000個ものstringやintなどを連結する機会はある?
717のように、だいたい5個、多くて十数個くらい連結するのが普通だと思うのだが。
ボタンをドラッグしたいんだけど
730 :
717 :2006/07/15(土) 11:09:36
暇だし、せっかくだからいろいろ条件を変えて計測してみたけども、スレに書き込むには長すぎるし、こういうのを貼る良い場所ない?
731 :
デフォルトの名無しさん :2006/07/15(土) 11:39:29
WindowsFormのComboBox。 矢印ボタン押すと普通は文字列の候補が出てきますが これを例えば(枠なしの)カラー選択ダイアログなどを出したいのですがどうすればよいでしょう? どっかでMSのサンプル見たのですがご存知ないでしょうか
>>730 無料のWikiなりBlogなりホームページなりにアカウント取ってリンク張ればいいじゃない
>>731 DrawModeをOwnerDrawVariable等にして、
DropDownイベントでダイアログをオープンしたらいいんじゃね?
734 :
デフォルトの名無しさん :2006/07/15(土) 12:35:14
>>731 だったらComboBoxでなくただのボタンでいいんじゃないか?(・∀・)
735 :
デフォルトの名無しさん :2006/07/15(土) 13:34:29
MSのサンプルで 型による処理の振り分けで Dictionary<Type, object>を使えばいい(と思う)のに、わざわざDictionary<string, object>にして 辞書からinstance.GetType().ToString()のようにキーを生成してアクセスしてるところがあるんですけど 型でリファレンスを持つと何かマズイことでもあるのでしょうか?
736 :
デフォルトの名無しさん :2006/07/15(土) 14:04:50
VS2005のmenuStripをMDIフォームに使うと 子フォームに水色の帯が残るんだけど バグ?
(・∀・)←これって流行ってるの?
738 :
デフォルトの名無しさん :2006/07/15(土) 14:29:00
シラネ(´・Ω・`)
>>741 おつかれ〜
ちなみに、StringBufferを再利用するときはこれでいいですよ。
stringBuilder.Length = 0
>>735 MSのサンプルはあくまでさらっと参考にするくらいの方がいいかも…
おいおいな感じのサンプルも多いから。
>>740 サンクス
オブジェクトのGetTypeが違う参照を返すことでもあるのかと思ったらそうでもなかったし、
なんでstringにしてたんだろう。
連結する個数が分かっているならString#Concat、つまり+の連結で十分ということか。 しかしint to stringは激重だな…
string#concatは引数4つまではそのままオーバーロードがあるけど、 string#concat(string) string#concat(string, string) string#concat(string, string, string) string#concat(string, string, string, string) 5つ以上になると配列を作ってしまう。4つまでならConcat推奨。 string#concat(params string[] values)
ベンチを見るとObjectの配列を作る方が(引数を5つ並べるより)かなり速いようだけど…
ベンチにコードが無いからなんともいえないけど、次の二つは同じILを生成してて結果も同じ。 string s = string.Concat("aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"); string s = string.Concat(new string [] {"aaaaa", "bbbbb", "ccccc", "ddddd", "eeeee"}); ところでベンチのWIKIに次の記述があるが誤記だよな? string.Concat(str + i + str + i + str);
ObjRefを自分でシリアライズ、デシリアライズしたら 勝手に透過プロキシに変換までされたんだけど、そういうもん? 透過プロキシへの変換は手でやるもんだと思ってたんだけど。
>>742 サンクス。速くなった。
>>747-749 StringBuilder消すのを忘れていた…
ちゃんと同じバイナリが生成されて同じ速度になった。
+はどう見ても写し間違いです。本当にありがとうございました。
整数と文字列が+演算子で結べることを俺は知らなかったぞ!!! 今まで何回ToString()書くのめんどくせえなあと思ったことか・・・
>>752 できたとしてもToString()ちゃんと書いた方がいいですよ。
VS だったら .T ぐらいまで打てばインテリセンスがよろしくやってくれるでしょ。
>>754 >できたとしてもToString()ちゃんと書いた方がいいですよ。
理由は?何のためにToString()はObjectにあるんだ?
1 + "たす" + 1 + " は" + (1 + 1) + "です" こういうとき紛らわしいからじゃないの?
758 :
デフォルトの名無しさん :2006/07/16(日) 12:02:28
変なコメントが入ってるだけで可読性が下がるとか言うのにね
>>758 可読性を下げるような妙なコメント書くからだと思うが。
文字列連結はD言語やBASICみたいに別の記号のほうがいいなあ
いちいちToString()したら無駄なstring生成しまくりじゃん こういう時こそString.ConcatやStringBufferを使うべきじゃないの
>>761 一行のメッセージにそんなもん持ち出す方が面倒だ。
StringBufferはStringBuilderの間違い。
生成しまくりというのはint2stringのことね。念のため。
>>760 同意
しかしPerlみたいにいまさら変更されるのも困るなあ
o(n)
もはや余ってる演算子が…
C#使ってるような奴が可読性とか言っちゃってるよ(プ
(ププッ
768 :
デフォルトの名無しさん :2006/07/16(日) 15:10:23
string s1 = s2; って、s1とs2に同じポインタが入るのじゃないのか?
>>765 ->とか>>とかasとかinおとかもOKなんだからさと。
>>768 文字列の場合はコピーじゃないですか?なんとなく。
>>771 コピーと追記じゃ訳が違うのでどっちにしろStringBuilderは必須。
VB6とそれ以前がそんな構造だが、StringBuilderなぞないよ?
CSV形式に成形するメソッドなんか見ると 全レコード文字列としてくっつけて返すやつなんかある。 ああいうのは連結のしかたで大きく負荷が変わるが、 その前にその仕様変えろといいたくなる。
>>753 string#Formatのベンチマークも取りました
# 盲点だった
>>775 じゃあどうすればいいの?
interface ICSV{public string this[col][row];}とか?
Builderを引数とか、Stream形式とか。一行に対してIEnumerableとかじゃない?
用途の柔軟性から行けばTextWriterあたりがいいかな。 Streamのオーバーロードもあってもいいか。 ま、まず9割くらいはTextWriterでいい気がする。
780 :
デフォルトの名無しさん :2006/07/16(日) 20:28:28
char型の配列で終端に\0でも入れて、 自分で文字列を扱えば、全て解決。
??
Regex.Replace(line, "(", "("); のように半角"("を全角に置換えしたいのですが エラーがでてしまいます。うまく動作させるにはどのように記述すれば よいでしょうか?
エラーが出るキタ━━━━━━(゚∀゚)━━━━━━!!!!
(をエスケープしとけ
785 :
782 :2006/07/16(日) 22:09:06
>>784 ちゃんと動作しました。ありがとうございました。
正規表現の意味ねぇ━━━━(´・ω・`)━━━━ッ!!
確かに言われてみればStringクラスで事足りるな
ブラウザの「リンクバー」みたいなのはどういうコントロールで 実現できるのでしょうか?
Visul C# EEで、デザイナいじるたびに DataGridViewのカラムの順番が勝手に変わるんですが なんとかなりませんかね?
790 :
デフォルトの名無しさん :2006/07/17(月) 03:01:48
>>771 ソースある?俺は普通にs2と同じポインタがs1に入ると思ってたんだが。
ポインタじゃなくて参照な。 771 も参照の代入であると言ってるようだが?
リファレンスじゃないの?
>>792 リファレンスは日本語に直したら参照だろ?
単語すらわからないんだったらプログラムやめたほうがいいんじゃね?
794 :
デフォルトの名無しさん :2006/07/17(月) 10:09:31
正直どうでもいい
>>793 そんなつまらない所であげ足取るくらいなら人間辞めた方がいいんじゃね?
100MBぐらいの文字列で試せばすぐ分かるだろ
つまらないところって
>>792 の言ってることの全否定なんだが。
D♭
100MBの文字列を確保しようとしたらOverflowExceptionが出たよママン
801 :
デフォルトの名無しさん :2006/07/17(月) 11:44:19
嘘つけ
いや、reference を参照と訳すのは C# に限らず特に所謂 IT 系で広く使われてるが……。
>>804 2番目に参照とあるのに何をもって無理やりといってるのかと
>>806 「参照すること」
参照すると言う動詞を無理矢理名詞化してるんですな。
訳したらなるだろぼけ!とまで言えるほど大きな顔が出来る単語でもなし。
ごめん何がいいたいのかわからない
参照(すること) 何のための括弧だよ
ワロリン
英語を訳すときに大事なのは厳密な解読じゃなくてフィーリングだぞ
そもそも外国の言葉が自国の言葉に一対一対応するわけでもないし自国の言葉すら各人の対応する概念が一致してるとは必ずしも言いがたい。
>>814 極論とか論理の飛躍とか好きじゃないです。
いったい何が言いたいんだ。
ネタがないからくだらない言い合いしてるだけだ
C#で有名な曲っていうと、ヴィヴァルディの「四季」より「春」 ってのがあるな。
あらかじめ100MBの文字列 st1 を用意しておいて、 st2 = st1; を何回やってもメモリ使用量は増えない。 しかし、 st2 = st1; st2 += "s"; だと当然メモリ使用量は増える。 あと、100MBの文字列を作るときにStringBuilder使ったんだけど、 st1 = sb.ToString(); だとメモリ使用量は増えないのね(sbはStringBuilder)
>>819 >だと当然メモリ使用量は増える。
気になるなら手動でGCすればいいですよー。
あほす
>>820 お前は何を言ってるんだ?日本語が読めないのか
お前は、何を、言ってるんだ?、日本語が、読めないのか、
百回死ね
まあC#しか知らない糞ガキどもだから
どうやったら100回死ねるの?
知らんがな(´・ω・`)
829 :
デフォルトの名無しさん :2006/07/17(月) 18:48:28
とりあえず1回から試してみるといいよ
D♭っていうセンスは好き。
Cωはどうなった?
Cω→WinFX XAML→.Net3.0→あぼーん
CωはC#3.0に取り込まれる。 元々世に出す予定はない。
Cちんこ
835 :
デフォルトの名無しさん :2006/07/17(月) 21:43:43
ふぐりだろ
すほうれいこだよ
このスレレベル低すぎw
だからVB.Netを使えとあれほど・・・
つうか、きくならVSUGかgetDotNet、その他メーリングリストのほうがまし。
Cωの次はCυ(しーいぷしろん) これでちんことまんこが完成!
C z → C z zwei でいいじゃん
初心者スレの方がよっぽどレベル高いな
マ板にはめずらしいVIPクオリティーを感じるスレ
ここは相談室。相談しない方にはお引き取りねがいたい
愛は死にますか?
もちろんです
触り始めたところなんだけど、もしかしてC#ってconst参照渡しとかconst関数とか存在しない?
C# というか .NET に存在しない
マジか。困ったな。死ねばいいのに。
.NETでC++のconst同様のことをするならget専用のinterfaceを公開するって感じになる? でも値の変更を許可しないことを言語がサポートしてくれるわけじゃないからな…
>>850 そりゃ言語の範疇だろう。.netかんけいない。
>>853 C#はCILを生成するのでCIL上に存在しない=.NETに存在しないって
表現は正しい。
まぁなんだ、実装見せたくないのと参照がメンバの中心になるんで
意味がないのと、リフレクションにはまったく無力だし、そもそも
delegateやevent先なんて追跡可能じゃねーよなぁとか考えると
あんまりいい実装思いつかないし、仕方ないと思うよ
>>854 いや.NET上でなくても、言語上でconstの仕様をコンパイル上でチェックすることは可能でしょう。またそれで十分かと。
アンマネージはどうするの?
せめてCLSの範囲内でないと無理がある。
>>855 だからな、constを保証するためには自身のメンバの型のconst保証したメタデータの
マークがなけりゃできないだろ。CILのメタデータ表現としてそんなものないのに
C#コンパイラがどうやって検証するんだよ。
中身みて分析でもするか?コンパイルにどれだけかかるんだろうな?
外部型情報使用したらconst禁止にするか?使える場面まったくなくなるな。
>>858 んじゃ、C++で同様のことどうやってると思ってるんだ?
最初はconst無くて不便と思ったがだんだんどうでもよくなってきた。
正直、C++のconstは俺には複雑すぎて使いこなせてない。 const char * くらいだなC++で使ってるのは。C#ではstringがimmutableだから問題ないしな。
readonlyマンセー
>>859 ネイティブC++に関して言えば型情報にconstがあるからだ
「CILにそういう型情報がないからC#が簡単にどうこうできる問題でも
ない」って言っているんだが理解しているか?
この制限は言語に依存せず、実際同じCILの型情報を使うC++/CLIの
マネージ型ではconstは使えない。VB.NETもな。
何で.NETにないのかといわれればこれは俺の考えだが、C++とは激しく
状況が異なるからだ。とても実現可能に見えない。
わかんないんです><
>>863 あーconstめんばへんすうはむりね。
それほとんど使わないから気にしてなかったすまん祖。
const メンバ変数なんて使った事ない気がするなあ。 static const メンバ定数しか使わない。
>ネイティブC++に関して言えば型情報にconstがあるからだ じゃ型情報無効にしたらconstつかえないのか? 単にヘッダ見てるだけじゃないか?
>>867 ヘッダに型情報が書いてあるのがC++なのに型情報無効にして
ヘッダ参照って何?
869 :
デフォルトの名無しさん :2006/07/18(火) 19:05:51
.NETは関係なし言語側(C#)の問題だ、と言ってるヤツの根拠が全くなく思いつきだけだな
他モジュールの面罵constを実現できないだけで、ほかのconstは言語側で実現できるでしょ。
C#って、TestClass.Item[i]みたいな感じで使える配列プロパティみたいなものって インデクサを使ったTestClass[i]っていう形式の1つしか作れないの?
>>872 [ ] のオーバーロードは不可で、インデックサでのみ使用可能。( )で代用するか、
コレクションやインデックサを持ったクラスを作って
それを返すプロパティを設ければいいんじゃない。
>>872 いわゆる「名前付きインデクサ」って奴ね。
IL 的には名前付きインデクサも作れるみたいだけど、C# では無理。
多分、コレクションを返すプロパティと区別が付かないのが嫌だったんだと思う。
>>873 の言うように、インデクサを実装したクラスを1個余計に作って、
それを返すプロパティを作るのが C# 的には正しい。
>>871 >他モジュールの面罵constを実現できないだけ
これがconst機構上致命的なんだが…
これがないと、それこそconst参照渡されても何もできない(getterにさえ
アクセスできない)
class Foo { private: int x; public : int getX() /* const */ { return x; } };
void Bar(const Foo& value) {
int x = value.getX(); //コンパイルエラー
}
876 :
デフォルトの名無しさん :2006/07/18(火) 20:17:08
今日のテーマは『C#がこの先生きのこるには』です。
877 :
デフォルトの名無しさん :2006/07/18(火) 20:18:37
キノコヾ( ゚д゚)ノ″キノコ
どうせC#は日曜プログラマ限定でしょ
>>876 _,,,......,,__
/_~ ,,...:::_::;; ~"'ヽ
(,, '"ヾヽ i|i //^''ヽ,,)
^ :'⌒i i⌒"
| ( ゚Д゚) <C♯きのこる!
|(ノ |つ
|.先生.|
ヽ _ノ
U"U
>>873-874 ありがとう。インデクサを持ったプロパティを別に作るのは思い浮かばなかった。
その方向でいくことにするよ
881 :
にゃんぽん :2006/07/18(火) 23:40:04
こんにちは。 どうか、Windowのリサイズについてご教授ください。 画像を表示するプログラムを作成しています。 画面をマウスドラッグでサイズ変更をしているとき、 マウス移動の間、図形を連続的に再描画(縦横比を一定)しようとしています。 FormPaint内でClientWidth とClientheightの設定をしてもうまくいきません。 いい方法がありましたらご教授願います。
>>875 属性で拡張すれば言語レベルで対応できると思う。
C#にない理由は実装が手間なわりに効果が薄いとみなされたためだろう。
同じ理由で多重継承やC++タイプのFriendも削除されたり単純化されている。
多重継承の実装の面倒くささは桁違いだろ。 ついでに言うとfriendはinternalが相当すると言えるかもしれない。
884 :
デフォルトの名無しさん :2006/07/19(水) 00:14:20
簡単につれるね
>>882 その対応だと使えるクラスと使えないクラスができてしまって激しく
気持ち悪いんだが。
ついでにいうと、動的機能を使用することが常態になっている.NETで
静的に閉じたconstなんか採用したら抜け道だらけで収拾がつかなくなる。
System.ComponentModelが動的(いわゆるリフレクション)を基礎として
構築されていることは分かっているよね?
日曜に仕事してるのか
なんかもうC#が気になりまくりだけど、移行できないJava厨が多くて嫌だね Javaなんて、あと3年で消えるのに
世界観の狭い人だね
3年で消えるんならもう終焉気味じゃないとおかしいぞ
J#に謝れ
892 :
デフォルトの名無しさん :2006/07/19(水) 03:28:17
おまえら! System.ComponentModelが動的(いわゆるリフレクション)を基礎として構築されていることは分かっているよね?
つーかComponentModelが何なのか今市よく分かってない
>>886 >その対応だと使えるクラスと使えないクラスができてしまって激しく
>気持ち悪いんだが。
それ以前の問題としてintすら外部アセンブリなんだけどね!
最低限CTSに手を加えないで、C#だけでどんなクラスが作れるのか
おじさん知りたいな!
おじさん乙
おじさん萌え
使用済み男根
ComponentModel名前空間は自分から使ったことないな
で?
ComponentModelってCOMがらみ?
ちがう
IContainerくらいは使うでしょ
Javaって死滅しちゃうのぉ?
おれが救ってやる
JavaもC#も死んでVBとC++だけが残る
C#は、生きてるというレベルにすらまだなってない
生きろ
結局VB.NETのほうが生き残るんですね、VBの書き方苦手なんだよな・・・慣れの問題かもしれんが
釣れますか?
C#でもVB.NETでもどっちでもいいじゃん、何をそんなに気にしてんの? 漏れはそのときの気分によって使い分けてるよ。開発上どっちかの言語に 有利なアプリケーションなんて別に無いしな。
ネタにマジレス
914 :
デフォルトの名無しさん :2006/07/19(水) 21:59:46
夏休みのためかすっかり雑談スレになってるが、ご相談の方も遠慮なくどうぞ。
C#でテンプレートつけてくれればあまり文句ないんだが・・・
>>915 Genericsで不満なとこあるんか?
917 :
デフォルトの名無しさん :2006/07/19(水) 23:18:14
タイプパラメータを継承元とできない点 コンストラクタやenum等の制約がかけれない点
型を指定しないとメソッド呼べないところ。 C++みたいになんでもありありにしてほしい。
ILとの兼ね合いからそこまでは難しいと思う。 それよりもやっぱりtypedefが欲しい。
だったらC++をやれと… 安全性と自由度はトレードオフだっつーのよ
readonlyのローカル変数が使えないのは何でだぜ?
>>920 行為売れすする人って例外なく頭悪いよね
変換くらいちゃんとしろ
>>918 あれをやろうと思ったら、C++ みたいに、
ジェネリッククラスを実体化するたびに別のクラスのコードが生成されて、
コンパイル結果が爆発的に肥大化するから駄目なんじゃ。
>>920 安全性だけじゃなくて、↑みたいな効率の問題も大きいよ。
>>924 でもそのおかげで総称性にかなり制限が加わってる。
しかしC#は硬くしたおかげで、推論しても大丈夫な世界を構築しているから 難しいところだよ。本来ならこっちのほうが正統な発展な希ガス。 明示を何とかせんと応用が利かんぞっつーのは確かにあったわけで。 whereの表現力が低いっつーのとinterfaceの表現力が低いっつーのは (そしてそれが現状の不満につながっているのは)認めるところだが、 これは別の解決策があるだろうと思うし。C++の方法は何か違う。
.NET1.1ネイティブなJPEG2000のライブラリを教えてください。 既に動いているノータッチデプロイメントのシステムなのですが、 「JPEG->JPEG2000によせ」という要求がきて困ってます。
ClickOnce にしちゃえば
.net別の名前にしてくれないかな・・・・ 検索しづらくてたまらん・・・orz
あるあるw
932 :
デフォルトの名無しさん :2006/07/20(木) 13:56:43
お前がどこで躓いているかが理解できない
934 :
932 :2006/07/20(木) 14:08:30
ありがとうございます。 System.Windows.Forms.ComboBox' に 'AutoCompleteMode' の定義がありません。 と出てしまうので、1.1じゃ無理なのかと思ったのですが…
>>932 上段のurlの対応バージョンがうそっぽいな
MSDNでComboBox.AutoCompleteSource をみると次のように赤字で表示される。
>メモ : このプロパティは、.NET Framework version 2.0 で新しく追加されたものです。
936 :
932 :2006/07/20(木) 14:22:02
>>935 ですよね。
どうやって実現すればいいでしょうか。
そんぐらい自分で実装したまへよ
>>936 サポートしてないのなら対応は限られるだろう。
1.あきらめる
2.VS2005にかえる
3.KeyPressイベントあたりに自分でたくさんコードを書く
4.同等の機能を持った市販かネットで入手可能なコントロールを探す(あるかどうかは知らん)
939 :
932 :2006/07/20(木) 14:34:03
>>937 >>938 そうですね。自分でたくさんコードを書いてがんばろうと思います。
ありがとうございました。
940 :
デフォルトの名無しさん :2006/07/20(木) 15:20:22
すいません。誰かこの質問に答えられるひといますか? C#のFormをコピーしてwordなどの文章に貼り付けることは可能ですか?
>>940 PrintScreenで好きなだけどうぞ
942 :
デフォルトの名無しさん :2006/07/20(木) 15:26:57
>>940 ありがとうございます。
PrintScreenの使い方がよくわからないのですが、
紹介しているサイトとかご存じですか!?
944 :
デフォルトの名無しさん :2006/07/20(木) 15:57:47
誰か、PrintScreenの使い方教えてください。
Windowsキーを押してキーボードのUを連打
Windows+R regedit Enter どれか好きなのを右クリック-削除
947 :
デフォルトの名無しさん :2006/07/20(木) 17:10:57
VC#2005EEでManagedDirectXをいじってるんですが FormのOnSizeChangedで勝手にDevice.Reset()を呼び出すのが激しくウザいです。 なんとか勝手に呼び出すのをやめさせる方法はないでしょうか?
>>940 自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
言葉が足りないからです。
C#のFormをコピーって意味が分かりません。
スクリーンショットを貼り付けたいのですか?
それを動的にプログラムで実現したいのですか?
Form上のテキストを貼り付けたいんですか?
wordのドキュメント内部でFormを実現したいのですか?
それとももっと想像を絶するようなことですか?
普通に推測できますが。
950 :
デフォルトの名無しさん :2006/07/20(木) 19:05:12
お前はエスパーだからな
おそらく「もっと想像を絶するようなこと」だな
ム板に来る前にパソコン初心者スレ行くべきだな
推測できた内容書いてくれよエスパー
PrintScreenすら知らないヤツって・・・ 知らなくてもググるとかしろよ
955 :
デフォルトの名無しさん :2006/07/20(木) 19:56:32
>>928 クライアントに.NET1.1で動く別システムが入っている為、
「NTDが動かなくなるので.NET2.0は使うな」と言われており
ClickOnceは使えません。
>>955 .NET 1.0 1.1 2.0 はSxSで混在可能なのだが、よほど妙な作り方をしてるのだろうか。
>>948 >自分の言いたいことが相手に伝わらなくて社会生活で苦労したりしませんか?
>言葉が足りないからです。
それは多分あなたのことです。
分かっているのなら、多分解決出来ています。
何故なら、調べるにしても簡単に調べられるからです。
分からないから的確なキーワードも分からず、調べるにも、なかなかヒットしません。
何が分からないのかを適切に聞き出せないなら、同じように社会生活で苦労します。
それは、言葉が足らないからです。
プログラム言語学ぶ前に日本語学んで来い
推測できた内容書いてくれよエスパー
>>959 は出来るだけ死体が見つからない方法を考え、2日後に自殺する。
誤差2ms以内でスレッドを管理したいのですが Thread.Sleepが20msほど帰ってきやがらないので辟易しています。 C++/Win32APIならtimeBeginPeriod(1)で環境によっては Sleep(1)が1msで帰ってくるようになりますが、Thread.Sleepは 独自処理らしくwinmm.dllをインポートしてtimeBeginPeriod(1)しても 相変わらず20msほど処理が戻ってきません。 SpinWaitは半端な知識で使うのは危なそうだし何か良い方法はないでしょうか。
当たり前 Windows 自体そんな精度出せない
>>962 いや…C++/Win32APIで書いたものは精度出てるんですけど…
timeBeginPeriod(1)をしてsleepするアンマネージなDLLを用意するしかないんじゃない?よくわからんけど
MM系のtimeBeginPeriodはSleepにも影響するの?
で、推測できた内容はまだか?
>>966 質問の回答が得られないからって自演で煽ってるヤツなんかと仲良くしちゃいけませんっ
>>948 相手の言っていることがわからなくて社会生活で苦労したりしませんか?
IQが足りないからです。
で、推測できた内容はまだか?
何がそんなに悔しかったんだろう?
型を示す文字列(例、"System.Windows.Forms.Form","System.Drawing.Font")から その型のインスタンスを作成する方法ってありますでしょうか?
そこの説明だめだめだからやめた方がいい。
ま、System.Windows.Forms.Form だけでは型を示すには不足だな。
文字列からソースを作ってビルドして動的にリンク
976 :
971 :2006/07/21(金) 07:05:42
>>972-974 Assembly が取得できれば CreateInstance できるということですね。
その方向で、作ってみます。
ありがとうございました。
>>975 ちょっと方向性が違うのでその方向はミリ
977 :
デフォルトの名無しさん :2006/07/21(金) 08:56:59
質問です。 テキストのログファイルを作成するに当たって、ファイルを回帰的に使用したいと 考えています。 指定行にテキストを書き込む方法(ヒント)を教えてください。
979 :
デフォルトの名無しさん :2006/07/21(金) 09:07:14
>>978 すいません、できればクラスまでお願いします。
さらにできたらメソッドまで。
981 :
979 :2006/07/21(金) 09:10:39
ふらっとC#スレへ異動します
982 :
デフォルトの名無しさん :2006/07/21(金) 12:53:42
>>956 通常なら混在可能だが、NTDは2.0入れたらダメじゃなかったか?
質問失礼します。 初めて C# DirectX でソフトを作成した者です。 ソフトを作成し、開発マシンで正常に動作するのを確認しました。 が、いざ配布してみると「共通言語ランタイムデバッグサービス アプリケーションで、ハンドルできない例外が発生しました。」 という警告ダイアログが出て動作しないマシンがあると判明しました。 問題のマシンでは .Net Framework 1.1 及び、DirectX は導入済みである事を確認しております。 原因はおろか原因を特定する方法すら全く分からない状態です。 分かる方お願いします。 開発マシン WinXP Home VS2003 C# DirectX 9.0 問題のマシン WinXP Home
デバック版配布してみれば?
例外の内容次第だよなぁ NullReferenceException と FileNotFoundException じゃ全然違うし
986 :
983 :2006/07/21(金) 22:51:16
返答ありがとうございます。
>>984 渡して起動してもらったのですが、結果は同じでした。
>>985 内容ですが、
処理 ID=0x2d0(720)、スレッド ID=0x7a4(1956)
となってました。
Exception云々ではなく、それ以前の起動時にこけてる印象を受けます。
>>983 DirectXは機種によって動作しない場合があるね。
ハンドルされてない冷害を処理するハンドラ登録できたと思うのでそこでみてみそ。 書き方は忘れた。ぐぐれ
C丼
銀座 天國 A丼〔海老2尾・きす・イカかき揚・野菜2点〕. 1470円. B丼〔海老2尾・イカかき揚・ 穴子・野菜2点〕. 2100円. C丼〔海老2尾・きす・文甲イカ・大海老・野菜2点〕. 2835円
C丼高級だな
Java最強!!
スレ違い
よーし このスレはJavaが頂いた C#なんて、誰も使ってないから必要無いだろ?wwwwww Java最強!!!!!!!!!!!!!!1111
?
1000?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。