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


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

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



1 名前:デフォルトの名無しさん [2008/01/11(金) 15:41:00 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

ふらっとC#,C♯,C#(初心者用) Part22
pc11.2ch.net/test/read.cgi/tech/1197802312/

152 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 00:53:30 ]
C#のことでなく.NET Frameworkのことですれ違いなんだけど、

C#で文法のことはいいとしてライブラリのことが知りたいんだけど
いい情報源教えてください。

dobon.net/
は読みました。
とりあえず
プログラミングMicrosoft .NET Framework 第2版 (マイクロソフト公式解説書) (単行本)
は買ってみようと思います、

よろしくお願いします。


153 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:15:19 ]
>>152
MSDN

154 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:33:43 ]
アンマネージドなリソースについてなんですが、やり直し等の機能でいつ解放
したらいいかわからないものが出てきた(ファイルとか)ので、ゴミ箱クラス作って
そこで一括管理しようと思ったのですが、対象となる変数の参照カウンタって
取得できないのでしょうか?
やっぱり自分で皮をかぶせるしかないですかね?

155 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:40:28 ]
何が言いたいのかよく分からんが、
LRのガーベジコレクタは参照カウント方式じゃないぞ

156 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:40:59 ]
s/LR/CLR/;

157 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 02:48:42 ]
>>155
ありゃ、そうなんですか… orz
今ざっと調べたところ、Finalize()を積んでおけばGCが勝手に実行
してくれるみたいなんですが、どうしてもDispose出来ないときは
それでいいんですかね?

158 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:03:32 ]
GC される前にランタイムが落ちるとか、結構ありそうだけどな。
ところで 「やり直し等の機能」 って何?

159 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:24:53 ]
>>157
アンマネージリソースを扱うなら、必ず適切なタイミングで
Disposeを呼ぶような設計しなきゃ駄目だよ。
細かい話が多いので割愛するけど、
ファイナライザに頼るスタイルは色々問題があるのヨ。

ぶっちゃけマネージドな世界では、例えばC++において参照カウンタ式スマートポインタで
自動化できてたリソース管理の一部は使えなくなると思っていた方が良いかと。

160 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:30:02 ]
VBの参考書で勉強しているのですが
Label1.Text = DirectCast(Me.PreviousPage.FindControl( _
"TextBox1"), TextBox).Text

をC#で書くにはどうしたらいいですか?



161 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:42:54 ]
自己解決しましたm(_ _)m

162 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 08:30:22 ]
>>158
ペイントなどに良くあるやり直し・元に戻す操作です。

>>159
やっぱり自前でDisposeしなきゃだめなんですね…
ちょっと基本設計見直してきます orz

163 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:07:03 ]
Form1とForm2を定義して
Form1内で
Form2 f2 = new Form2();
f2.ShowDialog();
でForm2を呼び出した後にf2内のbutton_Clickイベント処理内でf2の中のテキストボックスや、コンボボックスの値をForm1で取得したいのですが
どうしたらよいでしょうか?

164 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 15:56:14 ]
Form2がイベント公開してf2内のbutton_Clickイベントハンドラ内でfire
イベントデリゲート自分で定義してテキストやコンボボックスの値をEventArgsにつっこむか
またはプロパティで公開しとく

165 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:31:40 ]
fireってなんでしょうか?ぐぐってもよくわかんないです・・・

166 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 16:39:14 ]
イベントを起こす、ってことじゃね?

//Form2.cs

public event EventHandler HogeEvent;

private void button_Click( object sender, EventArgs e )
{
 if( this.HogeEvent != nul )
  this.HogeEvent( this, EventArgs.Empty ); // ← ココ
}

-------------------------------------------
//Form1.cs
...
Form2 f2 = new Form2();
f2.HogeEvent += new EventHandler( f2_HogeEvent );
...

private void f2_HogeEvent( object sender, EventArgs e )
{
 //ココが呼ばれる
}

167 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:47:13 ]
>>f2.HogeEvent += new EventHandler( f2_HogeEvent );
これは何をしているのでしょうか?
form1では
private void button_add_Click(object sender, EventArgs e)
{
Addition add = new Addition();
add.ShowDialog();
}
でform2(Addition)を呼び出し、手動で、form2内のテキストエリアやコンボボックスに入力してOKボタンを押す
そのとき、したのイベントに遷移して、このメソッド内で、form1内のデータグリッドを更新できないか?ということなんですが。
private void button_OK_Click(object sender, EventArgs e)
{


}



168 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 18:52:38 ]
(´・ω・`)しらんがな

169 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:03:28 ]
恥をしのんで質問いたします。
初めてコンソールアプリを作ろうとしているのですが、
エクスプローラーからコマンドプロンプトにディレクトリパスをD&Dで使わせようと思っています。
そのとき、長いフォルダ名を含む場合、絶対パスを表す文字列がダブルクォーテーションで囲まれてしまいます。
そのため、"入力文字列補正処理"を入れるようにしましたが、なんだかスッキリしません。
皆様どうやってやってますか?
以下にソースを書きます。宜しくお願いいたします。



170 名前:169 mailto:sage [2008/01/15(火) 19:04:04 ]
static void Main(string[] args)
{
  string[] str; //検証用変数
  string Input, Output; //フォルダパス

  Console.WriteLine("入力フォルダパスを入力して下さい");

  //入力文字列補正
  str = Console.ReadLine().Split(new char[] {'\"'});
  if (str.Length == 3) { Input = str[1]; }
  else { Input = str[0]; }

  Console.WriteLine("出力フォルダパスを入力して下さい");

  //入力文字列補正
  str = Console.ReadLine().Split(new char[] { '\"' });
  if (str.Length == 3) { Output = str[1]; }
  else { Output = str[0]; }

  if (Directory.Exists(Input) & Directory.Exists(Output))
  {
   Console.WriteLine("valid");
   Console.ReadLine();
 }
  else
  {
   Console.WriteLine("invalid");
   Console.ReadLine();
  }
}



171 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:07:37 ]
>>167
form2でセットするんじゃなくて、form2はセットさせたい項目をpublicなプロパティで返すようにする
form1でDialogResultをチェックしてform2のプロパティからセットするのが正解

172 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:07:40 ]
Trim(char[])

173 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:18:45 ]
>>167
個人で作ってるだけでプロパティ作るのが面倒くさかったら、
form2の該当の入力フィールド(textBoxとか)のModifiersをPublicにするのも手だけど

174 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:22:07 ]
>>171
丁寧にありがとうございます。
>>セットさせたい項目をpublicなプロパティで返すようにする
というのがいまいちわかりません。
ソース載せます。
//form1(Main)
public partial class Main : Form
{
public Main(){
InitializeComponent();
}

private void button_add_Click(object sender, EventArgs e) {
Addition add = new Addition();
add.ShowDialog();
}
}

//form2(Additon)
public partial class Addition : Form
{
public Addition() {
InitializeComponent();
}

private void button_OK_Click(object sender, EventArgs e) {
//MessageBox.Show(textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text);
}
}

175 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:24:50 ]
public partial class Addition : Form
{
 public string 結果 { return textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text; }
}

176 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:24:57 ]
>>173
publicにしたら、Form1.csの補完機能からform2のコントロールが見えました!
ありがとうございます!

177 名前:175 mailto:sage [2008/01/15(火) 19:25:16 ]
ミス
 public string 結果 { get { return textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text; } }

178 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 19:37:02 ]
はじめまして。

まことに簡単な質問で恐縮なのですが、DataGridViewのculomnsのプロパティで
オートインクリメントをしたい列があるのですが、どうすればよいでしょうか?

よろしくお願いいたします。

179 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:33:34 ]
>>169
な、何を言ってるのかね?

180 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 20:53:51 ]
>>169
ただファイルを開くとかくらいなら、
ダブルクォーテーションがあっても問題なかった気がするけど。



181 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 10:43:24 ]
>>169
dos窓でドロップやったことないのか?
スペース含むパス取り込むためにデフォルトで""囲みになるのが普通だよー

182 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:16:56 ]
問題あるならTrimでもすりゃいいんでは?


183 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:40:31 ]
C#でExcelを操作しようと調べているんですが、断片的な
情報しか見つける事ができませんでした。

何か参考になる本やサイトなど知っていたら紹介して貰えませんか?

184 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 12:33:03 ]
COM Excel C# でググるとか

185 名前:169 mailto:sage [2008/01/16(水) 13:21:32 ]
>>180

そうだと思ったんですが、パスを変数に格納した後にフォルダの存在確認を>>170の下の方で
行っているんですが、""つきのパスだと存在しないよって言われちゃうんですよ。

>>182
調べてみます

186 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 13:51:48 ]
つか、D&Dできるの始めて知ったぜ。いつもいちいちコピペしてた。

187 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 14:00:08 ]
Vistaでできないな、、、XPをリモートデスクトップで出してみたらこっちではD&Dできるが・・・

188 名前:デフォルトの名無しさん [2008/01/16(水) 14:38:39 ]
VS2005でC#の勉強をしています。
質問なのですが、テキストファイルに
1 200
2 356
3 1250
4 870
5 692
といったような行列があり、それをC#のプログラムで読み込み
1000以上の値を持つものだけピックアップすることはできるでしょうか。
ピックアップした後に計算もしたいので、変数にその値を代入したいのです。
よろしくお願いします。

189 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:00:03 ]
StreamReaderとかで開いて
ReadLineして
パースすればいい

190 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:01:21 ]
var hoge =
 from line in File.ReadAllLines(@"...")
 from str in line.Split(' ')
 let value = Int32.Parse(str)
 where value >= 1000
 select value;





191 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 15:05:51 ]
VS2005や言うてるやろスカタン

192 名前:169 mailto:sage [2008/01/16(水) 15:46:16 ]
>>188

StreamReader sr = new StreamReader(filepath);
List<int[]> list = new List<int[]>();
do
{
  string str = sr.ReadLine();
  if (str != "")
  {
   string[] ary = str.Split(new char[] { ' ' });
   int n1 = int.Parse(ary[0]);
   int n2 = int.Parse(ary[1]);
   if (n2 > 999)
   {
    list.Add(new int[] { n1, n2 });
    }
  }
}
while (sr.Peek() != -1);

193 名前:169 mailto:sage [2008/01/16(水) 15:51:20 ]
どうやら手動で削除するほかなさそうですね。
splitを使って面倒なことをしてましたが、
Trim(もしくはReplaceでも可)を使って少しコードがすっきりしました。
ありがとうございました。



Console.WriteLine("入力フォルダパスを入力して下さい");

Input = Console.ReadLine().Trim(new char[] { '\"' });

Console.WriteLine("出力フォルダパスを入力して下さい");

Output = Console.ReadLine().Trim(new char[] { '\"' });

if (Directory.Exists(Input) & Directory.Exists(Output))
{
  Console.WriteLine("valid");
  Console.ReadLine();
}
else
{
  Console.WriteLine("入力したフォルダパスが不正です");
  Console.ReadLine();
}



194 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:00:02 ]
オマイラそれ絶対なんか間違ってるだろwww

195 名前:デフォルトの名無しさん [2008/01/16(水) 21:20:34 ]
すみません、教えてください。

VS2005 .netでプログラムしていますが、HOMEPATHの取得法はあるのでしょうか?

もしあるならば方法をご教授ください。

よろしくお願いします

196 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:23:02 ]
994 名前:デフォルトの名無しさん[sage] 投稿日:2008/01/11(金) 12:14:20
Environment.GetEnvironmentVariable( "HOMEPATH" );

197 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:27:22 ]
\r\n と \n の差がわからないんだが
どっちも改行するわけだが動違うの?

198 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:31:50 ]
>>197
サイズが違う。

199 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:38:14 ]
おおまかにはOSによって改行コードが違う。
Unix:\n
Windows:\r\n
Mac:\r

ってか基本だと思うけど。

200 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:40:24 ]
>>199
トンクス
Cとかだと\nが改行だから\r\nって何かと思ってたんだが
Windowsなら\r\nでいいってことでつね



201 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:46:35 ]
>>200
Cは、テキストモードだと、\nは\r\nに変換される。(winでは)

202 名前:デフォルトの名無しさん [2008/01/16(水) 21:52:10 ]
>>196

ありがとうございました。無事解決です

203 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:09:14 ]
>>200
どうでもいい話ではあるんだが意味的に言うとWinがたぶん正しい
なのでhttpとかも\r\n。この辺はCRとLFを調べてみれ

204 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:28:13 ]
むかしタイプライターというものがあってのう

205 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 22:57:06 ]
LFだけってのはおかしいと思う。

206 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:00:21 ]
それ言ったらCRだけなのもおかしい

207 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:16:31 ]
CRってキャリッジリターンなのは聞いたことあるけど、LFってなんて言うの?
ラインフィニッシュ?

208 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:20:38 ]
ラインフィード

209 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 23:21:27 ]
CR=キャリッジリターン=キャリッジ(紙を左右に動かす装置)を初期位置に戻すこと。
LF=ラインフィード=紙送り。

210 名前:デフォルトの名無しさん [2008/01/17(木) 00:53:22 ]
C#相談室から誘導されてきました。
たとえば、こういうコードがあったとします。

if (Result == null) {
transaction.Rollback();
MessageBox.Show("エラー0です。");
return false;
}
if ((int)Result == 1) {
transaction.Rollback();
MessageBox.Show("エラー1です。");
return false;
}
if ((int)Result == 2) {
transaction.Rollback();
MessageBox.Show("エラー2です。");
return false;
}
transaction.Commit();
return true;

これをスッキリ表記するのに何かいい手段はないですかねぇ…。
throwで例外起こしてtry〜catchってのもスッキリしなくて…



211 名前:デフォルトの名無しさん [2008/01/17(木) 01:08:54 ]
C#でLispみたいなカッコイイプログラミングするにはどうすればいいの?

212 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:13:40 ]
F#をダウンロードします

213 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:20:46 ]
そして卵を御飯にかけます

214 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 01:27:18 ]
>>210
result = (Result == null) ? 0 : (int)Result;

switch(result){
case 0:
case 1:
case 2:
transaction.Rollback();
string temp = "エラー" + result + "です。";
MessageBox.Show(temp);
return false;
break;

default:
transaction.Commit();
return true;
break;
}


215 名前:デフォルトの名無しさん [2008/01/17(木) 01:39:34 ]
xmlファイルをphpのsimple xmlみたいに簡単に扱える方法はないのでしょうか?

216 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:07:05 ]
C#のswitchのcaseは絶対に下に降りられないと思ってたが、何も書かなければ並べられるのか。
しかし不必要なbreakを強要されるのが面倒くさいな。
Cの文法に慣れてる人がバグを作らないようにってことなのかな。

217 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:10:59 ]
returnの下のbreakいらんだろ

218 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 09:22:09 ]
いらん以前に到達できないコードな警告出たりしないかそれ確か

219 名前:デフォルトの名無しさん [2008/01/17(木) 13:16:16 ]
構造体のマーシャリングについて質問いいっすか?
自分よく分かってないんですが

typedef struct tagDESKBANDINFO {
 DWORD dwMask;
 POINTL ptMinSize;
 POINTL ptMaxSize;
 POINTL ptIntegral;
 POINTL ptActual;
 WCHAR wszTitle[256];
 DWORD dwModeFlags;
 COLORREF crBkgnd;
} DESKBANDINFO;

の WCHAR wszTitle[256];って
[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode)]
にした上で

[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)]
string wszTitle;

じゃないんですか?
www.pinvoke.net/default.aspx/Structures/DESKBANDINFO.html
とかだと255になってるんですがどっちが正しいんでしょう?

220 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 13:16:55 ]
試してみたがbreakいらんな



221 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 13:20:25 ]
null終端とやらの関係かなとか思ったんですが
msdn2.microsoft.com/ja-jp/library/795sy883(VS.80).aspx
文字列のマーシャリングだと

TCHAR szCSDVersion[ 128 ];

[ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )]
String versionString;

になってるしワケワカリマセン

222 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 13:20:51 ]
>>219
256であってる

223 名前:219 mailto:sage [2008/01/17(木) 13:25:09 ]
>>222
ありがとうございます。

まじすか。
PInvoke.netのまま使ってると2バイトずつ上にずれてるってことですか?

224 名前:219 mailto:sage [2008/01/17(木) 13:30:11 ]
ありゃMarshal.SizeOfを見たらどっちも同じ
さらにワケワカメ

アラインとかPackとかのせいですか?
ということは実害なし?

225 名前:デフォルトの名無しさん [2008/01/17(木) 18:06:12 ]
GTKについてわからないところがあるのですが、詳しい方いらっしゃいますか?

226 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 18:08:57 ]
>>225
C#でGTKといったらMono?
Monoスレに行かないといないかもしれない。

227 名前:デフォルトの名無しさん [2008/01/17(木) 18:11:31 ]
そうですか…行ってみます。
すみません、ありがとうございました。

228 名前:デフォルトの名無しさん [2008/01/18(金) 01:31:53 ]
VC#2008関連の書籍って出ないの?

229 名前:210 mailto:sage [2008/01/18(金) 02:17:47 ]
>214
ありがとうございます。
これで試してみます。

230 名前:デフォルトの名無しさん [2008/01/18(金) 03:32:28 ]
C#でxmlファイルをphpのsimple xmlみたいに簡単に扱える方法はないのでしょうか?



231 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 03:46:58 ]
visual studio 2005を使ってます。

pictureboxに表示する画像のリソースを指定するときは

this***.Image = Properties.Resources.abc;

のようにしますが(というかVSが勝手にやってくれますが)
これを文字列型の変数を使ってやることはできないでしょうか?

string TMP;
TMP = "abc";
として5行目と同じように指定したいのです。

232 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 06:06:54 ]
リフレクション使えばできると思うが、やるほどの価値はないと思う。

233 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:02:54 ]
ResourceManager.GetObject使えばできるけど厳密な型指定できないよ

234 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:27:36 ]
何をしたいのかを書けば、もっといい解決法があるかもよ

235 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:13:14 ]
>>232
>>234
リソース名が連続した英数字なので、for文で数十の文字列の配列を作ったんですが、それをリソース名の指定に使う方法が分からなくて・・・
手動でやるよりはるかに効率的だと思うので、できればさわりだけでも簡単に教えてもらえればと

>>233
では、結局出来ないということになるんでしょうか・・・?

236 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:21:16 ]
Properties.Resources.abc;の実装がどうなってるかみなよ。

237 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 10:18:33 ]
>>230
XLinqでも使ってみれば

238 名前:188 mailto:sage [2008/01/18(金) 11:19:39 ]
遅くなりましたが無事解決しました!
ありがとうございました。

239 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:01:23 ]
byte[] b1 = new byte[] {1,2,3,4};
byte[] b2 = new byte[] {1,2,3,4};

があったとして、2つの配列の内容が全て等しいか簡単に調べる方法ってないですか?

b1 == b2;

b1.Equals(b2);
もfalseになります(´・ω・)

やっぱいちいちforeachで回さないとダメですか?

240 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:04:53 ]
うむ
Array.Equals は object.Equals と変わらんからな



241 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:06:27 ]
ぶ、C# 配列 比較 で検索したらすぐ見つかりました。
出来ないみたいですねorz

お騒がせしました。

242 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:09:45 ]
継承クラスで共通のメソッド実行時
親クラスで共通の処理をさせたいのですがどうすればいいでしょうか
うまく説明できないんですがポリモーフィズム的なメソッドの共通処理を
継承クラスでは意識せずに親で処理させたいのですが・・・

243 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:24:50 ]
//親
virtual void Hoge()
{
 ...
}

//子
override void Hoge()
{
 ...
 base.Hoge();
}
じゃあかんのん?

244 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:27:51 ]
>>243
やっぱりそうなりますかね
base.Hoge()の処理は必ずして欲しいのに
base.Hoge();を付け忘れちゃったりするものですから

245 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:21:12 ]
Hoge は virtual じゃなくして、HogeOverridable を virtual にして
Hoge のなかで HogeOverridable を呼ぶ
ただし派生クラスで基底クラスの処理の呼び出す位置を変更できないデメリットもある

246 名前:231 mailto:sage [2008/01/18(金) 19:49:57 ]
>>231ですが
www.atmarkit.co.jp/fdotnet/dotnettips/220resources3/resources3.html
を参考に

Assembly thisExe = Assembly.GetExecutingAssembly();

ResourceManager TMPres = new ResourceManager(
"***.Properties.Resources", thisExe);
xxx = (Image)TMPres.GetObject("abc");

とやったらできました。

247 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 20:10:42 ]
Image img = (Image)Properties.Resources.ResourceManager.GetObject( "hoge" );

248 名前:デフォルトの名無しさん [2008/01/18(金) 23:19:52 ]
VS2008を使っていますが、
FormのFormClosingイベントを捕らえて
フォームを閉じることを中止するにはどうすればいいのでしょうか?

以下のように書いてもだめでした。
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
  DialogResult result = MessageBox.Show("変更を保存しますか?", "確認",
  MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
 if (result == DialogResult.Yes)
 {
  this.menuSaveProject_Click(sender, e);
 }
 else if (result == DialogResult.Cancel)
 {
  return; // ←これ
 }
}
よろしくお願いいたします。

249 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:26:03 ]
引数調べれ

250 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:28:22 ]
e.Cansel = true;
とやればいいようですね(´・ω・`)

今までeなんて無視してました
ありがとうございました



251 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:29:03 ]
ていうかイベントの解説に書いてるよな

252 名前:デフォルトの名無しさん mailto:age [2008/01/19(土) 00:16:31 ]
IPAddress[] addrs;
があったとして、
この中から特定のIPの項目だけ削除ってどうすればいいんでしょうか。

InteliSenseで見てると
addrs.Except();
とかそれっぽいのはあるんですが、いまいち使い方がわかりません・・・






[ 続きを読む ] / [ 携帯版 ]

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

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