ふらっとC#,C♯,C#(初心者用) Part22
レス数が1000を超えています。これ以上書き込みはできません。
0001ななしぃ#
2007/12/16(日) 19:51:52「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
前スレ: ふらっとC#,C♯,C#(初心者用) Part21
http://pc11.2ch.net/test/read.cgi/tech/1195368821/
0002ななしぃ#
2007/12/16(日) 19:52:44http://pc11.2ch.net/test/read.cgi/tech/1194956418/
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
http://pc11.2ch.net/test/read.cgi/tech/1162950198/
Windows Live プログラミング
http://pc11.2ch.net/test/read.cgi/tech/1188112572/
初心者のためのプログラミング言語ガイド Part6
http://pc11.2ch.net/test/read.cgi/tech/1193132235/
0003デフォルトの名無しさん
2007/12/16(日) 20:04:540004デフォルトの名無しさん
2007/12/16(日) 20:29:550005デフォルトの名無しさん
2007/12/16(日) 20:35:410006デフォルトの名無しさん
2007/12/16(日) 20:51:560007デフォルトの名無しさん
2007/12/16(日) 21:09:550008デフォルトの名無しさん
2007/12/16(日) 22:58:42ShowDialogメソッドを使うとOKボタンや×ボタンをクリックしてもフォームに反映されないうえに
なぜか繰り返しダイアログが出てきてしまいます
どうすればいいでしょうか?
0009デフォルトの名無しさん
2007/12/16(日) 23:02:030010デフォルトの名無しさん
2007/12/16(日) 23:04:13そのあたりのコード晒してみそ
0011デフォルトの名無しさん
2007/12/16(日) 23:11:35ほとんどあるサイトから引用したんですがこんな感じです、よろしくお願いします
private void StripItem1_Click(object sender, EventArgs e)
{
Form1 F = new Form1();
ColorDialog colorDialog1 = new ColorDialog();
colorDialog1.AnyColor = true;
colorDialog1.SolidColorOnly = true;
// カスタム カラーを任意の色で設定する
colorDialog1.CustomColors = new int[] { 0x8040FF, 0xFF8040, 0x80FF40, 0x4080FF };
DialogResult dr = colorDialog1.ShowDialog();
// ダイアログを表示し、戻り値が [OK] の場合は選択した色を textBox1 に適用する
if (dr == DialogResult.OK)
{
F.TransparencyKey = colorDialog1.Color;
}
// 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
colorDialog1.Dispose();
}
0012デフォルトの名無しさん
2007/12/16(日) 23:25:14private void StripItem1_Click(object sender, EventArgs e) {
using (ColorDialog dialog = new ColorDialog()) {
//設定は略
if (dialog.ShowDialog() == DialogResult.OK)
this.TransparencyKey = dialog.Color;
}
}
こういうこと?
0013デフォルトの名無しさん
2007/12/16(日) 23:34:42わざわざありがとうございます
そういうことだと思います
あと書き忘れたのですが、デバッグするとクリックに関係なくはじめからダイアログがでてきてしまいます
0014デフォルトの名無しさん
2007/12/16(日) 23:39:55>Form1 F = new Form1();
ここでいきなり作成したフォーム(Showもされてない、現在のフォームとムカンケイ)の透過色を設定してるから
F.TransparencyKey = colorDialog1.Color;
↓
this.TransparencyKey = colorDialog1.Color;
0015デフォルトの名無しさん
2007/12/16(日) 23:49:04ほとんど流用しといて肝心なところをおかしくしてるのはなんでだw
0016デフォルトの名無しさん
2007/12/16(日) 23:53:31ありがとうございます、理解しました
しかしやっぱりダイアログは始めから出てますし、どのボタンを押しても一瞬消えてまたすぐ出てきてしまいます
いったいどういうことなんでしょうか
0018デフォルトの名無しさん
2007/12/16(日) 23:56:31いきなりToolStripなんて使わずに、自分で十分把握できるミニマムなサンプルから
ちょっとづつ変えていった方がいいよ
0020デフォルトの名無しさん
2007/12/17(月) 11:46:350021デフォルトの名無しさん
2007/12/17(月) 12:02:52こういうこと?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/142closebtn/closebtn.html
0022デフォルトの名無しさん
2007/12/17(月) 12:23:020023デフォルトの名無しさん
2007/12/17(月) 15:54:55右クリックを無視させない方法ってありますか?
「閉じる」だけでもできるとありがたいんですが。
0024デフォルトの名無しさん
2007/12/17(月) 16:47:40上手くいきません。
キー入力には携帯電話型入力デバイスを使用して携帯電話と同じテンキーによるカナ入力を行っています。
現状のプログラムだと、1文字目の遷移にはタイムラグが発生するのですが、2文字目以降はタイムラグが生じません。
また決定キーを押した際にはタイムラグが生じます。
002524
2007/12/17(月) 16:49:13using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
Sleep(1000);
}
[DllImport("kernel32.dll")]
static extern Int32 Sleep(Int32 millisecs);
}
}
どのように改修すればよいでしょうか?
感覚としてはキーを押すごとにタイムラグが生じるようにしたいのですが。
0026デフォルトの名無しさん
2007/12/17(月) 18:18:43ってかなんでスリープにAPI使ってんだよ。
0027デフォルトの名無しさん
2007/12/17(月) 18:34:22ふつうイベントでフラグ立ててタイマー起こす
タイマーのTickでフラグ降ろす
フラグ立ってるときのキー入力を破棄する
0028デフォルトの名無しさん
2007/12/17(月) 19:00:160029デフォルトの名無しさん
2007/12/17(月) 19:23:58破棄したらだめだろw
それだったら、わざとタイミング遅らせて入力してるのと一緒じゃないか
ド素人は黙ってなさい
0030デフォルトの名無しさん
2007/12/17(月) 20:19:09inはどんどんためてけばいいんでないの?
0031デフォルトの名無しさん
2007/12/17(月) 20:30:510032デフォルトの名無しさん
2007/12/17(月) 20:31:550033デフォルトの名無しさん
2007/12/17(月) 23:57:45FormBorderStyle使わずにRegionでクリッピングすればいいんじゃない?
0034デフォルトの名無しさん
2007/12/18(火) 01:42:14ありがとうございます。
追加で質問なんですが読み込んだ画像サイズに自動的にクリッピングすることは可能でしょうか?
0035デフォルトの名無しさん
2007/12/18(火) 01:54:060036デフォルトの名無しさん
2007/12/18(火) 02:18:03もしよかったら教えてください、お願いします。
0037デフォルトの名無しさん
2007/12/18(火) 10:30:51とりあえず自分で作ったんだがエラーばかりで起動しない
基本部分だけでいいんで誰か教えてくれ
0038デフォルトの名無しさん
2007/12/18(火) 10:37:25んじゃ
using System;
0039デフォルトの名無しさん
2007/12/18(火) 10:45:29とりあえずURL入力して表示できるところまで頼むww
0040デフォルトの名無しさん
2007/12/18(火) 10:56:29それを見せて間違いを指摘してもらうんじゃないのか
0041デフォルトの名無しさん
2007/12/18(火) 11:00:55004337
2007/12/18(火) 11:10:560044デフォルトの名無しさん
2007/12/18(火) 11:31:060045デフォルトの名無しさん
2007/12/18(火) 11:43:340046デフォルトの名無しさん
2007/12/18(火) 11:59:320047デフォルトの名無しさん
2007/12/18(火) 12:18:09問題のコードを単純化するとこんな感じです。
private static void TestMethod() {
textBox1.Text = "文字書き込み";
}
「オブジェクト参照が必要です」というエラーが出て困っています。
このメソッドの呼び出し元からでなく、何とかしてstaticメソッドから
textboxに文字を書き出したいのですが、どのようにしたらよいでしょうか?
0048デフォルトの名無しさん
2007/12/18(火) 12:19:56static を消す。
0049デフォルトの名無しさん
2007/12/18(火) 12:22:050050デフォルトの名無しさん
2007/12/18(火) 12:25:09005147
2007/12/18(火) 12:31:34「オブジェクト参照が必要です」となって、
結局全てのstaticを外さないとダメなことになります。
何とかしてstaticメソッドからtextboxに文字を書き出したいのですが、
textBox1があるメインフォームをインスタンス化すればいいのでしょうか?
005247
2007/12/18(火) 12:46:12とてつもなく重たくなって、しかも肝心のtextBox1に文字出力されませんでした;;
0053デフォルトの名無しさん
2007/12/18(火) 13:08:29フォームが表示されているなら既にインスタンスはあるだろ。
別のインスタンスを作ってどうするんだよ。
0054デフォルトの名無しさん
2007/12/18(火) 13:11:06インスタンスフィールドに触る可能性があるのにstaticにするなんてよ
private static void TestMethod( TextBox tb ) {
tb.Text = "文字書き込み";
}
とすればおk
元をたどっていって始めのメソッドにTextBox渡さないといかんけどね
もっと超マヌケな方法としては、staticなフィールドにtextBox1をあらかじめいれとく
0055デフォルトの名無しさん
2007/12/18(火) 14:02:140056デフォルトの名無しさん
2007/12/18(火) 15:35:330057デフォルトの名無しさん
2007/12/18(火) 15:38:00ちなみに多分言ってること自体は
デリゲートで実は出来るが
全然何の意味もない。
0058デフォルトの名無しさん
2007/12/18(火) 16:32:570059デフォルトの名無しさん
2007/12/18(火) 18:09:23ここ見て今ではこんなに立派になりました
みたいな
0060デフォルトの名無しさん
2007/12/18(火) 18:09:550061デフォルトの名無しさん
2007/12/18(火) 18:19:47まんべんなくあちこち見てくうちにそれなりに理解できる
http://dobon.net/
http://jeanne.wankuma.com/
http://www12.plala.or.jp/dokugaku/index.html
http://uchukamen.com/
http://ufcpp.net/study/csharp/index.html
http://wisdom.sakura.ne.jp/programming/cs/index.html
http://homepage3.nifty.com/midori_no_bike/CS/
ただし効果は保証できないッ
0062デフォルトの名無しさん
2007/12/18(火) 18:47:14小学校の頃からずっとやってる
今はプログラムしなくてもいい役職についたが
それでも趣味でフリーなものを作りつづけている
本当にありがとうございました
0063デフォルトの名無しさん
2007/12/18(火) 19:00:34満足したら寝ろ
0064デフォルトの名無しさん
2007/12/18(火) 19:06:320065デフォルトの名無しさん
2007/12/18(火) 19:09:350066デフォルトの名無しさん
2007/12/18(火) 19:19:190067デフォルトの名無しさん
2007/12/18(火) 19:24:43きつい下っ端の仕事ばかり押し付けられて鬱になって自宅療養中ですか?w
0068デフォルトの名無しさん
2007/12/18(火) 19:30:36体動かせよ
どうせスポーツ経験もない帰宅部だったんだろ
キモ
0069デフォルトの名無しさん
2007/12/18(火) 19:31:230070デフォルトの名無しさん
2007/12/18(火) 19:32:170071デフォルトの名無しさん
2007/12/18(火) 19:34:12こんなとこきてスポーツとか言ってるしw
お前は両方できないんだろw
できる人間は何でもそれなりにできるんだよ
俺は毎週ジムに通ってる
低所得者はそんな金も時間もないだろうがなw
0072デフォルトの名無しさん
2007/12/18(火) 19:37:290073デフォルトの名無しさん
2007/12/18(火) 19:38:08正直あのガラス張りだったりするジムでわざわざ銭払って汗流す価値観がわからんよ俺には。
なんかネズミが例のくるくる回る奴で遊んでるのを連想して滑稽に思っちゃう。
っていうか、そこらのジムでできるようなことって自宅でも普通にできないか?
0074デフォルトの名無しさん
2007/12/18(火) 19:41:020075デフォルトの名無しさん
2007/12/18(火) 19:53:33やりたいところでやればいいじゃないか
田舎なら排気ガスも気にせずに外走れば気持ちいいだろうしな
0076デフォルトの名無しさん
2007/12/18(火) 20:00:31都内でも川沿いはそれなりに走れるよ
0077デフォルトの名無しさん
2007/12/18(火) 20:14:06本当に大丈夫?
0078デフォルトの名無しさん
2007/12/18(火) 22:06:41身に着けるならドッチ!? がいいですか
0079デフォルトの名無しさん
2007/12/18(火) 22:08:09このスレ的には C# よりの回答が多いに決まってる。
0080デフォルトの名無しさん
2007/12/18(火) 22:09:060081デフォルトの名無しさん
2007/12/18(火) 22:18:322005のProとEE、2008のProとEE、全部同じマシンに入ってるが問題ない
0082デフォルトの名無しさん
2007/12/18(火) 22:42:53C#は.NETが無いと何もできん。
C++をお勧めする。いろいろな分野で利用できるのは
C++の強みだ。
0083デフォルトの名無しさん
2007/12/18(火) 22:46:29ですよね・・・趣味で使う、且つ、業務でも活用できるってのがどちらかなと
>>82
なるほど、どもです。
そもそも.NETを覚えたくてC#とかVBとかいろいろでてますがどれを覚えるのが一番いいのかなと思いまして。
0084デフォルトの名無しさん
2007/12/18(火) 22:49:300085デフォルトの名無しさん
2007/12/18(火) 22:50:220087デフォルトの名無しさん
2007/12/19(水) 00:40:56DelphiのTActionのようにメニューとかツールボタンとかの設定を
一括で管理するにはどうすれば良いのでしょうか?
0088デフォルトの名無しさん
2007/12/19(水) 00:43:32メニューに似たような処理をする以下のようなアイテムがあります。
outputCsvFile と outputHtmlFile
これらのクリックイベントにはいずれも以下のメソッドが関連付けられています。
OutputFile(object sender, EventArgs e)
出力するファイル形式が異なるので処理の一部を分岐しなければならず、
sender で分岐されるしかないのですが、一般的に使われる定番の分岐方法って
ありますか?
現在はキャストして .Name プロパティで分岐させていますが、
他人がメンテナンスしてコントロール名を変えたときなどに、分岐で使用している
文字列が置き換わらないので、いまいちのような気がしています。
もっとよい分岐のさせ方があったらお教えください。
0089デフォルトの名無しさん
2007/12/19(水) 00:51:37string hoge = String.Empty;
と初期化していますが、
string hoge = string.Empty;
と組み込み型の.Emptyを使用しない理由って何なんでしょう??
stringの頭文字を大文字にしたり小文字にしたりするのが面倒くさいので
常に小文字のを使っていますが、何か問題ありますか?
0090デフォルトの名無しさん
2007/12/19(水) 00:54:20MenuItemインスタンス自体で判定しちゃいかんのか
0091デフォルトの名無しさん
2007/12/19(水) 00:55:41string.Empty と String.Emptyの違いはわかってる?
0092デフォルトの名無しさん
2007/12/19(水) 00:56:00stringはSystem.Stringのエイリアスに過ぎないよ
using System;してるならstringとStringは全く等価
でも静的メンバ使う場合はStringって書かないとどうも気持ち悪いな個人的に
0093デフォルトの名無しさん
2007/12/19(水) 01:01:11onClickじゃなくてOnCommandにするとか?
CommandEventArgsのCommandNameとかCommandArgumentで分岐。
0094デフォルトの名無しさん
2007/12/19(水) 01:21:18ありがとうございます。
0095デフォルトの名無しさん
2007/12/19(水) 01:29:59組み込み型とクラスということ、エイリアスで等価ということも
知っていますが、だとしたらコードで高速に書いていきやすいのは
すべて小文字のstringに統一することだと思っていたのですが、
そのサンプルコードを書いた人はわざわざString.Emptyのほうを
使っていたんですよね・・・。
個人の趣向かな、とも思ったのですが、デザインパターンとかを
多用してわかりやすいコードを書くレベルの高そうな人だったので
何か深い訳があるのかなと思いまして・・。
0096デフォルトの名無しさん
2007/12/19(水) 01:35:43http://snipurl.com/1vhgw
0097デフォルトの名無しさん
2007/12/19(水) 01:36:400098デフォルトの名無しさん
2007/12/19(水) 01:40:350099デフォルトの名無しさん
2007/12/19(水) 01:42:07変わらんよ
0100デフォルトの名無しさん
2007/12/19(水) 01:58:140101デフォルトの名無しさん
2007/12/19(水) 02:00:01private const int MAX_ROW_COUNT = 7;
ではなくて
private const int MaxRowCount = 7;
と書く人が増えてきている気がするのですが、
気のせいでしょうか?
0102デフォルトの名無しさん
2007/12/19(水) 02:00:01stringはただのエイリアスなんだから
0103デフォルトの名無しさん
2007/12/19(水) 02:03:46そうなん?
俺のまわりは全然居ないな
0104デフォルトの名無しさん
2007/12/19(水) 02:08:240105デフォルトの名無しさん
2007/12/19(水) 02:32:040106デフォルトの名無しさん
2007/12/19(水) 02:33:16Int32.Parseは嫌だな
0107デフォルトの名無しさん
2007/12/19(水) 02:52:33int i;
if( Int32.TryParse( str, out i ) )
みたいな感じにしてしまう。どうでもいいけど
0108デフォルトの名無しさん
2007/12/19(水) 02:53:11酔ってるし
0109デフォルトの名無しさん
2007/12/19(水) 02:59:41全く意味が無いと知りつつも。
0110デフォルトの名無しさん
2007/12/19(水) 06:38:07他のソフトウェアのプラグインというものを作ってみたいのですが
C#.Net でそういった DLL を作ることはできますか?
それともその場合は C++ といった他の言語を選択した方がよいのでしょうか
0111デフォルトの名無しさん
2007/12/19(水) 06:41:10他のソフトウェアの言語次第
0112デフォルトの名無しさん
2007/12/19(水) 10:15:53まあ無理にやれないことはないにしても。
0113デフォルトの名無しさん
2007/12/19(水) 12:20:310114デフォルトの名無しさん
2007/12/19(水) 14:11:44現在在庫管理のソフトを作ってます。
それで、在庫の変数をclass Declarationで宣言して
frmMainとライフタイムを同じとするように、public class Form1の内側(全てのメソッドの外側)
にpublic Declaration dec = new Declaration();とインスタンスを作成して
frmMainでボタンイベントが起こったときに、現在の在庫数をCSVで出力する用のクラス
FileInOutのInputCsv(Decralation dec) でCSVから取り込んだ値をDeclarationの変数郡に代入す際に
どうしても参照エラーになってしまいます。デバッガで確認すると
dec.sample と参照した変数は0となっており、参照できているはずだと思うんですが・・・
なぜでしょうか。どなたかご教授いただけませんか
。
0115デフォルトの名無しさん
2007/12/19(水) 14:12:210116デフォルトの名無しさん
2007/12/19(水) 14:18:100117デフォルトの名無しさん
2007/12/19(水) 14:18:370118デフォルトの名無しさん
2007/12/19(水) 14:50:13classのメンバは明示的にpublicにしないとprivate扱いなんだけど
0119デフォルトの名無しさん
2007/12/19(水) 14:52:46public int なんですけどねえ・・・;;
VisualC#を使っているんですが、
そもそもはForm1に在庫の操作をするときに使用する変数を全ておいておくと
あまりに莫大になりすぎる為に、それ専用のクラスを作成し、
常にForm1、およびFileInOutクラスから参照したいと考えたのが始まりなんですが
他にいい方法があればそれでもいいんですけどね・・・。
なぜ通らないんだろう・・・。
0120デフォルトの名無しさん
2007/12/19(水) 14:56:45参照できないんじゃないかなぁ?
0121デフォルトの名無しさん
2007/12/19(水) 14:58:20dec.sample = 0; とかって感じですか?
0122デフォルトの名無しさん
2007/12/19(水) 15:26:14そっちももうすこし、具体的にクラスを貼ったりしてくれると嬉しいんだけど。
こういうのだとダメじゃね?
class Declaration
{
public int sample;
:
}
たとえば
class Declaration
{
public int sample;
public Declaration()
{
sample = 0;
}
}
または
class Declaration
{
public int sample = 0;
:
}
とか?
0123デフォルトの名無しさん
2007/12/19(水) 15:29:36すぐに試してみます。
0124デフォルトの名無しさん
2007/12/19(水) 15:30:180125デフォルトの名無しさん
2007/12/19(水) 15:33:42<class Decralation>
public class Declaration
{
#region "宣言"
//********抵抗**************
public int stk_25CKF1002FL=0;
public int stk_25CKF3901FL=0;
public int stk_25CKF1001FL=0;
public int stk_25CKF8201FL=0;
public int stk_25CKF4700FL=0;
public int stk_25CKF1303FL=0;
public int stk_25CKF2202FL=0;
}
public class Form1 : System.Windows.Forms.Form
{
・
・
・
private System.Windows.Forms.TextBox CLLC4RNCount_tbx;
private System.Windows.Forms.ComboBox decide_cbx;
private System.Windows.Forms.Button decide_btn;
/// <summary>
/// 必要なデザイナ変数です。
/// </summary>
private System.ComponentModel.Container components = null;
public Declaration dec = new Declaration(); //ここに宣言
}
0126デフォルトの名無しさん
2007/12/19(水) 15:35:340127デフォルトの名無しさん
2007/12/19(水) 15:36:07{
FileInOut fio = new FileInOut(this.dec);
fio.InputCsv();
InitializeComboBox();
}
これがFileInOutを呼び出す記述で
クラスFileInOutは
public class FileInOut
{
public Declaration dec;
public FileInOut(Declaration Dec)
{
dec = Dec;
}
public void InputCsv()
{
System.IO.StreamReader strRead = new System.IO.StreamReader("CLLC4RN.txt",System.Text.Encoding.Default);
・
・
・
}
}
こうなってます。
0128デフォルトの名無しさん
2007/12/19(水) 15:36:51'System.NullReferenceException' のハンドルされていない例外が 在庫管理.exe で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。
です><
0129デフォルトの名無しさん
2007/12/19(水) 15:39:55{
System.IO.StreamReader strRead = new System.IO.StreamReader("CLLC4RN.txt",System.Text.Encoding.Default);
dec.stk_25CKF1002FL = int.Parse((strRead.ReadLine().Split(',').GetValue(2)).ToString());
・
・
・
}
}
失礼! InputCsv()からDecralationの変数の参照は上の通りでした。
dec.stk_25CKF1002FL = int.Parse((strRead.ReadLine().Split(',').GetValue(2)).ToString());
が抜けてました・・・
0130デフォルトの名無しさん
2007/12/19(水) 15:44:170131デフォルトの名無しさん
2007/12/19(水) 15:48:33private void Form1_Load(object sender, System.EventArgs e)
{
FileInOut fio = new FileInOut(this.dec);
fio.InputCsv();
InitializeComboBox();
}
の時点で
{
dec.stk_25CKF1002FL = 1; //追加
FileInOut fio = new FileInOut(this.dec);
fio.InputCsv();
InitializeComboBox();
}
としてみると stk_25CKF1002FL = 1 となったので
NULLではないと思うんですが、再度確認してみます。
0132デフォルトの名無しさん
2007/12/19(水) 15:49:580133デフォルトの名無しさん
2007/12/19(水) 15:52:28次からはもう少し解りやすく質問してくれよ
ヒマだったからいいけどw
0134デフォルトの名無しさん
2007/12/19(水) 15:53:47{
dec.stk_25CKF1002FL = 88; //追加
FileInOut fio = new FileInOut(this.dec);
fio.InputCsv();
InitializeComboBox();
}
とやってみたらインスタンスdecのstk_25CKF1002FLの値が88に変わりました。
以前、参照の渡しはできない状態です・・・。
0135デフォルトの名無しさん
2007/12/19(水) 15:56:090136デフォルトの名無しさん
2007/12/19(水) 17:17:02C#で
ある文字列と一致する名前の変数があれば
参照をその変数に渡すとかってできますか?
例えば
string str = "hoge";
int hoge;
の時に、 str = 5;
としたときに hoge == 5 となるような。
かなりわかりにくいと思うんですが!
分かる方いらっしゃったら教えてください!
0137デフォルトの名無しさん
2007/12/19(水) 17:20:06そんなことしないですむようにコーディングしろ
0138デフォルトの名無しさん
2007/12/19(水) 17:21:560139デフォルトの名無しさん
2007/12/19(水) 17:24:05ありがとうございますww
0140デフォルトの名無しさん
2007/12/19(水) 17:24:540141デフォルトの名無しさん
2007/12/19(水) 17:26:090142デフォルトの名無しさん
2007/12/19(水) 17:27:34そうですか・・・?
関連付けるために一回一回 文字列をselect caseで比較して代入してもいいんですけど
手間かかりすぎるなあって思って。
0143デフォルトの名無しさん
2007/12/19(水) 17:46:19そもそもstrはstring型だからstr = 5;とはできないだろ?
0144デフォルトの名無しさん
2007/12/19(水) 17:49:00「文字列で変数名を指定したい」って病気だろ。
碌なことないからとっとと治せ。
0145デフォルトの名無しさん
2007/12/19(水) 18:05:420146デフォルトの名無しさん
2007/12/19(水) 18:06:490147デフォルトの名無しさん
2007/12/19(水) 18:07:27MSにありますよ
0148デフォルトの名無しさん
2007/12/19(水) 18:10:34Match m2 = reg.Match(name);
name = name.Remove(0, name.Length - m2);
気持ちとしてはこんな感じで、文字列nameの0文字目からregでマッチした文字までを削除したいのですが
マッチしたのが何文字目かを得るにはどうしたらいいんでしょうか?
てっきり↑の場合m2に文字数が入るのかと思っていたのですがそうでもないようです
0149デフォルトの名無しさん
2007/12/19(水) 18:36:06name = name.Substring( m2.Index );
0150デフォルトの名無しさん
2007/12/19(水) 18:37:38ぬるりのスタックトレースは?
0151デフォルトの名無しさん
2007/12/19(水) 19:18:03それ微妙に違うw
name = name.Substring(0, m2.Index);
0152デフォルトの名無しさん
2007/12/19(水) 19:19:48XNA Frameworkではpublicな定数はそうなってるよ
Microsoft.Xna.Framework.MathHelper.PiOver2みたいに
0153デフォルトの名無しさん
2007/12/19(水) 19:31:500154デフォルトの名無しさん
2007/12/19(水) 19:35:390155デフォルトの名無しさん
2007/12/19(水) 19:52:24C++は玄人用、実力者用
C#はお手軽Winアプリ開発者用
0156デフォルトの名無しさん
2007/12/19(水) 19:54:510157デフォルトの名無しさん
2007/12/19(水) 20:07:47C#はお手軽Winアプリ開発者用
0158デフォルトの名無しさん
2007/12/19(水) 20:11:06これはずっと改善されないの?
M$ですら、.NETでゲームなどを開発していないのに
これを薦めている訳がわからないんですけど
0159デフォルトの名無しさん
2007/12/19(水) 20:16:29仕事は別だが
0160デフォルトの名無しさん
2007/12/19(水) 20:20:25必ずSetLastError();が呼ばれて何らかの値が入ると思うのですが、.NET 3.5を入れた後
からかどうかわかりませんが
Exception e = Marshal.GetExceptionForHR(Marshal.GetLastWin32Error());
としてもなぜかeはnullのままで、成功しても入ってたはずのCOMExceptionが入らなく
なってしまいました。なぜでしょうか?
0161デフォルトの名無しさん
2007/12/19(水) 21:45:440162デフォルトの名無しさん
2007/12/19(水) 22:55:090163デフォルトの名無しさん
2007/12/19(水) 23:01:170164デフォルトの名無しさん
2007/12/19(水) 23:32:49C++でも簡単に逆アセできるよ
0165デフォルトの名無しさん
2007/12/19(水) 23:39:530166デフォルトの名無しさん
2007/12/20(木) 00:27:04久しぶりにVisual C++ 2008 Express Editionも落としてみたけど、
フォームにぺたぺた&ボタンをダブルクリックでクリックイベント追加と
VB見たいになってる・・・
0167デフォルトの名無しさん
2007/12/20(木) 00:39:210168デフォルトの名無しさん
2007/12/20(木) 00:43:28難読化ツール売ってる会社が商売にならなくなるじゃん。
0169デフォルトの名無しさん
2007/12/20(木) 00:54:430170デフォルトの名無しさん
2007/12/20(木) 01:06:43時々でいいので XNA を思い出してあげてください・・・・・
0171デフォルトの名無しさん
2007/12/20(木) 01:08:320172デフォルトの名無しさん
2007/12/20(木) 02:01:20自前のソースは圧縮されて影も形も無くなる。
0173デフォルトの名無しさん
2007/12/20(木) 02:39:00Opacity では全域が半透明になってしまいますし、TransparencyKey では完全に透明になってしまいます。
0174デフォルトの名無しさん
2007/12/20(木) 08:17:21使用マシン識別シリアルコードとか暗号化して入れられてるんですかね?
0175デフォルトの名無しさん
2007/12/20(木) 08:23:29通報(ry
0176デフォルトの名無しさん
2007/12/20(木) 08:25:21ある XElement に対して、
This is a <b>BOLD</b> string.
みたいなのをそのまま入れたいんだけど、どうすればいいですか?
aXElement.Add(XElement.Parse("This is a <b>BOLD</b> string."));
みたいにできればいいのですが。
0177176
2007/12/20(木) 08:29:44<b>BOLD</b>
はテキストではなく、エレメントとして扱いたいです。
0178デフォルトの名無しさん
2007/12/20(木) 08:43:52StringReader xmlSR = new StringReader(xml);
xmlDS.ReadXmlSchema(global::Test01.Properties.Resources.schema); // ←リソースとして埋め込んだXML Schemaを使いたいのですが、 どうすればいいのでしょうか?
xmlDS.ReadXml(xmlSR);
0179デフォルトの名無しさん
2007/12/20(木) 09:52:37DwmEnableBlurBehindWindow
DwmExtendFrameIntoClientArea
0180173
2007/12/20(木) 11:20:12ごめん。それ検討したんだけど、FormWindowState.Maximized かつ BorderStyle.None だと反映されないことに絶望したんだ (;´Д`)
やりたいのは WindowsFlip のアレなんだけどなぁ……。Form の2枚重ねでもしてるのかな。
0181デフォルトの名無しさん
2007/12/20(木) 11:24:31API
0183デフォルトの名無しさん
2007/12/20(木) 11:29:38教えてあげない><
0185デフォルトの名無しさん
2007/12/20(木) 11:34:460186デフォルトの名無しさん
2007/12/20(木) 12:31:47名言キター!
0187173
2007/12/20(木) 13:25:58でも、インターネットのリソースは有限なんだから、無駄な書き込みしないでください……。
0188デフォルトの名無しさん
2007/12/20(木) 13:29:480189デフォルトの名無しさん
2007/12/20(木) 13:30:54でも俺の過去の自演もバレるんかな
0190デフォルトの名無しさん
2007/12/20(木) 13:35:42DIB を使ってみては?
確か一部分だけ半透明にできるはずだし。
0191デフォルトの名無しさん
2007/12/20(木) 13:36:100192デフォルトの名無しさん
2007/12/20(木) 14:09:562ちゃんでは復活しないよ。
datに入ってないでしょ、id。
0193デフォルトの名無しさん
2007/12/20(木) 14:12:40using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MyBrowser
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Url = new Uri("http://www.yahoo.co.jp/");
}
}
}
で、InitializeComponentにエラー、というか注意が出てならないのだが
誰か解決方法おしえてくれ
0194デフォルトの名無しさん
2007/12/20(木) 14:20:42具体的に何が出るの?
うちじゃそんな風にならんけど。
0195193
2007/12/20(木) 14:31:24InitializeComponentのところに
「▲SecurityExceptionはハンドルされませんでした。」
要求が失敗しました。
て表示される
0196デフォルトの名無しさん
2007/12/20(木) 14:36:06多分実行ファイルの場所が悪い。
ネットワークフォルダ上で実行してないか?
0198デフォルトの名無しさん
2007/12/20(木) 16:04:130199デフォルトの名無しさん
2007/12/20(木) 18:19:20webページを取得&整形で時間を食ってしまっています。
そこは仕方がないとして、とりあえず先にフォームを出して、それからwebページ取得&整形をしたいのですが方法がわかりません
form_loadが終わったら・・のようにしたいのですがどうすればいいんでしょう
0200デフォルトの名無しさん
2007/12/20(木) 19:12:52WebBrowser コントロールというものがある。
貼り付けるだけでブラウザの完成だ。
0201デフォルトの名無しさん
2007/12/20(木) 19:15:140202デフォルトの名無しさん
2007/12/20(木) 19:21:48WebBrowserコントロール使ったこと無いの?
0204デフォルトの名無しさん
2007/12/20(木) 19:49:35というかそんなんについては聞いてない
0205デフォルトの名無しさん
2007/12/20(木) 19:51:01ウェブページを取得してそれはブラウズせずに何をブラウズするんだ?
0206デフォルトの名無しさん
2007/12/20(木) 19:56:34どうしてもWebBrowserコントロールについてひけらかしたいのか、やりたいなら好きにやればいいと思うよ
全く質問と関係ないこと言ってるじゃないの
0207デフォルトの名無しさん
2007/12/20(木) 20:00:040208199
2007/12/20(木) 20:02:50ウェブページ取得してマッチングとループとで整形して形にしてるだけなんだけどな、俺がなんか勘違いしてるのだろうか
2chブラウザとかみたいな感じなんだけども
0209デフォルトの名無しさん
2007/12/20(木) 20:04:540210デフォルトの名無しさん
2007/12/20(木) 20:11:360211デフォルトの名無しさん
2007/12/20(木) 20:15:20とりあえずWebBrowserを教えるのは適切だろ >>199にとって適切かは別にして
0212デフォルトの名無しさん
2007/12/20(木) 20:16:290213デフォルトの名無しさん
2007/12/20(木) 20:19:02イベントの使い方がわかってないから教えてくれっていう質問?
0214デフォルトの名無しさん
2007/12/20(木) 20:24:01199は欲しいものじゃないと突っぱねると言う展開もありえる気がする。
例えば自分でHTMLをレンダリングするのが目的という場合とか。
0215デフォルトの名無しさん
2007/12/20(木) 20:27:37誰かエスパー呼んできて
0216デフォルトの名無しさん
2007/12/20(木) 20:30:27http://www.anet-web.com/ei/ei-ant.jpg
0217デフォルトの名無しさん
2007/12/20(木) 20:33:34Linux C言語でのコーディングのときのようにソケット関連
のシステムコールを直接呼び出すのは面倒です。
0218デフォルトの名無しさん
2007/12/20(木) 20:34:100219デフォルトの名無しさん
2007/12/20(木) 21:14:110220デフォルトの名無しさん
2007/12/20(木) 22:15:16TcpClient 辺りになればずいぶん抽象化されてる感じがするけど
0222デフォルトの名無しさん
2007/12/21(金) 06:06:26メモ帳みたいにタイトルバーの文字列がコロコロ変わるようなウィンドウを見つけ出したいのです。
public void hoge(Process proc) {
IntPtr hWnd ;
if (proc.MainWindowHandle == IntPtr.Zero) {
hWnd = FindWindow(xxx, IntPtr.Zero); // ここで使いたいのですが。
} else {
hWnd = proc.MainWindowHandle;
}
[DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
0223デフォルトの名無しさん
2007/12/21(金) 06:44:470224デフォルトの名無しさん
2007/12/21(金) 07:17:430225デフォルトの名無しさん
2007/12/21(金) 07:34:56あれば名前を教えてください
0226デフォルトの名無しさん
2007/12/21(金) 07:53:590227デフォルトの名無しさん
2007/12/21(金) 08:08:02できました
ありがとうございます〜
0228デフォルトの名無しさん
2007/12/21(金) 09:27:00ウィンドハンドルが取れないウィンドなので使えないです…
C#ではウィンドクラス名を明示的に設定できないのでしょうか?
Spy++で見ると自動生成とおぼしき謎の文字列になっているのですが。
0229デフォルトの名無しさん
2007/12/21(金) 09:56:27HTTPで2ちゃんのdatファイルを取得してスレ表示
株価データをHTMLで取得してグラフ表示
これをWebBrowserコントロールでやってみろ
0230デフォルトの名無しさん
2007/12/21(金) 09:57:290231デフォルトの名無しさん
2007/12/21(金) 09:59:06199のどこにもそんな要件は挙がってないんだけど
ここってエスパースレだっけ?
0232デフォルトの名無しさん
2007/12/21(金) 10:00:020233デフォルトの名無しさん
2007/12/21(金) 10:01:480234デフォルトの名無しさん
2007/12/21(金) 10:03:51と考えるのは自然だろ
0235デフォルトの名無しさん
2007/12/21(金) 10:06:030236デフォルトの名無しさん
2007/12/21(金) 10:08:140237デフォルトの名無しさん
2007/12/21(金) 10:11:280238デフォルトの名無しさん
2007/12/21(金) 10:36:37.NET のコントロールは実行時に動的にクラス作ってサブクラス化するのでクラス名は静的には決定できない。
EnumWindows 使って GetWindowThreadProcessId で判定するとかしたら?
0239デフォルトの名無しさん
2007/12/21(金) 12:29:20WebBrowser でやるやらない以前の問題だ
0240デフォルトの名無しさん
2007/12/21(金) 12:35:050241デフォルトの名無しさん
2007/12/21(金) 12:40:230242デフォルトの名無しさん
2007/12/21(金) 12:41:380243デフォルトの名無しさん
2007/12/21(金) 12:43:240245デフォルトの名無しさん
2007/12/21(金) 14:29:450246デフォルトの名無しさん
2007/12/21(金) 17:30:040247デフォルトの名無しさん
2007/12/21(金) 18:43:12構造体を使ったことがないとほざくプログラマーに
C#を仕込むにはどうしたらいいでしょう
0248デフォルトの名無しさん
2007/12/21(金) 18:44:500249デフォルトの名無しさん
2007/12/21(金) 20:16:16VisualC#2005 Express Edition を使っていて、
using System.Windows.Input;
と書くと
エラー 1 型または名前空間名 'Input' は名前空間 'System.Windows' に
存在しません。アセンブリ参照が不足しています。
というエラーが出てしまいます。
なぜでしょうか?
0250デフォルトの名無しさん
2007/12/21(金) 20:18:56でもたぶんそれは使用しようとしてるクラスが間違ってる
0251デフォルトの名無しさん
2007/12/21(金) 20:24:13VisualC#2008Expressに移行してWPFアプリケーションにする
0252デフォルトの名無しさん
2007/12/21(金) 20:25:38要するに System.Windows.Input.Keyboard が使いたいんですが、
このためになにか参照設定しなきゃいけないですか?
0253デフォルトの名無しさん
2007/12/21(金) 20:26:240254デフォルトの名無しさん
2007/12/21(金) 20:27:31それが使いたいんだったらVS2008でないといけない
0255デフォルトの名無しさん
2007/12/21(金) 20:31:31http://msdn2.microsoft.com/ja-jp/library/system.windows.input.keyboard(VS.80).aspx
ここ見ると、.Net2.0でもKeyboardは使えるような気がするんですが見方が間違ってます?
では逆に、2005でキーボードの状態を取得するにはどうすればいいでしょうか?
0256255
2007/12/21(金) 20:34:24出直してきます。ありがとうございました。
0257デフォルトの名無しさん
2007/12/21(金) 20:34:53PresentationCore.dll は参照設定から見えるかな?
見えなかったら誘導しよう。
ついさっき設定やったばかりだし。
0258デフォルトの名無しさん
2007/12/21(金) 20:36:38Cider 入れれば 2005 からでも使えたような気がしたんだけどな。
0259デフォルトの名無しさん
2007/12/21(金) 20:38:512008Expressで.NET2.0をターゲットにしたアプリケーションも作れるし
0260デフォルトの名無しさん
2007/12/21(金) 20:43:06http://www.microsoft.com/downloads/details.aspx?FamilyId=7B645F3A-6D22-4548-A0D8-C2A27E1917F8
.net
0261デフォルトの名無しさん
2007/12/21(金) 20:53:03XPS版おもすぎ
本当にこんなもの実用に堪えるんかいな
0262デフォルトの名無しさん
2007/12/21(金) 21:08:37しかしメモリ消費が500Mってw
0263デフォルトの名無しさん
2007/12/21(金) 21:08:47数撃ちゃ当たるさ
0264255
2007/12/22(土) 00:28:05どーしても Keyboard.IsKeyDown()で押されているキーが取得できないので、
とうとうあきらめて GetKeyState() 使っちまいました w
イベント以外でキーの押下状態を取得するのは、どうするのが正当なんですかねぇ?
0265デフォルトの名無しさん
2007/12/22(土) 00:30:260266デフォルトの名無しさん
2007/12/22(土) 10:41:38アクセスの beforupdate にあたるイベントは何になるのでしょうか?
テキストボックスに文字を入力し、エンターキーが押されたときに自動的に処理を行いたいですが、やり方が判らず困っています
0267デフォルトの名無しさん
2007/12/22(土) 10:54:43// FormのAcceptButton設定してない限りEnterの入力も特別視されないぞ
0268デフォルトの名無しさん
2007/12/22(土) 15:04:39KeyDownで(e.KeyCode == Keys.Return)か?とか。
0269デフォルトの名無しさん
2007/12/22(土) 16:24:19複数削除がうまくいきません・・・ どうかご教示くださいませ。
0270デフォルトの名無しさん
2007/12/22(土) 16:27:16どううまくいかんのか書いてくれんと。
おそらく頭から消してるんだろうから、後ろから消していけ。
0271デフォルトの名無しさん
2007/12/22(土) 16:31:04けつから消したらindex番号も変わりませんね
即レス感謝です
0272デフォルトの名無しさん
2007/12/22(土) 17:52:22そういうのはさあ、普通削除するアイテムをリストなり配列なりにリストアップしといて
まとめて削除するのが定石ってもんでしょ。
こういうのはさ、知識というかパターンとして覚えることじゃなくて
だれが考えても普通の知能があればそうするって程度の話だと思うぞ
0273270
2007/12/22(土) 18:12:33頭固いね。
リストの後ろからGetSelected()で選択されているかどうかを調べて削除していけば、
わざわざリストなり配列なりを作らなくてもいいんだけど。
0274デフォルトの名無しさん
2007/12/22(土) 18:18:37そっちの方を「わざわざ」と感じるのがプログラマ的には正しい。というより普通。
残念だけど君がプログラマをやるには頭が悪すぎるだけだよそれは。
0275270
2007/12/22(土) 18:23:30定石に囚われて、それ以外の効率のいいアルゴリズムを考えようともしない奴が
プログラマのつもりなんだから世も末だな。
リストボックスから選択されているアイテムをリストアップしてリストを作って
そいつをまたループ回して一個ずつ削除するのと、
ループを後ろから回して選択されているアイテムをその場で消すのと、
どっちが効率がいいかぐらい普通の知能があれば分かりそうなもんだけどね。
0276デフォルトの名無しさん
2007/12/22(土) 18:31:30さすがにネタで言ってるよね?w
0278デフォルトの名無しさん
2007/12/22(土) 18:36:21どーせ冬厨だろ
0279デフォルトの名無しさん
2007/12/22(土) 18:39:53人間として終わってるとまでは言わないが、プログラマとしては始まってすらいないな。
突っ込みどころはいろいろあるんだけど一つだけ。
たぶんVB上がりの人とかじゃないかと推測するけど、そもそも先頭からとかケツからとか
いう話はコレクション内のインデックスを指定して削除することを前提としてるんだと思うが、
そもそもそこからしてちょっと変なんだよ。
君の言葉を返せば「頭が固い」。
俺流に言えば「馬鹿の一つ覚え」。
0280デフォルトの名無しさん
2007/12/22(土) 18:40:42最速を求めるコーディングをしようとするほうが効率悪い。
0281デフォルトの名無しさん
2007/12/22(土) 18:46:37リストボックスのObjectCollectionに、まとめてアイテムを削除するって機能あったっけ?
ttp://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listbox.objectcollection.aspx
0282デフォルトの名無しさん
2007/12/22(土) 18:50:45って意図で書いたわけではないよ。
0283270
2007/12/22(土) 18:53:00ごたくはいいから、書いてみなって。
>>280
そりゃまあ、確かにそういうことも多いけどね。
でも、ちりも積もれば山となる、だ。
0284281
2007/12/22(土) 18:55:46なんだその程度の話か。
だったら事前にリストアップしようがしまいが後ろからインデックス指定で消していくのは変わらんわけで
お互い好きにすればって感じだ。
0285デフォルトの名無しさん
2007/12/22(土) 18:58:02おい本気で言ってるの?
だからインデックス指定ってw
0287デフォルトの名無しさん
2007/12/22(土) 19:00:420288270
2007/12/22(土) 19:03:41言っとくけど、Remove()ってのはコレクションの中を「検索」して消してるんだよ?
最初から位置が分かってるならRemoveAt()の方がはるかに効率がいいんだよ?
それを知ってる上で、人に「馬鹿の一つ覚え」て言ってんの???
0289デフォルトの名無しさん
2007/12/22(土) 19:08:37わかったわかった。もう勝手にすれば?
ただ、そこまで俺流にこだわるなら君こそ実際に両方のやり方のコードを書いてみたら?
そしてここに晒してみ?
どっちがより直観的に読めるコードになるかね果たして。
それと、まあどうでもいいんだが俺はパフォーマンスの観点から物をいってないよ。
既に誰か書いてるけど、今時のCPUからしたらどのみちどんなやり方しようと
たいした問題ではないからね普通はそんなの。
0290270
2007/12/22(土) 19:13:23そういうだろうと思ったから、ちょうど書いていたところだ。
list がリストボックスな。
ListBox.ObjectCollection obj = list.Items;
for (int i=obj.Count-1; i>=0; i--) {
if (list.GetSelected(i)) {
obj.RemoveAt(i);
}
}
だから、あんたも定石で書いてくれよ。直感的に分かるコードでね。
で、俺は「今時のCPUからしたらどのみちどんなやり方しようと
たいした問題ではないからね普通はそんなの。」
って考え方は嫌いなんだわ。
一つ一つは大した問題でなくともそいつが重なれば大きくなっていく。
今時のCPUでももっさりしてるプログラムが多いのは、こういう慢心が
原因だと思うよ。
0291デフォルトの名無しさん
2007/12/22(土) 19:13:57いい言語なのになぁ・・・
0292デフォルトの名無しさん
2007/12/22(土) 19:14:50直感的なわかりやすさ何て問題か?
どちらにしたって、コメント一行で終わりだろw
0293デフォルトの名無しさん
2007/12/22(土) 19:17:19ColumnHeader A = new ColumnHeader();
ColumnHeader B = new ColumnHeader();
ColumnHeader C = new ColumnHeader();
...
こんな具合でA列B列C列・・・とあり、ここにデータが追加された状態で、
ある行をクリックするとその行の特定列の情報を得たいです。
private void listView1_SelectedIndexChanged(object sender, EventArgs e){}
こいつの中でうまくやればいいのはわかるのですがいまいち他コントロールとは勝手が違う為よくわからないでいます
|A|B|C|
|.1|.2|.3|
|.4|.5|.6|
|.7|.8|.9|
...
こんな具合で2行目をクリックすると4,5,6部分が選択され、例えばその中のB列にある5を取得するといったかんじです
それではよろしくお願いします
0294デフォルトの名無しさん
2007/12/22(土) 19:17:34悪いけどそれトーシローの発想だよ。
そいつか重なれば、ってその操作はμsecオーダーで何度も実行されるケースがあるの?w
そうでなければ「重なり」ようがないだろう。
小学生でもわかる理屈だよ。
っていうか、そんなに(くだらないことに)こだわるなら実際両方やってパフォーマンス測定してみろってw
俺はそんなわかりきったことやるのはごめんだけどね。
0295270
2007/12/22(土) 19:20:29この処理に限らず、あらゆることでおまいさんは「今時のCPUは」って
エクスキューズするだろ?
そういうことを言ってんの。
まあ、ああだこうだと偉そうに言う割にはあんたの俺流のコードは書かないみたいだし、
もうどうでもいいや。
0296デフォルトの名無しさん
2007/12/22(土) 19:27:40書いてみたよ。
listBox1.SelectedIndices.OfType<int>().Reverse()
.ToList().ForEach(index => listBox1.Items.RemoveAt(index) );
直感的に読めるかどうかは知らんけど。
0297デフォルトの名無しさん
2007/12/22(土) 19:29:390298デフォルトの名無しさん
2007/12/22(土) 19:31:590299デフォルトの名無しさん
2007/12/22(土) 19:32:460300デフォルトの名無しさん
2007/12/22(土) 19:36:08listBox1.SelectedItems.OfType<object>()
.ToList().ForEach(obj => listBox1.Items.Remove(obj) );
あんま変わらん気がするw
0301デフォルトの名無しさん
2007/12/22(土) 19:40:25ToListってなんだよぶち殺すぞ
無駄な処理を書くな
0302デフォルトの名無しさん
2007/12/22(土) 19:41:42ミスの入り込む余地もないし最善のプログラムだと思うがね
0304デフォルトの名無しさん
2007/12/22(土) 19:47:58実行時に怒られたと思うんだけど、List<>::ForEach() は大丈夫なの?
0305デフォルトの名無しさん
2007/12/22(土) 19:50:170306デフォルトの名無しさん
2007/12/22(土) 19:51:46あ、よく見たらそうだなw
0307デフォルトの名無しさん
2007/12/22(土) 19:59:140308デフォルトの名無しさん
2007/12/22(土) 20:03:32素直にforeach文使ったほうが書きやすくて見やすい気がする
0309デフォルトの名無しさん
2007/12/22(土) 20:07:090310デフォルトの名無しさん
2007/12/22(土) 21:05:44大胆な言語仕様の変更だよなあ。俺は好きだけど。
0311デフォルトの名無しさん
2007/12/22(土) 21:10:220312デフォルトの名無しさん
2007/12/22(土) 21:12:370313デフォルトの名無しさん
2007/12/22(土) 21:29:29いやいや、>>313が一番バカだろ
0314デフォルトの名無しさん
2007/12/22(土) 21:30:02君の会社で隣でウンココード製造してる奴が見てるかもしれないじゃん。
まあ、そういう奴はたいてい他人から学んで「改心」したりしないけどさ。
俺ならやっぱり>>290みたいな(悪いけど)糞コードは書かないな。
標準的なプログラマならやっぱり普通こうじゃないの?
普段はあまり使わないけど行数ケチるためにあえてぶら下がり使うよ。
private void RemoveSelectedItems()
{
if (listBox1.SelectedItems.Count < 1) return;
List<object> removings = new List<object>();
foreach (object o in listBox1.SelectedItems) removings.Add(o);
foreach (object o in removings) listBox1.Items.Remove(o);
}
0316デフォルトの名無しさん
2007/12/22(土) 21:53:120317270
2007/12/22(土) 21:53:25いや、あの、それ、ネタだよな?
さっきのは冗長だったんで書き直すわ。
あわせて関数にしておこう。
private void RemoveSelectedItems()
{
for (int i=list.Items.Count-1; i>=0; i--) {
if (list.GetSelected(i)) list.Items.RemoveAt(i);
}
}
さて、どっちが直感的で効率的だろう?
0318デフォルトの名無しさん
2007/12/22(土) 22:01:45え?w
0319デフォルトの名無しさん
2007/12/22(土) 22:03:16うんまあ、そういうコードをより直観的(どうでもいいが「直感」じゃないよ)
だと思う気持ちは分からないでもない。
俺も昔そういう時代があったからね。
でも直観的、あるいは可読的っていうのは行数とか記述の簡潔さとは関係ないよ。
もちろん全く無関係でもないけど。
そういうコードが可読性の観点から劣ることに
納得的な説明を与えるのってなかなか難しいんだけど、一言で言えばそういうのは
読むのに余分に「頭使う」でしょ。
keep it simple, stupidっていうよく言われる原則に反する。
もちろんコードがこれだけの分量なら多少余分に頭使おうとどうってことない。
でも全部のコードがこの調子で書かれてたらかなわんよ。
君自身がいってるように「積み重なる」から。
0320デフォルトの名無しさん
2007/12/22(土) 22:04:300321デフォルトの名無しさん
2007/12/22(土) 22:05:290322270
2007/12/22(土) 22:08:18これで「頭使う」って言われてもなぁ。
めちゃめちゃシンプルで分かりやすいと思うけど、君にはわかりにくいんだね。
いちいち冗長なリスト作ってからじゃないとなにをしてるのか分からないんだね。
スマンかったよ。
0323デフォルトの名無しさん
2007/12/22(土) 22:08:39C#3.0 がリリースされて広まるにつれ、そのうち同一言語内でのバージョン違いによる
宗教論争が起こるよ。
ラムダ式やら何やらを前に、「スマートに書けて幸せ派」と「読めない&読みにくい派」と。
0324デフォルトの名無しさん
2007/12/22(土) 22:10:14はい終了
0325デフォルトの名無しさん
2007/12/22(土) 22:10:400326デフォルトの名無しさん
2007/12/22(土) 22:12:41よくある勘違いだね。
君はコードを検証的に(要はデバッグ)よむ場合を想定してないんだよ。
コメントなんか書いてあってもコードの正しさは保障されないだろw
つまりコメントに書いてあることが「わかって」もコードが読みにくかったら何の意味もないだろって。
0327デフォルトの名無しさん
2007/12/22(土) 22:13:54気をつけないと濫用しちゃいそう
0328デフォルトの名無しさん
2007/12/22(土) 22:18:55C++も通った道。
そっちはそっちでC++0xでまた同じ道を繰り返しそうな予感だが。
0329デフォルトの名無しさん
2007/12/22(土) 22:22:27コメントなんて、コードの正しさを保証するために書いてるわけじゃないだろw
検証的に読む場面で、何で逆でループ回してるのか一言コメントが残ってれば、
その考えの下でコードの正しさを検証できるだろ。今回の問題に限って言えば、
誰でもそれですぐに理解できるレベル。
0330デフォルトの名無しさん
2007/12/22(土) 22:29:34で、普通にforで書けばいい場所でもなんでもforeach。
俺にもそんな時期がありました。
0331デフォルトの名無しさん
2007/12/22(土) 22:31:51要素へのアクセス順序が問題にならず、全ての要素を処理する場面では、
foreach を利用するのは正しい。
0332デフォルトの名無しさん
2007/12/22(土) 23:20:38どっちのいってることもわからないでもないけど、
今回のようなものじゃどっちでもいいレベル。
ってかどっちがいいともいえない。
まあインデックスリストから逆順で消すなんてのは
定石といってもいい手法だから、このレベルなら毛嫌いするほどでもない。
このやり方だけで、こんなことやるやつは云々なんて判断できるやつはおかしい。
これだけじゃなんも判断できんよ。
0333デフォルトの名無しさん
2007/12/22(土) 23:23:15そりゃそうなんだけど、こういう場合みたいに素直にインデクスを使った方がいい場合とかね。
ところで>>314に聞きたいんだけど、もしこれがリストコントロールではなくて
万単位のアイテムを持つコレクションで、そのうちのある条件に当てはまるアイテムを
削除したい、なんて場合にもこんな書き方するの?
0334デフォルトの名無しさん
2007/12/22(土) 23:25:20頭悪いの?ちょっと上にケース次第っていっぱい書いてあるでしょ?
0335デフォルトの名無しさん
2007/12/22(土) 23:29:38パフォーマンスが優先されるべき場面でそれを優先することにはもちろん異論ないんだよ。
プログラミングっていうのは問題解決の手段なんだから。
ユーザビリティーが低下するんじゃ問題解決にならないよ。
ただ、揚げ足取りかもしれないが、万のオーダーじゃ10年前のPenIIのPCでも
問題にならない処理じゃないの?
0336デフォルトの名無しさん
2007/12/23(日) 00:00:47シンプルな質問と答えで完結したのに。
>>272
バカしね
0337側近中の側近 ◆0351148456
2007/12/23(日) 00:01:00(っ´▽`)っ
CODE COMPLETEという名著がある。
君にお勧めするよ。
特に下巻。パフォーマンスの考え方について書かれてるよ。
>一つ一つは大した問題でなくともそいつが重なれば大きくなっていく。
この考え方が20世紀後半にスパゲッティコードが大量生産された原因だよ。
|▽`)っ っていうか、パフォーマンスをそんなに気にするならC#選ばないだろう・・・。
0338側近中の側近 ◆0351148456
2007/12/23(日) 00:22:14個人的な感想☆
>>290
(っ´▽`)っ
ど〜してインデックスを降順に読んでるの?
forって普通昇順でしょ?
まあ、消せば1個ずつずれてくから当然といりゃ当然だが
コメントがないと一瞬悩むよね。
>>314
(っ´▽`)っ
ど〜してremovingsなんて変数を用意してるの?
直接消せばいいじゃん。
何か裏があるんじゃないの?
って疑心暗鬼にとらわれてしまう。
(っ´▽`)っ やっぱりコメントだよね☆コメントが大事☆
0339デフォルトの名無しさん
2007/12/23(日) 00:22:48それとテキストボックスのフォントサイズを変えたいのですがtextBox1.Font.Size()あたりは見当違いですか?
0340デフォルトの名無しさん
2007/12/23(日) 00:32:56>ど〜してremovingsなんて変数を用意してるの?
>直接消せばいいじゃん。
>何か裏があるんじゃないの?
>って疑心暗鬼にとらわれてしまう
そんな奴はいないでしょw
というか、列挙してるコレクションを(間接的にであれ)操作したらマズいことぐらい
理解できない人がプログラマやってはダメだと思う。
というか、こういう訳のわからんHNやAA多用する幼稚な奴って大嫌い
喩えや誇張じゃなく本当に精神病んでると思う
0341デフォルトの名無しさん
2007/12/23(日) 00:33:05.Text += で連結するとスクロールしないみたいだけど。
.AppendText()するとスクロールするね。
フォントサイズ変えるにはサイズの違うフォントを新しく作って
Fontプロパティに設定する
0342デフォルトの名無しさん
2007/12/23(日) 00:33:060343デフォルトの名無しさん
2007/12/23(日) 00:36:05馬鹿コテもでてくるわ
雪は降るわ
もう大変です
0344デフォルトの名無しさん
2007/12/23(日) 00:36:35ありがとうございます。
スクロールの方は改行とあわせて+=してひとまとめにしてみます
フォントは直接いじれるもんだと思ってました、さっそくしらべてみます
0345デフォルトの名無しさん
2007/12/23(日) 00:41:22関東はまだ雪になってない
ひさしぶりに雪見たいな
0346デフォルトの名無しさん
2007/12/23(日) 00:50:56ただこれをどういうケースで使うのかが理解できていません。
どんな時に皆さんはデリゲートを使っているのでしょうか?
0347側近中の側近 ◆0351148456
2007/12/23(日) 00:52:19(っ´▽`)っ
>そんな奴はいないでしょw
いや、むしろメンバ削除にいちいちforeach使う人のほうが希少なんじゃないか?
「列挙してるコレクションを(間接的にであれ)操作したらマズい」から、
forを使うとかは考えないの?
確かに、>>331のとおりforeachを使う目的というのはある。
しかし、使ったらいけない場合もある。それがこの場合なのでは?
もし、貴方のプロジェクトにC#文法に疎い人が入ってきて、
removingsが何のためにあるのかわからず削除しちゃったらどうするの?
(まあ、コンパイル時に警告出ると思うけど)
「列挙してるコレクションを(間接的にであれ)操作したらマズいことぐらい
理解できない人がプログラマやってはダメだと思う。」
と言って、そもそもメンバ削除にforeachを使ってしまった自分に責任はないとでも言うのか?
防御的プログラミングというのがある。これは将来、バグを生み出さないつくりとすること。
それができてないような気がする。
0348側近中の側近 ◆0351148456
2007/12/23(日) 00:54:49(っ´▽`)っ
防御的プログラミングの意味の補足。
将来ではなく、現在も含めバグを生み出さないつくりとすること。
つまり、簡単に言ってしまえば、性悪説を基につくるってことだよ。
0350デフォルトの名無しさん
2007/12/23(日) 01:05:48Form デザイナ使わずに、Form に Button なり何なりを配置して、
クリックしたらメッセージか何か表示するようなアプリを自力で
書いてみればわかるよ!
0351デフォルトの名無しさん
2007/12/23(日) 01:15:42今回の問題では、インデックスを使って逆順で削除っていう指針がいいとは思う。
だけど、 >>314 の指針がそうじゃなくて、 >>331 の条件には合致してる以上、
「なんでもforeach」 っていう煽りはおかしいと言ったんだよ。
foreach が使いたくてこういう指針を取るほど >>314 はバカではないと
決めつけてかかったが、まさか、それを言っているのか?w
0352側近中の側近 ◆0351148456
2007/12/23(日) 01:24:05>>314には>>317と比べると大きな欠点が一つある。
削除対象検索と削除を分けていること。
これがどういう欠点を生むかわかるよね?
今は、削除対象検索の直後に削除をやってるから問題ない。
ただ、保守していく上で削除対象検索の後に何か処理を入れられたらどうする?
2,3行ではなく、数百行ものコードを入れられたら。たとえば、「削除前処理」みたいなもの。
最悪の場合、removingsの内容が書き加えられることも考えられる。
そうなれば削除対象検索の結果を削除するという当初の目的を達成できなくなる。
そうならなくても、削除対象検索と削除が大分離れ、わかりづらくなる。
0353デフォルトの名無しさん
2007/12/23(日) 01:24:25>forって普通昇順でしょ?
downto が存在する世界から入った俺にとっては妙な違和感
0354デフォルトの名無しさん
2007/12/23(日) 01:26:19脱落者
>>353
0355デフォルトの名無しさん
2007/12/23(日) 01:27:10よくわからん発想だなあ。。
「いちいち(インデックスを使う)for」ならわかるが「いちいちforeach」ってなんなんだよ。
というか、言ってること矛盾してるよ。
列挙しているコレクションのアイテムを削除することがまずい、少なくとも
トリッキーであることを認めるのなら、「インデックスの列挙」だって同じことだと分かるだろ。
もちろん>>290程度のトリッキーさは「たいしたことはない」ことは俺も認めるが、
他にもっとシンプルな方法があるのならそちらの方法を採用するのが君のいう
予防的プログラミングでもあるじゃないの?
0356側近中の側近 ◆0351148456
2007/12/23(日) 01:28:11ちなみに(っ´▽`)っは中立だからな。
コンストラクションにはいろいろな考え方がある。
(っ´▽`)っは、とっても素直な良い子だから感じたことを言ってるまでだよ☆
どっちが正しいとかはないと思う。
>>352だって、逆手に取れば、削除前処理を入れられるわけだし。
ただ、諸刃の剣だね。
0357デフォルトの名無しさん
2007/12/23(日) 01:31:13意味わからん。何がいいたいんだこの幼稚君は
0358デフォルトの名無しさん
2007/12/23(日) 01:39:250359デフォルトの名無しさん
2007/12/23(日) 01:41:58あぶねー、5行も投下するところだった。
0360側近中の側近 ◆0351148456
2007/12/23(日) 01:46:58(っ´▽`)っ
>インデックスの列挙
どっから出てきた?
>>290は列挙じゃないと思うんだけど。
コレクションに対する正当なアクセスでしょ。
>>>290程度のトリッキー
>>314も十分トリッキーだと思いますが。
どうしてそこまでforeachにこだわる?
0361側近中の側近 ◆0351148456
2007/12/23(日) 01:53:12>>314の「まあ、そういう奴はたいてい他人から学んで「改心」したりしないけどさ。」
って、>>314自身だったりして・・・
批判されると>>340みたいに
「喩えや誇張じゃなく本当に精神病んでると思う」んでしょ?
0362デフォルトの名無しさん
2007/12/23(日) 02:04:12foreachになんかこだわってないんだよ。
シンプルさにこだわってるの。
というか、「手続き抽象」ってことの意味が分かってない人間が
こんなにいるとは思ってもみなかったよ。
小学校のころ算数ができなかった子がプログラマになってるのかな。
抽象的な話が苦手なら(計算問題を買い物の問題に置き換えるように)具体例に置きかえればいい。
例えば住所録から今年は年賀状を送らない人間を削除する場合、
どういう手続きでやるか考えてみれば?
>>361
いや、別に俺が批判されてもされなくても君は間違いなくキチガイだよ。
この手合いは例外なく「俺はキチガイのふりをしているだけ」だと思ってるようだが、
そんなくだらない動機を持つこと自体が既に幾分かかなりか狂ってる、
という事実に気づかないみたいだね。
0363側近中の側近 ◆0351148456
2007/12/23(日) 02:04:21しかも、>>290の悪い点も「具体的に」上げずに、
アルゴリズムとか何とか言って、ただ
「人間として終わってるとまでは言わないが、プログラマとしては始まってすらいないな。」
「俺ならやっぱり>>290みたいな(悪いけど)糞コードは書かないな。」
って言ってる時点で「他人から学んで「改心」したりしない」んでしょうな。
はっきり言って、プロジェクト運営上障害となる人物です。
(っ´▽`)っ ・・・もしや釣り?
0364デフォルトの名無しさん
2007/12/23(日) 02:06:36>理解できない人がプログラマやってはダメだと思う。
だから逆順で解決してるか別で取り出して操作することで解決してるか
解法の違いなだけだろ。
何度も言うがこの程度の処理じゃどっちが怪しいが判断つかんわ。
まあ俺はどっちかって言うと、ごく簡単で定石的なやり方ですむのに
余計な処理を増やすのは好みじゃないけどな。
逆順で処理とかじゃなくてもっとトリッキーなことをするなら意見は変わってくるけど。
0365デフォルトの名無しさん
2007/12/23(日) 02:09:07↓こちらでどうぞ
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
0366デフォルトの名無しさん
2007/12/23(日) 02:09:57>どういう手続きでやるか考えてみれば?
何が言いたいのかわからんぞ、あんまり変な方に持ってかないほうがいいと思うがな。
クイックソートなんて書くやつは馬鹿だ、とは思わんだろ?
0367側近中の側近 ◆0351148456
2007/12/23(日) 02:11:27(っ´▽`)っ
だから、>>314はそれほどシンプルじゃないって。
>例えば住所録から今年は年賀状を送らない人間を削除する場合、
>どういう手続きでやるか考えてみれば?
少なくとも>>314みたいに削除対象検索と削除を別々には行わないと思います☆
いちいち人の名前またはページ番号をどっかに記録しておいて(削除対象検索)、
全部見終わってから、もう一回探して削除したりはしないと思います。
0368デフォルトの名無しさん
2007/12/23(日) 02:13:450369デフォルトの名無しさん
2007/12/23(日) 02:13:52じゃあ補足。
普通はまず「削除する人のリスト」を紙に書き出すでしょ。
抽象的に言えば「削除対象のリストアップ」。
つまりそれが人の思考に親和的な方法だってこと。
0370側近中の側近 ◆0351148456
2007/12/23(日) 02:16:45っていうか、この人は現場の人間じゃないでしょ?
現場にこんな自己中心的、他者排除の考えの人がいたら
他のメンバみなキレるでしょ。
だって、「君は間違いなくキチガイ」って言うんだからな。
・・・いや、それがまかり通るのがSE業界だね☆
>>369
(っ´▽`)っ
・・・本当にそんなやり方するの?非効率じゃないか?
紙に書き出して、その後消すかどうか再考するなら別だよ?
その再考こそ前述の「削除前処理」なんだが。
0371デフォルトの名無しさん
2007/12/23(日) 02:22:01「削除対象のリストアップ」という風に抽象化することが
人間の思考に親和的である点は間違ってないと思うけど。
0372デフォルトの名無しさん
2007/12/23(日) 02:24:06少なくともなんらかでマークされてる状態だ。
だったらそのまま順番に見ていってマークされてたら抜き出すのが人間の思考だ。
プログラムではそう単純な思ったとおりの処理ができないから、
それを解決するために、逆順とかいったんコレクションに取り出すとかするわけだ。
だから、現実の人間の思考とか、そういう方向で説明しようとすると
おかしくなるんだよ。
少なくとも普遍的な説明には向かない。
だからそういう変なやり方で説得しようとするのはやめたほうがいいって言ってる。
0373側近中の側近 ◆0351148456
2007/12/23(日) 02:28:07>>372
そうだね☆こんなの昔なんかの本で見た。
4つの長さの違う棒がある。
人間にとって、長いほうから順番に並べるのはすごく容易だ。
しかし、コンピュータにその処理をさせるとなると難しいと。
それこそソート処理の難しさなんですが。
(っ´▽`)っ
しおんの王始まったので止め☆
0374デフォルトの名無しさん
2007/12/23(日) 02:29:180375デフォルトの名無しさん
2007/12/23(日) 02:32:050376デフォルトの名無しさん
2007/12/23(日) 02:36:03非常に効率が悪かったりすることが多いから、
出来るだけforeachを使うようにしているけど、
この場合はそういうワケじゃないんだ。
0377デフォルトの名無しさん
2007/12/23(日) 02:38:53アイテムの直削除は効率いいのかな?
実際どういうやり方が効率いいんだろ?
0378デフォルトの名無しさん
2007/12/23(日) 05:27:03AAA
BBB
AAA
というデータの3件目に対してRemove("AAA")とやったら1件目が消えてしまう問題がある。
RemoveRangeとか範囲で消せるメソッドがない以上RemoveAtがいいんじゃない。
複数件追加や削除するならBeginUpdate/EndUpdateを入れとくほうがより大事だと思う。
>>376
.NETの1.0か1.1のListBoxの場合はforeachが圧倒的に速かった記憶があるが今は差はないなぁ。
0379デフォルトの名無しさん
2007/12/23(日) 06:41:391.1のContextMenuにあるOnPopupに相当するメソッドはどれですか?
0380デフォルトの名無しさん
2007/12/23(日) 07:01:15Opening/OnOpeningあたりかな
0381デフォルトの名無しさん
2007/12/23(日) 07:10:52ありがとうございます。
うごきました。
0382デフォルトの名無しさん
2007/12/23(日) 07:17:31正直初心者の俺には理解できなかったので
話に参加できなかったのが悔しかったです
0383デフォルトの名無しさん
2007/12/23(日) 07:28:07俺はオッパイ揉みめてなくて悔しい
0384デフォルトの名無しさん
2007/12/23(日) 07:31:220385デフォルトの名無しさん
2007/12/23(日) 07:33:01良く悔しさが現れてるじゃないかw
0386デフォルトの名無しさん
2007/12/23(日) 08:05:100387デフォルトの名無しさん
2007/12/23(日) 08:12:330388デフォルトの名無しさん
2007/12/23(日) 08:13:250389デフォルトの名無しさん
2007/12/23(日) 08:35:18forの逆順ループぐらいで「トリッキー」なんて言っちゃうことに時代を感じた。
0390側近中の側近 ◆0351148456
2007/12/23(日) 08:58:33(っ´▽`)っ かわいいっ♥(抱
(っ´▽:(;゙゚'ω゚'):
0391デフォルトの名無しさん
2007/12/23(日) 09:27:06そりゃ悪いけど君が時代ボケしてるだけw
入った時代をいうならこっちはN-BASICすらなかった時代からやってるっつーに。
人の能力は変わってないのに時間あたりに読んで理解する必要があるコードの量が
何倍になってると思ってるんだよ。
要は人間様の貴重な時間を浪費させるようなコード書くな馬鹿、って話だよ。
先進国ではマンパワーが一番高価だってことがわかってんのかね。
0392デフォルトの名無しさん
2007/12/23(日) 09:31:10むしろコードの量を増やしておいてそれを言うか w
だから、逆順ループで削除なんて考えるまでも無く一瞬で理解できる定石だっつーの。
多分、凝り固まった変な原理主義者の先輩から教えられて来たんだろうな。
うちの会社にもそういう奴いたわ。
0393デフォルトの名無しさん
2007/12/23(日) 09:35:24Castでいい。
0394デフォルトの名無しさん
2007/12/23(日) 09:36:58選択してるから矛盾してるだろ
SelectedIndexesのケツからRemoveAtでいいじゃない
0395デフォルトの名無しさん
2007/12/23(日) 09:38:02SelectedIndexes のケツから見るにはどうするのかな?
0396デフォルトの名無しさん
2007/12/23(日) 09:41:430397デフォルトの名無しさん
2007/12/23(日) 09:44:43そこはそもそも「パフォーマンスが大事」という前提が間違ってるから問題ない。
むしろ指摘する必要があるのは、考え方の不自然さだよ。
なぜ(削除すべきアイテムは処理前に既に確定してるのに)全検索する必要があるのか、という。
もっとも、それも恐らく(SelectedIndexesのクローンを作ってソートする手順を削って)行数ケチってる
(そんなことして他人に言い負けたくないのか知らんが)だけだから、指摘する意味は薄いかもしれん。
0398デフォルトの名無しさん
2007/12/23(日) 09:51:13ソートされてる。昇順でな。
だから、ケツから見るにはいずれにしても逆から見なきゃいけないだろ?
>>397
削れる手順は削るべきもんだろう?
ソートするまでもなくインデクスは昇順に並んでいるのは分かってるのだから、
わざわざそれを取り出してリストに入れてソートして、という余計な手順を
入れるほうがよほど不自然だろうに。
「言い負けたくない」のはおまいさんだろうに。
つうかね、
foreach (object o in listBox1.SelectedItems) removings.Add(o);
って実質的に全検索じゃないの? w
0399デフォルトの名無しさん
2007/12/23(日) 09:58:58頭悪いなあ。。
だからパフォーマンスの観点から、あるいは「CPUの視点から」自然不自然を言っているのではない。
あくまで人間の視点で、その考え方が自然かどうかを問題にしているんだよ。
0400デフォルトの名無しさん
2007/12/23(日) 09:59:33>>296
>>300
>>314
>>317
このうちどれがベストか投票っつーのはどうよ?
個人的には>>296のぐちゃぐちゃっぷりが好きだ w
0401デフォルトの名無しさん
2007/12/23(日) 10:04:560402側近中の側近 ◆0351148456
2007/12/23(日) 10:06:42(っ´▽`)っ
>>314は一度他のプロジェクトが作ったソースを読んで
自分のコーディング手法について考えてみたほうがいい。
このままだと将来誰もついてこなくなるよ。
他の人の考えを一切合切拒絶する人っぽいから。
0403デフォルトの名無しさん
2007/12/23(日) 10:08:00それはそれを見る人間の頭の出来の問題だぞ。
ソートされてるリストをケツから削除する、ということは、
それを理解してる人間から見たら全く以って自然だろ。
おまえさんが必死で言うほど、不自然だと思ってる奴がどれぐらいいる?
自然か不自然かという尺度の問題を言ってるなら、そんなもん
人によって感じ方は違うだろう。
おまいさんの感じ方が万人に通用すると本気で思ってるのか?
0404側近中の側近 ◆0351148456
2007/12/23(日) 10:09:21>ソートされてるリストをケツから削除する、ということは、
>それを理解してる人間から見たら全く以って自然だろ。
(っ´▽`)っは自然だと思う。
0405デフォルトの名無しさん
2007/12/23(日) 10:10:500406デフォルトの名無しさん
2007/12/23(日) 10:20:01今話てんのは、ソコじゃないだろw
0407デフォルトの名無しさん
2007/12/23(日) 10:49:15進化してきたし、そのようにプログラミングすべきってのはわかる。一般論として。
ただ、人間の思考に沿わない部分をすり合わせするのがプログラマの存在意義だ。
彼らの大部分が一瞬で理解可能で効率がよい手法であれば、普通とかトリッキーとか
何でそんな議論になるのかわからん。
0408デフォルトの名無しさん
2007/12/23(日) 10:54:13while (n < Items.Count)
{
if (Items[n].Selected)
{
Items.RemoveAt(n);
}
else
{
++n;
}
}
0409デフォルトの名無しさん
2007/12/23(日) 11:45:57何度も言うけど絶対評価でダメとまでは言ってない。
確かに大部分の人は290のようはコードでも理解して意図を読み取るのに
そんなに時間は掛からないと俺も思うよ。俺自身そうだし。
ただ相対評価としてダメって言ってるだけだね。
もっと処理を抽象化した(つまり「何をしてるのか」を人語に翻訳しやすい)
分かりやすい書き方があるだろう、ってね。
それとこれはちょっと言い掛かりっぽいかなとも思ったから全く言ってないけど、
>>290のようなコードは「リストからアイテムを削除した場合、それより後ろのアイテムが前に詰められるだけ」
という前提に暗黙的に立っているわけだけど、これもどうなの?
まあこれはやっぱり言い掛かりかもしれん……。
0410デフォルトの名無しさん
2007/12/23(日) 11:51:38仕事で使うときでもみんながC#マスターとは限らないんじゃないか?
0411デフォルトの名無しさん
2007/12/23(日) 11:53:49C#でできますか?
0412デフォルトの名無しさん
2007/12/23(日) 11:56:120413デフォルトの名無しさん
2007/12/23(日) 11:57:450414デフォルトの名無しさん
2007/12/23(日) 12:11:58Sortedプロパティを設定してない限り順序は保証される。
仮に処理が完全に終わるまで前につまらない場合でも
カウンタを1ずつ減らしているので問題はない。
WPFのListBoxが実はそういう動きをしている。
0415デフォルトの名無しさん
2007/12/23(日) 12:18:03> 分かりやすい書き方
これが「わかりにくい」とする基準がどうしてもよくわからんわ。
一体どの程度の知能程度を対象としてるんだ?
正直、これがわかりにくいと思うような人間がプログラマやるのは向いてないと思うぞ。
周りのプログラマに両方のソース見せて聞いてみな。
逆ループがわかりにくいなんて言ったら笑われると思うけど。
なんでもかんでも抽象化してわかりやすい書き方をするって言う奴は、
ロジックをちゃんと抽象化できずに泥臭く書くことしかできないことの
言い訳にしてるんだわ。
むしろ過度な抽象化によって煩雑でロジックの本質からかけ離れたことを
していることに気づいてない。
物事には、ホドホドってものがあるんだよ。
0416デフォルトの名無しさん
2007/12/23(日) 12:24:26誕生日だってのにひっぱり回されて仕事したり
つまんないおっさんに面会したり
あほな群衆に手を振らなくちゃならない御方だっているのに
誕生日くらいゆっくりさせてやれよ
0417デフォルトの名無しさん
2007/12/23(日) 12:26:03>「リストからアイテムを削除した場合、それより後ろのアイテムが前に詰められるだけ」
を前提にするならこういう手もある。
int i;
while ((i = listBox1.SelectedIndex) >= 0) listBox1.Items.RemoveAt(i);
0418デフォルトの名無しさん
2007/12/23(日) 12:26:39削除してもソート順は変化しないからSortedプロパティは関係なくね?
0419デフォルトの名無しさん
2007/12/23(日) 12:35:08うみゅ、関係ないね。
0420デフォルトの名無しさん
2007/12/23(日) 12:38:15同じ場所で定義された匿名メソッドであれば常に同じと考えていいのでしょうか
クラスが生成された場合にターゲットのインスタンスが異なることがあるのはわかりますが
0421デフォルトの名無しさん
2007/12/23(日) 12:43:47同じとみなしてよい。Equalsや==はオーバーライドされてて真となる。
心配してるのはしたのケースでしょ?
hoge.Event += new MyDelegate(Func);
hoge.Event -= new MyDelegate(Func);
0422デフォルトの名無しさん
2007/12/23(日) 12:44:42>なんでもかんでも抽象化してわかりやすい書き方をするって言う奴は、
>ロジックをちゃんと抽象化できずに泥臭く書くことしかできないことの
>言い訳にしてるんだわ。
こういうのって「日本語でおk」って言うんじゃないの?
というか、「ロジックをちゃんと抽象化できずに泥臭く書く」というのは
>>290のようなコードのことをいう。
そんなことはない、というのなら>>290のコードを人語に翻訳してみな。
だから、あくまで相対的にではるが問題があると言ってるんだよ。
0423デフォルトの名無しさん
2007/12/23(日) 12:49:09インデクスが変化しないようにするため、リストの後ろから選択されている
アイテムを削除する。
これ以上、どうややこしく翻訳しろと?
0424デフォルトの名無しさん
2007/12/23(日) 12:53:27『「削除リスト」にリストアップされたアイテムを削除』の方がよりカンタンだ、
と言ってるだけだよ。
0425デフォルトの名無しさん
2007/12/23(日) 12:53:34む、ごめん。匿名メソッドの話だった。>>421は間違い。
staticでない以上、例えメンバや外のスコープの変数を参照してなくても
インスタンスが違えば別のデリゲートになるはず。
0426デフォルトの名無しさん
2007/12/23(日) 13:00:00重要なところをはしょって無理やり簡単に言おうと思えばなんとでもなるわ w
より正確に書くなら、
「選択リストから削除リストを作り、削除リストを元にリストからアイテムを削除」
だろ。「人語に翻訳」なんて曖昧な基準で決め付けるなよ。
ここまでの流れで、お前以外誰一人として>>290が分かりにくいなんて言ってるのは
いないって事実が、なによりよく物語ってるわな。
要するに、おまいさんは自分の考えが完全に正しくて、他人がどうしようと全部それは
ダメなんだろ?
正直、こういうやつが自分のチームにいたらタマラんと思うわ。
0427420
2007/12/23(日) 13:03:31同じ場所で定義された匿名メソッドに対して
2つ以上のメソッドが生成されることはありえないのかという意味です。
0428デフォルトの名無しさん
2007/12/23(日) 13:19:09頭悪いなあ。。
君のような思考は一般に「ダブルスターンダード」と呼ばれる。
早い話が>>423も「重要なところをはしょって無理やり簡単に言」っているのが分からないの?
0429デフォルトの名無しさん
2007/12/23(日) 13:20:54こっちの誤爆?
http://pc11.2ch.net/test/read.cgi/tech/1179394713/
0430デフォルトの名無しさん
2007/12/23(日) 13:25:080431デフォルトの名無しさん
2007/12/23(日) 13:27:49これで間違いようがない
0432デフォルトの名無しさん
2007/12/23(日) 13:27:54お前がそれを言うか w
では、そのはしょってる重要なところを言ってみな。
ちなみに、あんたの解法では、もし同じアイテムが複数入っていたらうまく動かないって
ことは理解できてるよな?
つまり細かい前提事項まで全部書き出せばいくらでも複雑に言うことができるし、
簡単に言おうと思えばどちらも「選択されたアイテムを削除する」に収斂するんだよ。
要するに、おまえさんの言ってる「わかりにくい」とか「わかりやすい」の基準が
単におまえさんの脳内基準でしかなく、それがたまたまちょっと他人とはズレてる
ってことなんだよ。
他人の頭が悪いと思う前に、それが理解できない自分の頭の程度を冷静に
考えた方がいいと思うよ。
0433デフォルトの名無しさん
2007/12/23(日) 13:34:22おーっと、そもそもRemove使うのは妥当じゃないっていう意見が出てまいりました。
こりゃ、さらに冗長なコードが生成されるな。
0434デフォルトの名無しさん
2007/12/23(日) 13:36:010435デフォルトの名無しさん
2007/12/23(日) 13:36:15踊り子さんもがんばったと思うけどもう飽きてきたよ
0436デフォルトの名無しさん
2007/12/23(日) 13:38:54どの主張とどの主張がダブルスタンダードなのか、簡潔に指摘してほしいところだよなw
0437デフォルトの名無しさん
2007/12/23(日) 13:42:51>>434
0438側近中の側近 ◆0351148456
2007/12/23(日) 13:43:19私のために喧嘩しないで☆
0439デフォルトの名無しさん
2007/12/23(日) 13:43:36this.listBox1.SelectionMode = SelectionMode.MultiExtended;
for (int i = 0; i < 100; ++i)
{
this.listBox1.Items.Add(odd);
this.listBox1.Items.Add(even);
}
こういうコードで3番目のOddを選んで消すと1番目のOddが消えるw
0440側近中の側近 ◆0351148456
2007/12/23(日) 13:45:05(っ´▽`)っ
いい加減に「頭悪いなあ。」とか言うのやめたほうがいいよ。
たとえどんなに正しいことを言ってても信頼性がなくなる。
0441デフォルトの名無しさん
2007/12/23(日) 13:45:06お前電話番号書いてあるから削除対称な
0442439
2007/12/23(日) 13:46:01this.listBox1.SelectionMode = SelectionMode.MultiExtended;
string odd = "Odd";
string even = "Even";
for (int i = 0; i < 100; ++i)
{
this.listBox1.Items.Add(odd);
this.listBox1.Items.Add(even);
}
0443側近中の側近 ◆0351148456
2007/12/23(日) 13:47:03ダブルスタンダードが悪いことなのかな?
コンストラクションは適材適所というか柔軟に考えないとダメだよ。
もちろん標準化も必要だけどね。
0444側近中の側近 ◆0351148456
2007/12/23(日) 13:48:22(っ´▽`)っ↑は電話番号じゃないもん☆
(っ´▽`)っのシリアルナンバーだもん
0445439
2007/12/23(日) 13:53:08連投スマソ。
this.listBox1.SelectionMode = SelectionMode.MultiExtended;
for (int i = 0; i < 100; ++i)
{
this.listBox1.Items.Add("Odd");
this.listBox1.Items.Add("Even");
}
0446デフォルトの名無しさん
2007/12/23(日) 13:59:28確かにその問題はあるね。
リストボックスに重複するアイテムが存在してかつアイテムの順序が意味を持つ場合は
>>314は使えない。
それは事実だから認める。
0447デフォルトの名無しさん
2007/12/23(日) 14:07:04クロージャが絡むとありえる。
0448デフォルトの名無しさん
2007/12/23(日) 14:08:22>突っ込みどころはいろいろあるんだけど一つだけ。
>たぶんVB上がりの人とかじゃないかと推測するけど、そもそも先頭からとかケツからとか
>いう話はコレクション内のインデックスを指定して削除することを前提としてるんだと思うが、
>そもそもそこからしてちょっと変なんだよ。
>君の言葉を返せば「頭が固い」。
>俺流に言えば「馬鹿の一つ覚え」。
0449デフォルトの名無しさん
2007/12/23(日) 14:11:200450デフォルトの名無しさん
2007/12/23(日) 14:13:19>リストボックスに重複するアイテムが存在してかつアイテムの順序が意味を持つ場合は
リストボックスに重複するアイテムが存在するだけで十分使えないと思うなぁ。
アイテムの順序が意味を持たなくても>>314のコードの実行後は
セレクションがぐちゃぐちゃになるというひどいユーザビリティー。
0451側近中の側近 ◆0351148456
2007/12/23(日) 14:22:53では、陪審員の皆さん。>>314に対する判決を☆
0452デフォルトの名無しさん
2007/12/23(日) 14:28:590453デフォルトの名無しさん
2007/12/23(日) 14:29:00その書き込みで確証が持てた。
お前って議論を第三者的な立場で眺めて、たまに一般論を持ち出してきて、
でもだから議論の進展に役立ってるわけでもなく、要するに的外れで、
ほんとどうしようもねーなw
0454デフォルトの名無しさん
2007/12/23(日) 14:30:43で、その問題を解決するには、どういうコードにするべきかね?
0455デフォルトの名無しさん
2007/12/23(日) 14:32:120456デフォルトの名無しさん
2007/12/23(日) 14:33:09ケツから消すよりつめる処理が余計に必要になる
0457デフォルトの名無しさん
2007/12/23(日) 14:33:21シンプルなのはダメなんだってさ。
アホでもわかるように懇切丁寧にグダグタとしつこく書かないと。
0458側近中の側近 ◆0351148456
2007/12/23(日) 14:33:21(っ´▽`)っ
被告人は発言を慎むように。
もう誰も貴方の意見に耳を傾けようとは思わんよ。
0459デフォルトの名無しさん
2007/12/23(日) 14:34:060460側近中の側近 ◆0351148456
2007/12/23(日) 14:36:05(っ´▽`)っ
ついでに言っておこう。
頭悪いなあ。
0461側近中の側近 ◆0351148456
2007/12/23(日) 14:37:16知らないならレスしないでください
に続く名言だね
0462デフォルトの名無しさん
2007/12/23(日) 14:37:340463デフォルトの名無しさん
2007/12/23(日) 14:38:22なあなあ、>>432でも重複アイテムについて指摘してるのに、
>>339が出るまで理解できなかったの?
で、その問題を解決するにはどう書けばいいのかコードを書いてくれよ。
ちゃんと人間にわかりやすい書き方で、逆ループを使わず、 RemoveAt() も使わずにさ。
ダブルスタンダードもなしでな。
0465デフォルトの名無しさん
2007/12/23(日) 14:39:310466デフォルトの名無しさん
2007/12/23(日) 14:39:50数バイトほどmemmov相当の処理が増える程度。
ListBoxの内部でやってる処理で気にする奴は馬鹿。
問題は1件ごとに詰める処理をやる前提であること、
WPFで使えなかったのよ(泣
0467側近中の側近 ◆0351148456
2007/12/23(日) 14:44:32>お前って議論を第三者的な立場で眺めて、たまに一般論を持ち出してきて、
>でもだから議論の進展に役立ってるわけでもなく、要するに的外れで、
っていうか、今日の未明からずっと貴方の指摘に対して
きちんとレスをしてきてるわけだけどね。
しかも、コテまでつけてだ。年賀状の見当違いな質問に対してもだ。
これで役に立たないとか的外れとか言ってる時点で
貴方は終わってるよ。
0468デフォルトの名無しさん
2007/12/23(日) 14:47:22野次馬なんで色々言わず一言だけ
>>314 レベルが低いのは君なんだから精進しなさいね
0469デフォルトの名無しさん
2007/12/23(日) 14:57:15そうなのかよ
馬鹿で悪かったなちくしょう
0470デフォルトの名無しさん
2007/12/23(日) 14:58:56あのね、俺 >>453 なんだけど、君が言ってる「被告人」とか「年賀状の〜」とか、
それこそ見当違いなんだけど。君のそのコテを名乗るレスの中では、
俺の書き込みに対してレスをいただいてないw
だから、旗色が悪くなった「被告人」が君に八つ当たりしているんじゃないよ。
「被告人」の名誉のために言っておくけどw
0471デフォルトの名無しさん
2007/12/23(日) 15:03:49俺ならこう書くと思う。
private void RemoveSelectedItems2()
{
while (listBox1.SelectedItems.Count > 0)
{
listBox1.Items.RemoveAt(listBox1.SelectedIndex);
}
}
>>290のようなコードはまず書かないねやっぱり。
0472デフォルトの名無しさん
2007/12/23(日) 15:06:56あのねぇ、それは単に好みの問題でどっちがあってるとか間違ってるってレベルじゃないよ。
で、インデクス指定はダメっつってたのはどーなったのかな?
それこそダブルスタンダードじゃないの?
0473デフォルトの名無しさん
2007/12/23(日) 15:10:03そうは言ってないよ。
削除する際に、コレクションのインデックスを指定して削除することを
(自明の)前提とするのはおかしい、と言っただけ。
0474デフォルトの名無しさん
2007/12/23(日) 15:15:05アイテムが重複していないことを自明の前提としていた奴が言うことじゃないな。
0475デフォルトの名無しさん
2007/12/23(日) 15:15:27C# で、かつ、対象となるコレクションの性質が限定されてる今回のケースで、
そういう話が出てくる意味がわからん。
0476デフォルトの名無しさん
2007/12/23(日) 15:17:20リストボックスの選択はインデックスに対して行うものであって
オブジェクトに対して行うわけじゃないんだから
この場合は前提にしていいんじゃないかな。
事前にリストアップするにしても、対象はオブジェクトのコレクションじゃなくて
インデックスのコレクションであるべき。
>>279が質問をよく読まずに過度に一般化した話をひっさげて突撃してきた、
という話に見える。
0477デフォルトの名無しさん
2007/12/23(日) 15:17:240478デフォルトの名無しさん
2007/12/23(日) 15:20:18今までずっと自明の前提だと思っていたんだが、それって間違ってるのか?
そうじゃないと、普通に一個削除する時にもいちいちリストの順序が変わっちまうことを
心配しなきゃならんのだが。
0479デフォルトの名無しさん
2007/12/23(日) 15:21:590480デフォルトの名無しさん
2007/12/23(日) 15:32:30普通の人は >>314 のようなコードは「絶対」に書かないねやっぱり。
0481あにす@以下デフォルトの名無し ◆sGTL1yK0.6
2007/12/23(日) 15:40:41好き。漏れでも一瞬で理解出来た。メモっとく。
private void RemoveSelectedItems2()
{
while (listBox1.SelectedItems.Count > 0) //選択済みアイテムが無くなるまで
{
listBox1.Items.RemoveAt(listBox1.SelectedIndex); //消しまくる
}
}
0482側近中の側近 ◆0351148456
2007/12/23(日) 15:48:56(っ´▽`)っ
とうとう自演までするようになったか・・・。
0483側近中の側近 ◆0351148456
2007/12/23(日) 15:52:34(っ´▽`)っ
wをつけて別人ぽく見せてるけどバレバレなんだよ。
頭悪いなあ。
0484デフォルトの名無しさん
2007/12/23(日) 15:53:18C#でWebBrowserコンポーネントをフォームに配置して使っていたんですが、下記のコードを何度もTimerなんかで実行すると
タスクマネージャでどんどんメモリリークしていくのが確認できました。
Timerで呼んでいるのはこの一行だけです。
webBrowser1.Navigate("http://www.google.co.jp");
この部分をコメントアウトすると確実にリークは止まるので絶対にここが悪いんですけど
どのような対策を施せば解決するか教えてください。
//コメント//
webBrowser1をDispose()して毎回new WebBrowser()ってやってもやっぱりリークしました。
強制GCも併用してましたが、やっぱりだめでした。
0485デフォルトの名無しさん
2007/12/23(日) 15:53:23あそこまで罵倒されるリスクを冒してまで部下も意見しようとは思わないだろうし。
言わなかったら言わなかったで、後から、
「なんで気付いたときに報告しなかったんだ!」って怒鳴られるんだろうけど。
0486デフォルトの名無しさん
2007/12/23(日) 15:58:34あいつか
0487デフォルトの名無しさん
2007/12/23(日) 16:01:17ファイル名なんかをリストボックスAとBに読み込み、その二つを比較してリストAにはあるのにリストBにはない、というものを見つけ出したいです。
この場合配列に格納してしまい、わざわざリストボックスを用意する必要はないと思います。
なので一応A配列とB配列にそれぞれ全て格納した上でリストボックスに一応表示させています。
Aの1番目の項目とBの全項目を比較し、Aの2番目の項目とBの全項目を比較し・・・とやっていくしかないんでしょうか?
0488側近中の側近 ◆0351148456
2007/12/23(日) 16:01:26(っ´▽`)っ
そだね。
「頭悪いなあ。」とか人を貶す言葉が先に来るから、
ついには、誰もついてこなくなる(彼自身窓際族になる)可能性もあるけどね。
この性格のままだと将来がないと思うよ。
今だけでしょ。周りがみなうなづいてくれてるのは。
COBOLしか知らないくせに自分が一番知ってると勘違いしてる中年おやじと
同じ末路を辿るんだろうね。
0489デフォルトの名無しさん
2007/12/23(日) 16:04:01まあ語りたいのはわかるがスレタイ読めないような奴は何を言っても屑だろう
0490484
2007/12/23(日) 16:08:33どなたかとかと間違えてますか?
なんかやっていることがDoS攻撃じゃないのかって指摘が来そうなので、先に自分のやりたいことだけ言っておきます。
自宅ではIP電話対応のルータを使ってるのですが、その中にWebサーバが入っててログをHTTPで読めるようになっています。
そこで、定期的にログを読むプログラムを作って、SMTPで携帯電話にメール出すっていう不在電話通知機能を作ろうとしています。
常時タスクトレイに起動するような使い方を想定していますので、メモリリークが非常にやっかいで困っています。
どうかお力を貸してください。
0491デフォルトの名無しさん
2007/12/23(日) 16:09:24いや、こいつ自身がリアルではいつも他人から「頭悪いなぁ」って言われてるから、
2chでイキがってるんじゃないかな。
コードを見る限り「実力がある」とはとても思えないし。
>>487
基本的にはそうだけど、ArrayListにしてContains()で検索しちゃえば少しはましでない?
0492デフォルトの名無しさん
2007/12/23(日) 16:12:09>>269のような「やり方がわからないだけ」の質問に対して
技術や理屈ならべてるやつなんなの?w
0493デフォルトの名無しさん
2007/12/23(日) 16:12:53http://support.microsoft.com/kb/418376/ja
もしかしてこの問題?
ところでWebBrowserじゃなくてWebClientで取得するのじゃだめ?
0494デフォルトの名無しさん
2007/12/23(日) 16:16:41.NET 3.5でよければExceptが使えるかな。
var q = listA.Except(listB);
foreach (var item in q) Console.WriteLine(item);
これでおk
Enumerable.Except<TSource> ジェネリック メソッド
ttp://msdn2.microsoft.com/ja-jp/library/bb300779.aspx
0495側近中の側近 ◆0351148456
2007/12/23(日) 16:16:42でだ、>>471にお勧めのスレがある。
http://money6.2ch.net/test/read.cgi/employee/1083230722/
0496デフォルトの名無しさん
2007/12/23(日) 16:16:50アホだな
>>272以降は>>269に対する回答じゃないんだよ
0497デフォルトの名無しさん
2007/12/23(日) 16:19:24お前さあ、意見にではなく >>482 個人に対して、自演までして反撃されるほど
自分の指摘が的確で >>272 に相当のダメージを与えた、とでも思ってんの?
幸せいっぱいだな。これからもお前の幸せを祈ってるからな。
0498デフォルトの名無しさん
2007/12/23(日) 16:19:32>>472以降のツッコミに関してはなにか言うべきことはないのかな?
0499484
2007/12/23(日) 16:20:09あぁ。まさにそれです!
Microsoftのページに書いてあったとは…。
WebClientで解決できるかもとは思っていたのですが、いかんせん使用した経験が無いものであまり手を出したくなかったのが現状です。
それで、WebBrowserがどうにかして使えるようになれたらいいなぁと思ってここで質問してました。
でもMicrosoftが定期的にアプリ終了させてくださいって言ってるくらいだからどうにもならなさそうですね。
WebClient勉強してみます!
0500側近中の側近 ◆0351148456
2007/12/23(日) 16:21:29(っ´▽`)っ
>これからもお前の幸せを祈ってるからな。
どもども〜☆
0501デフォルトの名無しさん
2007/12/23(日) 16:40:59初心者に正しい道を示して下さいです。
一人で遊んでると、動けばいいや的なコードになりがちで悩みますです。
0502デフォルトの名無しさん
2007/12/23(日) 16:42:590503デフォルトの名無しさん
2007/12/23(日) 16:44:370504デフォルトの名無しさん
2007/12/23(日) 16:46:27また蒸し返すか〜
0505デフォルトの名無しさん
2007/12/23(日) 16:47:270506デフォルトの名無しさん
2007/12/23(日) 16:55:52別に悪くないけど、それが自分の好みに合わないというだけで
必死で馬鹿にした挙句、突っ込みに耐え切れず >>272 が逃げたというだけの話。
そしてさんざん偉そうにほざいた割には >>314 は恥ずかしいバグ入りだったという
オチ付き。
なのでもう許してやって。
0507デフォルトの名無しさん
2007/12/23(日) 17:34:100508デフォルトの名無しさん
2007/12/23(日) 17:38:16>まとめて削除するのが定石ってもんでしょ。
>こういうのはさ、知識というかパターンとして覚えることじゃなくて
>だれが考えても普通の知能があればそうするって程度の話だと思うぞ
最初のこの指摘で明らかに>>471見たいのも想定外ってのがわかる。
この時点では気づいてない。
だから誰かが>>471みたいなコードを書いても、
こいつは確実に腐ってるって指摘しただろう。
そんな状態で人のコードに馬鹿、頭悪い云々言いまくってたんだから、
言い訳しても無駄だし、こいつがアホだった、というだけのこと。
0509デフォルトの名無しさん
2007/12/23(日) 18:15:250510デフォルトの名無しさん
2007/12/23(日) 18:21:28定石はこうだ、とは言ったが>>270が「よくない」理由として定石と異なることを
挙げた覚えはない。
そうではなく、「よくない」理由はそれが直観的じゃないからだ、
とずっと言ってるでしょうが。
0511デフォルトの名無しさん
2007/12/23(日) 18:23:14何もないということでしょうが。
0512デフォルトの名無しさん
2007/12/23(日) 18:24:03だれも賛同しない感性はただの独りよがり。
0513デフォルトの名無しさん
2007/12/23(日) 18:29:39理科系の大学出てれば割となじみのある言葉じゃないかと思うんだが。。
0514デフォルトの名無しさん
2007/12/23(日) 18:31:590515デフォルトの名無しさん
2007/12/23(日) 18:36:380516デフォルトの名無しさん
2007/12/23(日) 18:38:00>まとめて削除するのが定石ってもんでしょ。
>こういうのはさ、知識というかパターンとして覚えることじゃなくて
>だれが考えても普通の知能があればそうするって程度の話だと思うぞ
0517デフォルトの名無しさん
2007/12/23(日) 18:38:320518デフォルトの名無しさん
2007/12/23(日) 18:45:15むしろ入社試験か何かで出して、>>314みたいなコードを書いてきたら
「うちはそんな標準的な(バグを見抜けない)プログラマは要りません」って
感じに使えそうだなこの問題。
参考:マイクロソフト米国本社の実地面接に行ったけど質問ある?
ttp://vipvipblogblog.blog119.fc2.com/blog-entry-105.html
>例えば、linked-listにループが存在するかどうかを確認するコードを書き、
>それの効率性を答える問題や、linked-listを効率的に逆向きにする問題等が出ました。
割と有名問題が出ててびっくりした。
0519デフォルトの名無しさん
2007/12/23(日) 18:46:19「直観的じゃない」なんて曖昧な脳内基準で言われてもねぇ。
ほとんどの人にとって、リストの後ろから消すなんてのは十分に直観的なんだけどなぁ。
あんたの脳みそが低性能だから直観でわからないだけのことをそんなに
グダグダと言う理由ってなんなの?
0520デフォルトの名無しさん
2007/12/23(日) 18:49:15>listBox1.SelectedIndices.OfType<int>().Reverse()
> .ToList().ForEach(index => listBox1.Items.RemoveAt(index) );
>直感的に読めるかどうかは知らんけど。
直感…?
>俺ならやっぱり>>290みたいな(悪いけど)糞コードは書かないな。
>標準的なプログラマならやっぱり普通こうじゃないの?
バグあるけどね。普通はバグぐらいあってもいいよね。
>でも全部のコードがこの調子で書かれてたらかなわんよ。
>君自身がいってるように「積み重なる」から。
うん、バグあるほうがましだよね。
>君はコードを検証的に(要はデバッグ)よむ場合を想定してないんだよ。
>コメントなんか書いてあってもコードの正しさは保障されないだろw
うん、バグ入っちゃったよね。
>小学校のころ算数ができなかった子がプログラマになってるのかな。
算数ができたからバグなんかあってもいいんだよ。
0521デフォルトの名無しさん
2007/12/23(日) 18:50:290522デフォルトの名無しさん
2007/12/23(日) 18:51:400523デフォルトの名無しさん
2007/12/23(日) 18:52:05リストボックスで複数削除で頭から消したらずれるなんて、みんな通る道だと思ったけど。
そのときに、消したときにはインデックスを増やさないか、後ろから消すかで分かれるだけな気が。
0524デフォルトの名無しさん
2007/12/23(日) 18:53:100525側近中の側近 ◆0351148456
2007/12/23(日) 18:54:51私のために喧嘩しないで☆
0526デフォルトの名無しさん
2007/12/23(日) 18:55:42別にそこまで誰も突っ込まなかったと思うのに(バグはあったが)、
人を馬鹿にするようなことばっか言いまくった挙句それだから痛いんだよ。
0527側近中の側近 ◆0351148456
2007/12/23(日) 18:58:00でも、まあ新たな名言が出たからいいんじゃないか。
みんなレスに困ったら「頭悪いなあ。」を使おうぜ☆
0528デフォルトの名無しさん
2007/12/23(日) 18:58:32バグを入れてでも「直観的」なことが大事だと思うなら、
ずっとそうやっていればいいんじゃない?
直観的じゃないからバグに気づかなかったなんていう揚げ足取りはしないからさ w
まあ、俺のチームにこんなのがいたら追い出すけど。
0529デフォルトの名無しさん
2007/12/23(日) 18:58:34てめーもうざいんだよあwせdrftgyふじこ
0530デフォルトの名無しさん
2007/12/23(日) 19:00:480531デフォルトの名無しさん
2007/12/23(日) 19:07:43という小学生の常套句が正しかったと確信した。
0532側近中の側近 ◆0351148456
2007/12/23(日) 19:08:12っていうか、この人のいう定石ってどういう基準なんだろうね
っていうとまた話がこんがらがるね。
ちなみに将棋と囲碁の世界では定石とは、
騎士たちが数十年かけて築き上げるものであって、
自己流の指し方は定石とは言わないんだよね。
それ以前にC#に定石本ってあるのか?
Cだとカーニハン先生
JavaだとGoF
C++だとスコットメイヤーズ?
かなぁ・・・。
0533側近中の側近 ◆0351148456
2007/12/23(日) 19:09:19というわけで、しつも〜ん!!!
C#の定石本を教えて☆
はいはい、書籍スレいってきま〜す
0534側近中の側近 ◆0351148456
2007/12/23(日) 19:10:02>>532で誤字見っけ!!
騎士→棋士な
生きててごめんね☆
0535デフォルトの名無しさん
2007/12/23(日) 19:12:300536デフォルトの名無しさん
2007/12/23(日) 19:27:540537デフォルトの名無しさん
2007/12/23(日) 19:35:14この24時間で最大の勝利者w
0538デフォルトの名無しさん
2007/12/23(日) 19:44:42確かに間違ってる。
今はM理論がもっとも有力と言われている
プログラミングやっててこの程度知識もないとは・・・・
0539デフォルトの名無しさん
2007/12/23(日) 19:53:43もしかして NASA かどっかで GPS とかの組み込みプログラム書いてる人?
0540484
2007/12/23(日) 19:55:53タグの構文解析やBASIC認証で少しはまったけど、何とかできたみたいです。
とりあえずWebのところではメモリリークなさそうです。
SMTPのところでなんか使用メモリ増えている気がするのですが…頻度的に問題ないってことにしておきます。
恐らくこれもコンポーネントのバグでしょうね。
お世話になりました!
0541デフォルトの名無しさん
2007/12/23(日) 19:58:22依然としてマクロな範囲で相対性理論は理論と結果が合ってるわけだが。
0542デフォルトの名無しさん
2007/12/23(日) 20:03:38プログラマはM理論は知らなくてもいいけど、初歩的なバグを入れないような
「直観的な」コーディングをする能力は必要だよね。
0543デフォルトの名無しさん
2007/12/23(日) 20:13:170544デフォルトの名無しさん
2007/12/23(日) 20:13:190545デフォルトの名無しさん
2007/12/23(日) 21:18:39C#でできますか?
0546デフォルトの名無しさん
2007/12/23(日) 22:08:26視点が狭すぎる
0547デフォルトの名無しさん
2007/12/23(日) 22:15:560548デフォルトの名無しさん
2007/12/23(日) 22:35:38視野が狭いと言って欲しいところだ。
0549デフォルトの名無しさん
2007/12/23(日) 22:40:01こういう台詞だけうれしそうに言うやついるよな
0550デフォルトの名無しさん
2007/12/24(月) 00:11:360551デフォルトの名無しさん
2007/12/24(月) 01:02:45直感的にはわからなくなりがちだな
0552デフォルトの名無しさん
2007/12/24(月) 02:20:360553デフォルトの名無しさん
2007/12/24(月) 02:46:20直感的の方がはるかに多くヒットするな。
しかも、直観的だとぐーぐるさんに「もしかして: 直感的 ?」とまで言われる。
さて、どっちが正しいんだろう?
0554デフォルトの名無しさん
2007/12/24(月) 02:49:270555デフォルトの名無しさん
2007/12/24(月) 02:52:13調べてみたら、「直感的」は経験をベースにしてる一方、
「直観的」はそうではない第六感のようなものから発せられるようだな。
従って、コンテキスト依存であり、どっちが正しいという問題ではない。
このスレで最近使われた「チョッカン」に関しては「直感」が適切だろうな。
0557デフォルトの名無しさん
2007/12/24(月) 03:17:140558デフォルトの名無しさん
2007/12/24(月) 03:30:28イブだから粘着質なんだと
0559デフォルトの名無しさん
2007/12/24(月) 03:35:04余計なことを言うんじゃない。
0560デフォルトの名無しさん
2007/12/24(月) 03:37:040561デフォルトの名無しさん
2007/12/24(月) 03:55:56まあ、さっきヨメと(ry
それだけじゃなんなのでスレに合った話題でも。
JPEGファイルを読み込んでImageにするのに一番速い方法は?
素直に
Image image = Image.FromFile(filename);
もしくは
Image image = Image.FromFile(filename, false);
こうするのが今まで測ったうちでは一番速いみたいなんだけど、
useEmbeddedColorManagement の意味がよくわからない。
色管理情報って、どういう時についてるんだろう?
http://www.atmarkit.co.jp/fdotnet/dotnettips/597fastloadimg/fastloadimg.html
ちなみにこれをやってみたら、かえって遅かった。
0562デフォルトの名無しさん
2007/12/24(月) 05:12:30useEmbeddedColorManagement は主に BMP と PNG で効果がある (はず)。
BMP だと色管理情報を独自に埋め込めるし、PNG だとガンマ補正のパラメータがついてたりする。
0563デフォルトの名無しさん
2007/12/24(月) 08:26:46C#を使って直感でできますか?
0564デフォルトの名無しさん
2007/12/24(月) 09:09:090565デフォルトの名無しさん
2007/12/24(月) 09:32:570566デフォルトの名無しさん
2007/12/24(月) 11:17:05と思ったが、今までわざわざ英語にするために辞書引いたりとかアホなことしてたから
どうせ個人的に作ってるだけだから、ここは一発、いままでの常識を覆して日本語で名前つけてみるか?
0567デフォルトの名無しさん
2007/12/24(月) 11:24:440568デフォルトの名無しさん
2007/12/24(月) 12:02:41unsafeでよければ、Bitmap.LockBits
0569デフォルトの名無しさん
2007/12/24(月) 12:15:250570デフォルトの名無しさん
2007/12/24(月) 12:45:270571デフォルトの名無しさん
2007/12/24(月) 12:58:270572デフォルトの名無しさん
2007/12/24(月) 13:03:42名前って変数名のことか。
君が使う分には文句言わないけど、インテリセンスのうれしさ激減だから正直勘弁してほしい。
Migemo みたいなのと連携してくれるならいいけどさ。
少なくとも、自動生成する変数名のローカライズをするか否かの設定項目は欲しいところ。
0573デフォルトの名無しさん
2007/12/24(月) 13:30:580575デフォルトの名無しさん
2007/12/24(月) 13:44:51そのアプリ固有のものなら、日本語にしたほうがわかりやすいこともある
前に規則的なアルファベットを2文字くらいつければ補完も効く
0576デフォルトの名無しさん
2007/12/24(月) 13:51:340577デフォルトの名無しさん
2007/12/24(月) 14:10:25_穂毛ToolStripMenItem
みたいにしてる。
0578デフォルトの名無しさん
2007/12/24(月) 15:03:20でいいじゃん
0579デフォルトの名無しさん
2007/12/24(月) 16:08:25ガリガリ書くときに日本語変換はつらくないか?
0580デフォルトの名無しさん
2007/12/24(月) 18:40:140581デフォルトの名無しさん
2007/12/24(月) 18:50:36http://www.atmarkit.co.jp/fdotnet/dotnettips/440systemsounds/systemsounds.html
これを見ると再生はできるみたいなのですが、設定は難しいでしょうか?
0582デフォルトの名無しさん
2007/12/24(月) 18:57:36明示的に使うことはあまりない。
効果的に使える場面一応もあるんだけど
危険すぎて任せられないorz
0583デフォルトの名無しさん
2007/12/24(月) 19:03:42レジストリにあるはずだからそれ書き換えればいけるはず
ただVistaで場所が変わったみたい(某デスクトップアクセサリで設定しても無視された)
0584デフォルトの名無しさん
2007/12/24(月) 20:01:46回答ありがとうございます。
以下のあたりのレジストリ設定で変更できました。
HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\.Default
0585デフォルトの名無しさん
2007/12/24(月) 22:45:21例えば
Graphics g = PictureBox1.CreateGraphics();
g.DrawEllipse(Pens.Black, 10, 20, 100, 80);
で位置(10, 20)大きさ100x80の水平な楕円が描けますが
こいつにx, y座標 width, height の他に45度等と傾きの情報
を渡して45度に傾いた楕円を描くといったイメージの事は出来るでしょうか?
DrawEllipseと同じようなインターフェースのメソッドが存在しましたら
御教示願います。
0586デフォルトの名無しさん
2007/12/24(月) 23:01:230587デフォルトの名無しさん
2007/12/24(月) 23:25:10初歩的数学もわからないのにプログラミングやってるの?
0588デフォルトの名無しさん
2007/12/25(火) 02:27:04「初歩的数学」がわかることと、この問題での最適解を知ってることとは別だろ。
0589デフォルトの名無しさん
2007/12/25(火) 02:43:59クリスマスに一人でム板だもんな
いちゃもんつけなきゃやってらんないよな・・・
0590デフォルトの名無しさん
2007/12/25(火) 02:48:32おまえなんでこの季節だけ仏教徒だって言うの?
0591デフォルトの名無しさん
2007/12/25(火) 08:25:25すべてのインデックスを毎回利用するのではないのですべての値の評価をせず,
Linqで必要になった分だけ取得していきたいとかんがえています.
Linqでインデックス値を取得するサンプルが見つからなかったので教えていただけないでしょうか?
やりたいことはこのLinq版です
bool[] boolArray;
list<int> intList;
for(int i = 0; i < boolArray.Length;i++){
if(boolArray[i] == false) intList.Add(i);
}
intListを使用する
0592デフォルトの名無しさん
2007/12/25(火) 08:51:52もとの配列のインデックスは取れないんじゃないかなあ。
どうしてもLINQでやりたかったら、intとboolの構造体を配列にしないと駄目だと思ってるけど。
0593デフォルトの名無しさん
2007/12/25(火) 08:55:21外部にカウンタを持つしかない。下の例ではidx。
var boolArray = new bool[] { true, false, true, false, false };
int idx = 0;
var rs = from b in boolArray
let i = idx++
where b == false
select i;
foreach (var r in rs) Console.WriteLine(r);
0594デフォルトの名無しさん
2007/12/25(火) 08:57:57List<int> intList = rs.ToList();
0595デフォルトの名無しさん
2007/12/25(火) 09:06:04var rs = from s in Enumerable.Range(0, boolArray.Length)
where boolArray[s] == false
select s;
List<int> intList = rs.ToList();
0596591
2007/12/25(火) 10:57:03Linqに関してはまだまだ勉強不足なので参考になりました.
0597デフォルトの名無しさん
2007/12/25(火) 13:04:30for (int i = 0; i < boolArray.Length; i++)
if (!boolArray[i]) yield return i;
}
LINQじゃないけどこういうのは?
0598デフォルトの名無しさん
2007/12/25(火) 14:32:27SelectとWhereが同時に行えればいいんだけど
そういうオペレータは無かったと思うので、作るかこうするか。
var intList2 = boolArray.Select((Value, Index) => new { Value, Index }).Where(pair => !pair.Value).Select(pair => pair.Index);
0599598
2007/12/25(火) 14:50:25インデックスが得られるオーバーロード使ったものね。
ttp://msdn2.microsoft.com/ja-jp/library/bb534869.aspx
C#は匿名メソッドでyieldが使えないのがなぁ。
Pythonだったら>>597のを入れ子関数で書くみたいなのもできるんだけど。
0600598
2007/12/25(火) 15:02:40var intList2 =
from pair in boolArray.Select((Value, Index) => new { Value, Index })
where !pair.Value
select pair.Index;
0601デフォルトの名無しさん
2007/12/25(火) 15:18:03リフレクションを使うしかないのでしょうか
0602デフォルトの名無しさん
2007/12/25(火) 15:32:390603601
2007/12/25(火) 15:38:040604デフォルトの名無しさん
2007/12/25(火) 15:39:09ttp://msdn2.microsoft.com/ja-jp/library/system.enum.system.iconvertible.toint32.aspx
世の中underlying typeがlongの奴もいるかもしれんから気をつけれ。
0605デフォルトの名無しさん
2007/12/25(火) 15:46:420606デフォルトの名無しさん
2007/12/25(火) 18:16:19(uint)を省いて・・・
0607デフォルトの名無しさん
2007/12/25(火) 18:43:56Convert.ToUInt32
>>602から推測できなか?
0608デフォルトの名無しさん
2007/12/25(火) 19:19:39オーバーフローも任意にできるのに
0609デフォルトの名無しさん
2007/12/25(火) 21:22:05{
return (int) val;
}
とかw
0610デフォルトの名無しさん
2007/12/25(火) 21:37:36レスありがとうです。
試してたと思ってたんですorz
すみません。試してたのはUInt内にあるメソッドだけでした。
0611デフォルトの名無しさん
2007/12/26(水) 11:50:30C#を一から勉強するのに向いてるサイトある?
0612デフォルトの名無しさん
2007/12/26(水) 11:56:31一枚の画像として保存させたいのですが、その方法がありましたら教えていただきたいです。
初歩的なことかもしれませんがよろしくお願いいたします。
0613デフォルトの名無しさん
2007/12/26(水) 11:59:42http://www.atmarkit.co.jp/fdotnet/csharp_abc2/index/index.html
>>612
画像はPictureBoxという概念を捨ててGraphics.DrawImageで自前描画
0614611
2007/12/26(水) 12:06:55さんくす
0615デフォルトの名無しさん
2007/12/26(水) 12:09:36回答いただきありがとうございます。
とすると例えば背景を黒にしたい場合、背景黒い画像を用意しなければならないのでしょうか?
0616デフォルトの名無しさん
2007/12/26(水) 12:18:57Bitmap bmp3 = new Bitmap(幅, 高さ);
using (Graphics g = Graphics.FromImage(bmp)){
g.Clear(Color.Black);
g.DrawImage(bmp1, 好きな位置);
g.DrawImage(bmp2, 好きな位置);
}
bmp3.Save("保存先");
0617デフォルトの名無しさん
2007/12/26(水) 12:58:01できそうです。
わざわざありがとうございました。
0618デフォルトの名無しさん
2007/12/26(水) 13:27:23あれはどうやって作ればいいんでしょうか?
0619デフォルトの名無しさん
2007/12/26(水) 13:32:560620デフォルトの名無しさん
2007/12/26(水) 15:23:170621デフォルトの名無しさん
2007/12/26(水) 20:11:570622デフォルトの名無しさん
2007/12/26(水) 20:29:090623デフォルトの名無しさん
2007/12/26(水) 22:18:350624デフォルトの名無しさん
2007/12/26(水) 22:43:42マーシャラの仕事じゃねえじゃん。
kernel32のCopyMemoryでも使えよ。
0625デフォルトの名無しさん
2007/12/27(木) 00:22:57現在、HttpWebRequestのGetResponse()メソッドで例外が出ていまして、
調べたところ、useUnsafeHeaderParsingがtrueになっていないせいだということがわかりしました。
んで、ASPだと下記のような感じで書けば良いらしいのですが、
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
WindowsアプリだとHttpWebRequestにuseUnsafeHeaderParsingプロパティが無く、
設定方法がわからず、止まっているという状況です。
どなたか、ご教授願います。
0626デフォルトの名無しさん
2007/12/27(木) 02:29:23外部からデリゲートの実行は出来るが、メソッドの代入は行えない、
つまりevent修飾子の逆のような性質を持ったデリゲートは作れるでしょうか?
0627デフォルトの名無しさん
2007/12/27(木) 02:31:14デリゲート型でsetterなしのプロパティでも作れば
0628デフォルトの名無しさん
2007/12/27(木) 03:13:020629デフォルトの名無しさん
2007/12/27(木) 03:51:470630デフォルトの名無しさん
2007/12/27(木) 07:07:16それ構成ファイル。
WinFormでもapp.configに書ける。
ASP.NETの場合はweb.configに書く。
0631デフォルトの名無しさん
2007/12/27(木) 10:51:03それ呼び出しリスト追加できちゃうよ
0632631
2007/12/27(木) 10:54:510633デフォルトの名無しさん
2007/12/27(木) 17:16:25http://vip.com.myminicity.com/ind
0634デフォルトの名無しさん
2007/12/27(木) 17:23:09<head>
<title>MyMiniCity</title>
</head>
<body>
<noscript>
This site needs JavaScript.
</noscript>
<script type="text/javascript">
//<![CDATA[
var d = new Date();
d.setTime(d.getTime()+52727);
var exp = d.toGMTString();
if( document.referrer != null )
document.cookie = "X-MV-Referer="+encodeURIComponent(document.referrer);
document.cookie = "X-Ref-Ok=1;expires="+exp+";path=/"
document.location.href = document.location.href;
//]]>
</script>
<p><em>Please wait a few moments...</em></p>
</body>
</html>
なんだろうこれ
よくわかんないなぁ〜
0636デフォルトの名無しさん
2007/12/28(金) 00:30:48ありがとうございました。出来そうですね。
0637デフォルトの名無しさん
2007/12/28(金) 11:53:03Threadクラスを使って新たに作ったスレッドは、スレッド終了後にまたStart()できないのでしょうか?
というのも、Startを再び呼ぶ前にJoin()メソッドを使用して終了するまで待っているのでスレッドは終了しているはずですが、再びStart()はできないです。
こういった場合、newしなおし前のは破棄する必要があるということですか?
0638デフォルトの名無しさん
2007/12/28(金) 11:55:290639デフォルトの名無しさん
2007/12/28(金) 12:40:360640デフォルトの名無しさん
2007/12/28(金) 12:44:12なんかその発想ってオブジェクト指向の暗黒面を体現してるな。
Threadクラスはスレッドを抽象化したものに過ぎない。
間違ってたらごめん。
Threadクラスのインスタンスは参照されている限りそりゃ生きてるけど、
それが抽象化してる本当の「スレッド」は終了した時点で既に死んでる、
という風に俺は理解している。
0641デフォルトの名無しさん
2007/12/28(金) 15:44:540642デフォルトの名無しさん
2007/12/28(金) 16:22:32適切かどうかは知らないけどありえなくはないと思うけど
中にラップしてるものを自動で作り直すようなラッパーなんていくらでもあるでしょ
0643デフォルトの名無しさん
2007/12/28(金) 16:24:520644デフォルトの名無しさん
2007/12/28(金) 16:27:120645デフォルトの名無しさん
2007/12/28(金) 23:55:59プログレスバーを表示させることを考え
OwnerDrawで
ProgressBarRenderer.DrawHorizontalBarや
ProgressBarRenderer.DrawHorizontalChunks
を実行しようとしたのですが,
Visualスタイルが有効でないといわれました.
Application.EnableVisualStyles();
をはじめに実行しているのですがだめでした.
OSはXPでクラシックスタイルで利用中なのでこれが原因だとはわかってるのですが,
ListViewにProgressBarを表示することがクラシックスタイルではできないのでしょうか?
それともProgressBarRendererをやり方が根本的に間違っていたりするのでしょうか?
ご教授ください.
0646デフォルトの名無しさん
2007/12/28(金) 23:57:470647デフォルトの名無しさん
2007/12/28(金) 23:59:13VisualStyle 系の描画クラスの一部は、ビジュアルスタイルが有効でないと例外が出る。
あんましお勧めしないがどうしても Windows と見た目を統一したいなら Win32 API を使うしかない。
0648デフォルトの名無しさん
2007/12/29(土) 00:02:51読むつもりないのか文盲なのかその両方なのか・・・
0649デフォルトの名無しさん
2007/12/29(土) 00:10:20書いてあるなら証拠を示せ。
0650645
2007/12/29(土) 00:18:16graphic.DrawRectangleとかでプログレスバーもどきっぽいのは作れそうなので
自分で描画の方法をとってみたいと思います.
すぐにいろいろな意見を書き込んでいただき,ありがとうございました.
0651デフォルトの名無しさん
2007/12/29(土) 02:00:45using System;
using System.Windows.Forms;
using System.Drawing;
class Hoge : Form{
private Pen pen;
public Hoge(){
pen = new Pen(Color.Blue);
Resize += MyResize;
}
protected override void OnPaint(PaintEventArgs e){
base.OnPaint(e);
e.Graphics.DrawLine(pen,0,0,Width,Height);
e.Graphics.DrawLine(pen,0,Height,Width,0);
}
private void MyResize(object sender,EventArgs e){
Invalidate();
}
}
class Fuga{
public static void Main(){
Application.Run(new Hoge());
}
}
0652デフォルトの名無しさん
2007/12/29(土) 02:46:060653デフォルトの名無しさん
2007/12/29(土) 10:00:05自分の不甲斐なさに泣けてきたぜ。
0654デフォルトの名無しさん
2007/12/29(土) 12:53:01WidthとHeightの値と実際のウィンドウサイズが異なるのはどうしてなの?
http://up.img5.net/src/up14699.jpg
0655デフォルトの名無しさん
2007/12/29(土) 13:19:2001234
0■■■■■
1■■■■■
2■■■■■
Point( 5, 3 )は領域外だ
0656デフォルトの名無しさん
2007/12/29(土) 13:21:32ああ、
>WidthとHeightの値と実際のウィンドウサイズが異なるのはどうしてなの?
「クライアントサイズ」でぐぐる
ウィンドウサイズと言えばノンクライアント領域も含む(枠とかタイトルバーとか)
0657デフォルトの名無しさん
2007/12/29(土) 13:22:34ClientSizeの値を使えばちゃんといけるはず。
0658デフォルトの名無しさん
2007/12/29(土) 13:23:420659デフォルトの名無しさん
2007/12/29(土) 14:16:45int w = ClientSize.Width;
int h = ClientSize.Height;
e.Graphics.DrawLine(pen,0,0,w-1,h-1);
e.Graphics.DrawLine(pen,0,h-1,w-1,0);
とすれば良かったんだな
サンクス勉強になった
0660デフォルトの名無しさん
2007/12/29(土) 14:28:010661デフォルトの名無しさん
2007/12/29(土) 21:18:39ちょっとGUIなプログラムをつくるためにC#を学ぼうと思うのだがいい書籍はないですか?
0662デフォルトの名無しさん
2007/12/29(土) 21:53:080663デフォルトの名無しさん
2007/12/29(土) 21:59:17特に定番は無いんじゃね
そういう本なら中身見て選びやすいから適当に本屋で好きなの選んだら
0664デフォルトの名無しさん
2007/12/29(土) 22:27:45ほとんどのものは本なんて要らない気もするけどなあ。
DataGridView以外のほとんどのコントロールはMSDNライブラリ見ながら
実際つかってみればすぐわかるじゃん。
「ちょっと」じゃなくてGDI+とかフォントのディープな知識のこと言ってるんだったら
ペッゾルトの本になるのかな俺は読んでないけど。
0665デフォルトの名無しさん
2007/12/29(土) 23:43:14ちょっとならC++でやりゃあいいじゃん
0666デフォルトの名無しさん
2007/12/29(土) 23:48:120667デフォルトの名無しさん
2007/12/30(日) 00:17:400668デフォルトの名無しさん
2007/12/30(日) 13:10:570669デフォルトの名無しさん
2007/12/30(日) 13:13:180670デフォルトの名無しさん
2007/12/30(日) 13:13:370671デフォルトの名無しさん
2007/12/30(日) 13:14:51新規に作るなら C# でいい。
0672デフォルトの名無しさん
2007/12/30(日) 17:43:24どの程度なんでしょ?>触ってる人
0673デフォルトの名無しさん
2007/12/30(日) 17:59:410674デフォルトの名無しさん
2007/12/30(日) 18:04:17せっかくC++/CLIスレあるんだから有効活用してみてはどうか。
0675デフォルトの名無しさん
2007/12/30(日) 21:41:35C++は変態、C++/CLIは超変態
一度使って見ようと思ったことがあるけどref,^,%,*..等文法が変態すぎて挫折した
リスト作るだけで List<String^>^ list = gcnew List<String^>(); とかはないわ
^付けるくらいならC#やったほうがまし
0676デフォルトの名無しさん
2007/12/30(日) 22:02:02>>675の例で何となく雰囲気が分かりましたわ。
確かにもキモイですな。
>>674
C++/CLI使う予定も無いのでそれ程改まって聞きたかった訳ではw
話しの流れでC++/CLIが出てたんで、ちょっとどんなもんかなと思っ
た次第。
0677デフォルトの名無しさん
2007/12/30(日) 22:45:24VS2005 Expressで以下のようなコードを書いたのですが、
class MyControlClass: Panel
{
//内容
}
class MyClass: Control
{
public MyClass()
{
this.BackgroundImage = Image.FromFile("pic.bmp");
this.Width = 10;
this.Height = 10;
this.Location = new System.Drawing.Point(100, 100);
}
}
メインフォーム内メソッド
{
MyControlClass myCnt = new MyControlClass();
myCnt.Controls(new MyClass());
}
Panelを継承したMyControlClass上にControlを継承したMyClassが表示されません。
MyControlClassが単なるPanelだと表示されたのですが・・・
どなたかわかる方いましたらご教授願えませんでしょうか。
0678デフォルトの名無しさん
2007/12/30(日) 23:00:26(1) 君が求めている「どなたか」とはエスパーのこと。
(2) エスパーは存在しない。
(3) ゆえに君が求める「どなたか」は決して現れない。
0679デフォルトの名無しさん
2007/12/30(日) 23:13:36その例だとPanelじゃ何故Controlであるのかがわからない。
Panelの中身でも見てみれば?
0680679
2007/12/30(日) 23:15:110681677
2007/12/30(日) 23:20:17やりたいことを説明しますと、Panelを継承した自作クラス上に
Controlを継承した自作クラスを乗せたいのです。
それから、>>677の
myCnt.Controls(new MyClass());
は
myCnt.Controls.Add(new MyClass());
でした。
すいません。
0682デフォルトの名無しさん
2007/12/30(日) 23:25:36Controlがなんなのか考えよう。
としか俺にはいえないな・・・
0683デフォルトの名無しさん
2007/12/30(日) 23:26:06デザイナが自動生成したコード見たことある?
0684677
2007/12/30(日) 23:32:34すいません、初心者なもので・・・
panelObject.Controls.Add(controlObject);
で、controlObjectのBackgroundImageが表示されないんでしょうか。
自動生成コードにはformObject.Controls.Add(panelObeject)
とやってますが、Controlでは無理なんですかね。
0685デフォルトの名無しさん
2007/12/31(月) 00:00:29このままいっても情報小出しのせいで切れる御方がでよるとよ
どうせformに追加してないとかじゃないのかと思いますが
0686デフォルトの名無しさん
2007/12/31(月) 02:05:45エクスプローラを作るという宿題を誰か作ってくれないでしょうか?
listviewを利用して作ろうかと思ったが、
ファイルを選択→ファイル削除が・・・思ったよりも難しい
0687デフォルトの名無しさん
2007/12/31(月) 02:14:32授業中に寝てたらあかんよ。
友達もつくっとかなあかんよ。
ファイルを選択
←listView.SelectedItems で選択されてるListViewItemを取得して
foreach等でループさせて取得
ファイル削除
←ファイルならFile.Delete(), フォルダならDirectory.Delete
0688デフォルトの名無しさん
2007/12/31(月) 03:48:26部分文字列の取得を座標で指定する方法ってありますか?
0689デフォルトの名無しさん
2007/12/31(月) 09:30:13部分文字列の座標って
TEXTの100pix目以降を取得とかか?
文字列全取得してフォントの文字ごとのサイズを元に削ればいいだろ
対象がTEXTじゃなくてpictureならフォントビットマップ使ってOCR一致させる
すさまじく無駄っぽいけどw
0690デフォルトの名無しさん
2007/12/31(月) 12:11:40webbrowserで表示中のテキストのみを抜き出そうとしています。
webbrowser.Document.Body.ScrollRectangleで座標は取得できそうなので、
部分文字列に座標を指定できれば可能ではないかと考えているのですが・・・
0691デフォルトの名無しさん
2007/12/31(月) 12:38:190692デフォルトの名無しさん
2007/12/31(月) 13:05:25690はたぶん691がどうしてクレームつけてるか理解できないと思うよ。
こんなにコミュニケーション能力 ―― 自分の発言が他人にどう聞こえるかを
考えながら発言する能力 ―― が欠如している人間が多いのは、国語の時間に
文学鑑賞しか教えてないからだと思う。
0693デフォルトの名無しさん
2007/12/31(月) 13:15:050694デフォルトの名無しさん
2007/12/31(月) 13:22:010695デフォルトの名無しさん
2007/12/31(月) 13:51:33ありますか?
0696デフォルトの名無しさん
2007/12/31(月) 14:02:59これも教育の問題だね。
0697デフォルトの名無しさん
2007/12/31(月) 14:04:580698デフォルトの名無しさん
2007/12/31(月) 14:09:46どう読んだらその解釈が出来るんだ?
これも教育の問題だね。
0699デフォルトの名無しさん
2007/12/31(月) 14:25:030700デフォルトの名無しさん
2007/12/31(月) 14:25:300701デフォルトの名無しさん
2007/12/31(月) 14:25:40答えた後から出てくる条件…
この符合が意味するものは
0702デフォルトの名無しさん
2007/12/31(月) 14:29:270703デフォルトの名無しさん
2007/12/31(月) 16:04:420704デフォルトの名無しさん
2007/12/31(月) 19:17:51どうしたらいいのですか?
TEST.mdbのAテーブルの最終レコードのIDフィールドの値を取得したい。
0705デフォルトの名無しさん
2007/12/31(月) 19:31:03出来ました!
ありがとうございました
0706デフォルトの名無しさん
2007/12/31(月) 19:34:370707デフォルトの名無しさん
2007/12/31(月) 19:56:40書けぬ事もないが非推奨。末尾再帰の最適かもやってくれない。
やりたきゃこうやる。
Func<int, int> trecv = null;
trecv = i => (i > 0) ? i + trecv(i-1) : 0;
Console.WriteLine(trecv(10));
0708デフォルトの名無しさん
2007/12/31(月) 20:01:01かえって見にくくなるような
0709デフォルトの名無しさん
2007/12/31(月) 20:18:51C#ってVB.NETのイベント周りみたいな、プログラマから明示的に見えない
暗黙的なコードやフィールドの存在を許さない方針かと思ってたけど、
そこら変のポリシーは思ってたより案外いい加減なのかな。
0710デフォルトの名無しさん
2007/12/31(月) 20:26:36Linq関係で単純なプロパティだけのオブジェクトを量産する必要があるから追加したんだろう。
C#3.0の追加要素はほとんどはLinqのための機能でそれ以外にどういう使い方をして行くかは今後の課題だな。
0711デフォルトの名無しさん
2007/12/31(月) 20:35:42そんなことはない
イベントのアクセサやデリゲートは1.0の頃から自動生成されるし
yieldとかクロージャとか使ったらそれこそ大量のコードが生成されるぞ
0712デフォルトの名無しさん
2007/12/31(月) 23:10:11Graphicsオブジェクトはどこから取ってくればいいでしょうか。
コントロールがないのでControl.CreateGraphcisやPaintEventArgsは使えません。
そのためだけにビットマップを作るのは気が引けます。
0713デフォルトの名無しさん
2007/12/31(月) 23:12:463DのFPS
0714デフォルトの名無しさん
2007/12/31(月) 23:19:330715デフォルトの名無しさん
2008/01/01(火) 02:09:55GetDC
0716デフォルトの名無しさん
2008/01/01(火) 03:02:32そういう質問は状況(何を何故したいのか?)をもう少し書かないと答え難いんじゃないの?
2.0以降ならTextRendrer.MeasureTextが使えそうなケースのようにも思えるけど、
その文章だけじゃよくわからんよ。
0717デフォルトの名無しさん
2008/01/02(水) 01:51:21フォームリサイズ用につまめる部分が消えなくて困っています。
フォーム全体はFixedSingleなのでマウスでつまめないようになっているのですが、
StatusStripの右下の部分だけがつまめてしまいます。
(リサイズはできないのですが、カーソルの形が変わる。)
StatusStripのプロパティかと探したんですが、それらしいのが見つかりませんでした。
どうすればこのつまめる部分を無くせるのでしょうか。
0718デフォルトの名無しさん
2008/01/02(水) 02:03:070719デフォルトの名無しさん
2008/01/02(水) 02:17:17DocumentExplorerでメンバ一覧とか見るとき、
「メンバのオプション:フィルタ」の「継承されたメンバを含める」のチェックを外せば
表示メンバが随分減って探しやすくなるぞ。
0720デフォルトの名無しさん
2008/01/02(水) 10:21:38n階層上までに宣言されたメンバって指定ができたら便利なんだがなぁ
0721デフォルトの名無しさん
2008/01/02(水) 10:26:500722デフォルトの名無しさん
2008/01/02(水) 10:37:36このダイアログAは親のメインフォームから呼び出されます。
このダイアログAもサブメニュー的なボタンを表示する、子ダイアログBを作ります。
このとき、単純にダイアログAのボタンを押したらダイアログBをShowDialogする
とやると、親フォーム、ダイアログA、ダイアログBがすべて表示されている状態になると思います。
そうではなく、ユーザから見ると、ダイアログAのボタンを押すと、ダイアログAがダイアログBに
書き換わるように見えるという動作をさせたいのです。
ダイアログAのクローズイベントからダイアログB表示とかやっても、どっちみち
ShowDialogで処理が止まってしまうので、ダイアログAが消えないなと…。
Web画面なら、一個のフォームにすべてのボタンを配置して、いらないのは非表示にしてやれば良いかと思う
のですが、c#の場合、どのようにするのが常套手段でしょうか?
0723デフォルトの名無しさん
2008/01/02(水) 10:57:37this.Visible = false;
formB.ShowDialog();
this.Visible = true;
ってすれば?
0724デフォルトの名無しさん
2008/01/02(水) 11:01:00ちゃんと探せよ
StatusStrip.SizingGrip = False
0725デフォルトの名無しさん
2008/01/02(水) 11:11:31あ…なるほど…
ありがとうございます
0726デフォルトの名無しさん
2008/01/02(水) 13:22:40右下や左下などを(0, 0)とすることは可能ですか?
左上を(0, 0)として画像を配置するとPictureBoxに入りきらない大きさの画像は右側と下側が切れてしまいますが、
これを左側と上側が切れるようにしたいのです。
もし可能であれば方法を教えてください。よろしくお願いします。
0727725
2008/01/02(水) 13:27:14分かり辛かったら申し訳ありません。
0728デフォルトの名無しさん
2008/01/02(水) 13:32:000729726
2008/01/02(水) 14:15:15レスありがとうございます。
オフセット設定でググってみたのですが、あまりピンときませんでした・・・。
もしよかったら詳しくオフセット設定について解説しているサイトなありましたら教えていただけないでしょうか?
申し訳ありませんが、よろしくお願いします。
0730デフォルトの名無しさん
2008/01/02(水) 14:54:120731726
2008/01/02(水) 15:27:32レスありがとうございます。
それも考えたのですがPictureBoxのサイズを画像のサイズより小さくすると右下から切れていくのと
上部にメニューバーを設置したいという理由で断念しました。
0732デフォルトの名無しさん
2008/01/02(水) 15:46:42x = x > y ? y : x;
これはどういう意味ですか?
検索しようにも何て検索したらいいか分からなくて困ってます。
よろしくお願いします。
0733デフォルトの名無しさん
2008/01/02(水) 15:49:510734デフォルトの名無しさん
2008/01/02(水) 15:53:270735デフォルトの名無しさん
2008/01/02(水) 15:57:490737デフォルトの名無しさん
2008/01/02(水) 17:02:11左クリックだと発生してるんですが…。
Buttonで右クリックを判断したいときってどうすればいいでしょうか?
0738デフォルトの名無しさん
2008/01/02(水) 17:07:350739デフォルトの名無しさん
2008/01/02(水) 17:21:07MouseClickイベントの中で、ログファイルに( MouseEventArgs ) e.Button.ToString()
をはき出させるようにして、Buttonの上でかちかちやって見たんですが、
Leftしかログに残ってませんでした。
0740デフォルトの名無しさん
2008/01/02(水) 17:22:530741デフォルトの名無しさん
2008/01/02(水) 17:30:25「Windows フォームにおけるマウス イベント」参照。
MouseUp 辺りで代用したら?
0742デフォルトの名無しさん
2008/01/02(水) 17:32:010743デフォルトの名無しさん
2008/01/02(水) 17:34:10Buttonで右クリック取ったら問題あるだろう
自力でMouseUpでクリック発生させれば
0744デフォルトの名無しさん
2008/01/02(水) 17:36:05質問者は何がしたいの?もしかしてMouseDownを取りたいんじゃ?
0745デフォルトの名無しさん
2008/01/02(水) 18:08:05フォームを閉じるという動作をさせたかったのです。
MouseDownで取ることにします。
ありがとうございます。
0746デフォルトの名無しさん
2008/01/02(水) 19:13:440747デフォルトの名無しさん
2008/01/02(水) 20:34:39MouseUpの方が違和感ないと思うぬ。
0748デフォルトの名無しさん
2008/01/02(水) 20:43:440749デフォルトの名無しさん
2008/01/02(水) 20:45:000750デフォルトの名無しさん
2008/01/03(木) 05:24:58切断時にClose-Notifyを送信するにはどうすればよいのでしょうか?
単純にSslStream.close()メソッドを呼ぶといきなりFIN送信してしまいます。
0751デフォルトの名無しさん
2008/01/04(金) 05:20:35最初は、データの定義は全部構造体でやってたんだが。
値型だからa=bってやったらオブジェクトが毎回コピーされてバグも少ないと思って。
でも、構造体の中の配列とかで参照型が絶対混じるし、むしろ全部参照型にするよりややこしくなって
よけい思わぬバグを産むことにきづいた。
最近はデータの定義もほとんどclassにしてMemberwiseClone()使ってコピーと参照渡しの
使い分けができるようにした。
構造体の利点ってローカル変数として一時的に使う場合にclassより高速ってだけで、
メソッドの参照渡し以外はコピーしかできなくて柔軟性にかけるし、ボクシングとかすると往復二回はコピーされるから参照渡しより遅くなるし。
やっぱりjavaみたいに全部参照でやった方が安全確実じゃん。
0752デフォルトの名無しさん
2008/01/04(金) 05:45:21class Class1
{
public string x = "x";
public string Get()
{
return x;
}
}
class Class2 : Class1
{
public string x = "y";
}
とすると、
Class2 class2 = new Class2();
MessageBox.Show("Get():" + class2.Get());
MessageBox.Show(".x :" +class2.x);
の結果が、
Get():x
.x :y
となります。Get():y となる様にするにはどうしたらよいでしょう?
継承したクラスの中のメソッドで継承元と違う値を使いたいのです。
virtual,override,newと試してみたのですが望む結果になりません。
0753デフォルトの名無しさん
2008/01/04(金) 05:50:59class Class2 : Class1 {
public Class2() {
base.x = "y";
}
}
0754デフォルトの名無しさん
2008/01/04(金) 05:55:09オーバーライドでできるはずだが
class2の中で
public override string Get()
{
return this.x;
}
0755デフォルトの名無しさん
2008/01/04(金) 06:18:14朝っぱらからありがとうございます。どっちの方法でもいけました。
ただ、今回の場合、実際にはGet()の中に長めのコードが書いてあり、その中の1つの変数だけを
変更して使用したいのでbase.xの方でやってみます。
何時間も調べてわからなかったのでほんとに助かりました。まだ調べるためのキーワードすら
うまく選べない状態です。
名前が似てるから簡単にわかりそうと思って始めたのに、ぜんぜん違うもんですね。
0756デフォルトの名無しさん
2008/01/04(金) 06:33:55xをprotected virtualなプロパティにして派生クラスでオーバーライドすれば?
0757デフォルトの名無しさん
2008/01/04(金) 09:06:22今回の場合、途中で変更しないので問題ありません。が、変更不可能とは思っていませんでした。
正直いいまして言葉の意味がさっぱりわからないのですが、いまからじっくり調べてみたいと思います。
0758デフォルトの名無しさん
2008/01/04(金) 09:21:45C++でも隠蔽すればこれと同じ問題がおきるだろ?
0759デフォルトの名無しさん
2008/01/04(金) 10:00:59確か、MS自信の方針でも、
サイズが数バイト以下で、絶対継承しないと分かってて、
MemberwiseClone 相当のことをよっぽど頻繁にする場合を除いて、
構造体は使わない。
0760デフォルトの名無しさん
2008/01/04(金) 10:12:200761デフォルトの名無しさん
2008/01/04(金) 10:19:490762デフォルトの名無しさん
2008/01/04(金) 13:12:22そういう特殊な用途に限るな
0763デフォルトの名無しさん
2008/01/04(金) 14:53:53固定小数点数型とか
0764デフォルトの名無しさん
2008/01/04(金) 16:00:36C#だとどういう実装がいいのかな?
配列を動的に増やすと部分削除が気持ち悪いんだけど
struct hoge{
char hogehoge[1];
hoge *beforptr;
hoge *nextptr;
};
0765デフォルトの名無しさん
2008/01/04(金) 16:06:250766デフォルトの名無しさん
2008/01/04(金) 16:07:39でもLinkedList優先
0767デフォルトの名無しさん
2008/01/04(金) 18:23:22Aのhogeは宣言時に初期化されていません。
そこで、Bのメソッドの中で、hogeが初期化されてるかどうかを知りたいのですが、
なにか良い方法はあるでしょうか。
クラスではないのでnullで判定できないので…。Javascriptでいうところのundefのような
ものはないでしょうか。
0768デフォルトの名無しさん
2008/01/04(金) 18:30:14Aをいじれるんだったら、hoge? (Nullable<hoge>)を使うか、
Aに初期化されたかどうかのフラグを付ける
0769デフォルトの名無しさん
2008/01/04(金) 19:45:43> メンバの構造体のインスタンスは自動で規定値に初期化されるけどそういうことではない?
お、そうなんですか
知りませんでした。ありがとうございます。
0770デフォルトの名無しさん
2008/01/05(土) 02:02:06++
++ = #
となったと聞いたのですが、本当なのでしょうか?
0771デフォルトの名無しさん
2008/01/05(土) 02:30:51ちなみに#(ナンバー)と書いてシャープと発音するのは
C#の七不思議のひとつです
0772デフォルトの名無しさん
2008/01/05(土) 03:11:45C# 以外にもいくつか候補があったけど # が ++++ に見えるから C# にしたって。
ナンバーをシャープの代用にするのはよくあること。
0773デフォルトの名無しさん
2008/01/05(土) 03:15:15ttp://www.atmarkit.co.jp/fdotnet/insiderseye/20060215cscommunity/cscommunity_01.html
0774デフォルトの名無しさん
2008/01/05(土) 11:51:12>「COOL」(C like Object Oriented Language:Cライクなオブジェクト指向言語。クール)
これもかなりハイセンスですね。
0775デフォルトの名無しさん
2008/01/05(土) 15:58:14「プロパティまたはインデクサを out か ref のパラメータとして渡すことはできません。」
と警告を受けてしまいました。
インスタンスとインデックスを渡して変更しようと思いBのようなメソッドを作成したのですが、
「角かっこ [] 付きインデックスを 'T' 型の式に適用することはできません。」
といわれてしまい、やはりうまくいきません。
インデクサを持つクラスでも利用可能なように拡張するためには、これをどう変更したらいいのでしょうか?
// A
public static void Swap<T>(ref T LeftParam, ref T RightParam)
{
T temp;
temp = LeftParam;
LeftParam = RightParam;
RightParam = temp;
}
// B
public static void Swap<T>(T Target, int LeftIndex, int RightIndex) {
T temp;
temp = Target[LeftIndex];
Target[LeftIndex] = Target[RightIndex];
Target[RightIndex] = temp;
}
0776デフォルトの名無しさん
2008/01/05(土) 16:07:28無理。諦めれ。
0777デフォルトの名無しさん
2008/01/05(土) 16:35:32Aはインデックサだけでなくプロパティは全部ダメだろ。
BはTがインデックサをもつクラスの型なのかインデックサが返す(設定できる)値の型なのか混乱しとるよ。
0778デフォルトの名無しさん
2008/01/05(土) 17:57:45一般のインデクサは諦めて、Bの引数の型をIList<T>にすれば?
大抵それで事足りる
0779デフォルトの名無しさん
2008/01/05(土) 19:33:42ここって正月休みの間に俺以外みんなエスパーになったんだろうか
0780デフォルトの名無しさん
2008/01/05(土) 19:57:44さすがにこれはわかるよ
0781デフォルトの名無しさん
2008/01/05(土) 20:01:570782デフォルトの名無しさん
2008/01/05(土) 20:05:50沢山のレスありがとうございます。
何故かインターフェースには頭がいきませんで、778さんの方法でとりあえずは問題なく動くものになりました。
ただ一般のインデクサには無理なんですね、これはちょっと意外です。
なんにせよ想定した動作は実現できました。ありがとうございました。
>>779
わかりづらい表現で申し訳ございません。
780さんの仰るとおりです。簡潔に表現できるよう精進します。
0783デフォルトの名無しさん
2008/01/05(土) 22:56:21インデクサは無理だったかも知れんが。
0784デフォルトの名無しさん
2008/01/05(土) 23:07:170785デフォルトの名無しさん
2008/01/05(土) 23:14:19hoge[n]がindexerとすると
x = hoge[n] は x = hoge.get_Item(n)
hoge[n] = x は hoge.set_Item(n, x)
になるんで、ref hoge[n] はナンセンスということになる。
0786デフォルトの名無しさん
2008/01/05(土) 23:24:50VBでもできたdebug.printに当たるものがc#ではどの記述になるのでしょうか?
つまらない質問ですけど教えてください
0787デフォルトの名無しさん
2008/01/05(土) 23:28:20Debug.WriteLine
0788デフォルトの名無しさん
2008/01/05(土) 23:28:49using System.Dianogstics; があれば Debug.Printがつかえるぞっと。
ただ一応、Debug.WriteLineの方をすすめる。
0789デフォルトの名無しさん
2008/01/05(土) 23:34:11VBならシンタックスシュガーでそのナンセンスなこともしてるな。
0790デフォルトの名無しさん
2008/01/05(土) 23:35:500791デフォルトの名無しさん
2008/01/05(土) 23:37:030792デフォルトの名無しさん
2008/01/05(土) 23:39:18get して set する形に変換されて実行されたはず。
0793デフォルトの名無しさん
2008/01/05(土) 23:54:35T t1 = Target[0]; T t2 = Target[1];
Swap(t1, t2);
Target[0] = t1; Target[1] = t2;
・・・・なんか無駄なことをしてる気がする。
0794デフォルトの名無しさん
2008/01/06(日) 13:21:53TItem tmp = get(left, leftIndex);
set(left, leftIndex, get(right, rightIndex));
set(right, rightIndex, tmp);
}
使い方:Swap(Target, 0, Target, 1, (a, i) => a[i], (a, i, item) => a[i] = item);
じゃあこれで
0795デフォルトの名無しさん
2008/01/06(日) 14:06:09それはともかく質問
C++をちょっとかじった身でC#に入りました。
とりあえずデザイナとデフォのフォームのコンストラクタに書いてあったInitializeなんちゃらという辺りのとこも把握
エントリポイントはあえて言うならデフォでいうところのForm1_Loadかというところも把握
C++ですとクラスを宣言定義し、クラスの宣言定義とは別のmain()なんかの中でオブジェクト作ってそいつらを使って・・・という感じですが
C#だとクラスの中でそれを・・・となんだかこんがらがっています
とりあえずForm1_Loadをmain()と考え、Form1クラスの外で色々なクラスを宣言定義していくのがベターなのでしょうか?
要するForm1_LoadをエントリポイントとしてC++ぽくやっていいんでしょうか?
まずC++もかじった程度なのでそこに認識の間違いがあるかもしれないですがorz
0796デフォルトの名無しさん
2008/01/06(日) 14:10:18それとその考えでいくとForm1クラスをどうこうするときつまりそうだ
0797デフォルトの名無しさん
2008/01/06(日) 14:10:39C#のエントリポイントもMainだよ。
0798デフォルトの名無しさん
2008/01/06(日) 14:10:56そこでForm1のインスタンスが作られてメッセージループが開始される
0799デフォルトの名無しさん
2008/01/06(日) 14:11:08とりあえずコンソールアプリケーションから作ってみろ
0800デフォルトの名無しさん
2008/01/06(日) 14:14:360801デフォルトの名無しさん
2008/01/06(日) 14:14:44〜をされたら〜をするというイベントドリブンの考え方になってる?
って書いてたら似たようなレスが既にいっぱいついてるな
0802デフォルトの名無しさん
2008/01/06(日) 14:15:03なんか違和感があると思ったらそういうことだったんですね
いまいちうまく解説サイトが見つからないので本でも買ってきて基礎からやりなおしてみます
0803デフォルトの名無しさん
2008/01/06(日) 14:33:020804デフォルトの名無しさん
2008/01/06(日) 14:38:26こういうので使う人のアクションに応じて動いたりするのをどうこうするってことかな・・
0805デフォルトの名無しさん
2008/01/06(日) 16:04:55指定したidが、現在のリストの長さよりも長いとき、Capacityプロパティを利用してリストの長さを伸ばして、そこにデータを代入しようとしています。
やってみると、ArgumentOutOfRangeExceptionが表示されてプログラムが停止します。
正直これであっていると思うのに、.NetFrameworkのバグでしょうか?
if(ChangeList.Capacity>id)
ChangeList.Capacity=id;
ChangeList[id]=object;
0806デフォルトの名無しさん
2008/01/06(日) 16:08:39Hint: 0-origin
0807デフォルトの名無しさん
2008/01/06(日) 16:10:13>正直これであっていると思うのに、.NetFrameworkのバグでしょうか?
その自信はどこから来るのか知りたい。
なんのリストを使ってるか知らないけど、大きさ10なら添え字の範囲は0−9だ。10は範囲外。
0808デフォルトの名無しさん
2008/01/06(日) 16:11:33配列使っても一緒だろ
0809デフォルトの名無しさん
2008/01/06(日) 16:15:090810デフォルトの名無しさん
2008/01/06(日) 16:15:440811デフォルトの名無しさん
2008/01/06(日) 16:17:020812デフォルトの名無しさん
2008/01/06(日) 16:19:380813デフォルトの名無しさん
2008/01/06(日) 17:11:54言ってることとコードが合ってなくね?
それにまずCapacityの意味が思ってるのとは違うよ
単に内的にサイズ拡張しないでも追加できる数にすぎないよ
.Length-1を越えて添え字アクセスしたらそりゃArgumentOutOfRangeExceptionが出るわな
Dictionary使えば?
0814デフォルトの名無しさん
2008/01/06(日) 17:16:37○Count-1を越えて
ですた
0815807
2008/01/06(日) 17:41:09反省してきます。
0816デフォルトの名無しさん
2008/01/06(日) 17:55:200817デフォルトの名無しさん
2008/01/06(日) 20:41:12↑を参考に、C# から Ruby を動かしています。
rb_funcall で Ruby のメソッドを呼び出したとき、
メソッド内で例外が発生すると、
System.AccessViolationException が発生して、
アプリが終了してします(try{}catchでは補足できません)。
VALUE result = Ruby.rb_protect(delegate(VALUE self)
{
return Ruby.rb_funcall(Ruby.Qnil, Ruby.rb_intern(name), Param1, Param2);
} Ruby.Qnil, ref state);
としてみましたが、結果は同様でした。
rb_funcall により Ruby 内で発生した例外を C# 側で補足することはできないでしょうか?
0818デフォルトの名無しさん
2008/01/06(日) 21:43:13Ruby側(C#とのインターフェースになるMethod)で例外処理して処理結果コード返すのが安心で普通だと俺は思うけど・・・
0819デフォルトの名無しさん
2008/01/06(日) 21:53:09できるんだったらC++/CLIでラップしてみるとか
0820デフォルトの名無しさん
2008/01/07(月) 00:00:10>>818
現時点でも実行速度に問題ありなので、Ruby側の処理はこれ以上増やしたくありません。
でも、アプリ落ちるよりはいいので、対策がみつからなかったら
その手でいこうと思います。
>>819
Cでなら817のように書くことで例外を補足できるようです。
(rb_protect のなかで setjmp、rb_funcallのなかでlongjmpするようです)
ただそのためだけにdllを増やしたくない、
できれば、C#だけで処理を行いたいというところです。
p/invoke って setjmp/longjmp する関数ってうまく扱えないんでしょうか?
(ぐぐりましたがよくわかりませんでした)
0821デフォルトの名無しさん
2008/01/07(月) 00:58:180822デフォルトの名無しさん
2008/01/07(月) 01:00:02下一桁目
0823デフォルトの名無しさん
2008/01/07(月) 01:15:05見やすいように縁取りして表示させたいです。
で、下記のコードでやるとペンの縁取り分が表示に含まれません。
ペンの描画範囲までRegionを広げる方法ないでしょうか?
Region指定ではなく、TransparencyKeyでウィンドウ背景色を
指定すると、理想の表示になるのですが、
レイヤードウィンドウになってしまい、
他の利用ソフトとの相性が悪いようで避けたいです。
Font font = new Font("MS Pゴシック", 72);
GraphicsPath gp = new GraphicsPath();
gp.AddString("テスト", font.FontFamily,
(int)font.Style, font.Height, new Point(0, 0), StringFormat.GenericDefault);
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Black);
pen.Width = 5;
g.DrawPath(pen, gp);
g.FillPath(Brushes.White, gp);
this.Region = new Region(gp);
0824デフォルトの名無しさん
2008/01/07(月) 01:28:00このクラスのWaitOne()は、このメソッドを呼び出したスレッド(Aとする)をSet()が呼ばれるまで止める役割があるんですよね?
スレッドAが止まっている時のThreadStateはどうなっているのでしょうか?
というのも、別のスレッドで、
while ((スレッドA.ThreadState & ThreadState.Running) == ThreadState.Running)
Thread.Sleep(1);
と記述したところ、プログラムが止まってしまったもので。
0825デフォルトの名無しさん
2008/01/07(月) 01:39:41そら、Runningだからだろう 常考
ちょっと考えれば、WaitOne()で止まってる時にどんなステータスになっているのかを
デバッガで見てみるなり表示するなりしてみれば人に聞かなくてもわかるだろ・・・
0826デフォルトの名無しさん
2008/01/07(月) 01:47:30>>820
rb_protect版を試してみたけどAccessViolationException起きなかったよ。
もうちょい再現方法プリーズ。
0827デフォルトの名無しさん
2008/01/07(月) 02:51:38もしかしてRunningってスレッドが終了した後でもStartする前でもない場合全部Runningなのか・・・
勘違いしてました。
となるとステータスはbackground と WaitSleepJoin だったので、WaitSleepJoinを!=で比較してみます。
0828デフォルトの名無しさん
2008/01/07(月) 15:00:54どうしたらいいでしょうか?
開発環境はvisual C# 2005です
0829デフォルトの名無しさん
2008/01/07(月) 15:04:36Form2 を作ってあるのなら、ボタンのハンドラで new して Show() とか
0830デフォルトの名無しさん
2008/01/07(月) 15:06:43ごめん、こんなかに書いてみて。
form2はクラスの追加から作ればいいですか?
private void button1_Click(object sender, EventArgs e)
{
}
0831デフォルトの名無しさん
2008/01/07(月) 15:08:03プロジェクト右クリックの追加でWindowsフォームってあるべ。
Form2 form2 = new Form2();
form2.Show();
一番簡単な例
0832デフォルトの名無しさん
2008/01/07(月) 15:13:45ありがとう。
例のコードを
private void button1_Click(object sender, EventArgs e)
の中にいれてみた。ボタン1をクリックしてもformが生成されるんだけど
form1をクリックしてもfrom2が複数生成されちゃう・・・
0833デフォルトの名無しさん
2008/01/07(月) 15:19:460834デフォルトの名無しさん
2008/01/07(月) 15:29:34解決
form2が表示されてる間、form1をクリックしてもform2のタイトルバーが点滅して
アクティブウィンドウの変更を許可しないプロパティってどれだ?
0835デフォルトの名無しさん
2008/01/07(月) 15:32:020836デフォルトの名無しさん
2008/01/07(月) 15:32:290837デフォルトの名無しさん
2008/01/07(月) 15:34:03その調子で全部聞くつもりかよ。
Show()の代わりに、Showdialog(this) とか。
0838デフォルトの名無しさん
2008/01/07(月) 15:34:220839デフォルトの名無しさん
2008/01/07(月) 15:37:12Show()を調べればすぐとなりにあるだろうが
とっかかりを聞くのはいいけど、
そのペースで完成までずっと書き込み続ける気かよ
0840デフォルトの名無しさん
2008/01/07(月) 15:37:37ごめん、ぐぐるより楽だったからつい。
つかvisual C#の解説ページあったら教えてほしい
ぐぐったけどあんまり見つからないんだよね
0841デフォルトの名無しさん
2008/01/07(月) 15:44:05ttp://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc60-32c8-4c22-8591-a20bf8dff1a2&DisplayLang=ja
0842デフォルトの名無しさん
2008/01/07(月) 15:51:100843デフォルトの名無しさん
2008/01/07(月) 15:55:340844デフォルトの名無しさん
2008/01/07(月) 15:58:48まさにゆとりw
0845デフォルトの名無しさん
2008/01/07(月) 16:33:28ttp://ansitu.xrea.jp/sb/log/eid42.html
0846デフォルトの名無しさん
2008/01/07(月) 20:38:00なんかほのぼのしてるのはなんでだ
0847デフォルトの名無しさん
2008/01/07(月) 20:41:16お前さんが一人で「ゆとり」だの「ほのぼの」だの意味不明なこと言ってるだけだろ。
0848デフォルトの名無しさん
2008/01/07(月) 20:46:11開き直るのも自覚なしを嘲笑われるのも子供の特権だよ
0849デフォルトの名無しさん
2008/01/07(月) 20:46:58本人乙w
0850デフォルトの名無しさん
2008/01/07(月) 22:04:45def foo
s="FOO"+nil
end
↑を rb_eval_string_protect しておいて、
>>817 を使って、
foo を起動するとこちらでは落ちます。。。orz
0851デフォルトの名無しさん
2008/01/07(月) 22:45:19いつのまにかテンプレが…
このスレだけなのか?
0852デフォルトの名無しさん
2008/01/07(月) 22:49:01http://forums.microsoft.com/msdn-ja/ShowForum.aspx?ForumID=187&SiteID=7
Visual Studio ユーザーグループ
http://vsug.jp/
@IT Insider.NET
http://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
http://www.atmarkit.co.jp/fdotnet/index/bbs/index.html
宇宙仮面の C# プログラミング / C# Programming
http://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
http://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
http://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
http://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
http://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
http://dobon.net/vb/dotnet/
.NET のつぼ
http://park16.wakwak.com/~mimi/dotnet/top.html
リンク生きているのか?
>>840
ゆとり君へ、上を全部読んでから出直せやこら。
0853デフォルトの名無しさん
2008/01/07(月) 22:58:370854デフォルトの名無しさん
2008/01/07(月) 23:00:390855デフォルトの名無しさん
2008/01/07(月) 23:03:130856デフォルトの名無しさん
2008/01/07(月) 23:30:26folderbrowserdialogで選択したディレクトリのフルパスを文字列として取得して
テキストボックスに表示するにはどうしたらよいでしょうか
ご教授お願いいたします
0857デフォルトの名無しさん
2008/01/07(月) 23:43:430858デフォルトの名無しさん
2008/01/07(月) 23:44:03XmlDocumentをXPathを使って色々処理する場合と
XDocumentをLINQを使って処理する場合でどのぐらい
実行速度に差があるのでしょう?
内部でXPathを使った場合とほぼ同等のコードに変換されているなら
ぜひLINQのほうを使いたいのですが・・・
0859デフォルトの名無しさん
2008/01/07(月) 23:53:260860デフォルトの名無しさん
2008/01/07(月) 23:54:32ウィンドウズメディアプレーヤーみたいに、見た目がいい感じのソフトを作るのは
C#でも可能なのでしょうか?
スキンで外観変更できるソフトとか見かけるけど、どうやってるんだろう?
0861デフォルトの名無しさん
2008/01/07(月) 23:58:260862デフォルトの名無しさん
2008/01/07(月) 23:58:53ttp://www.microsoft.com/japan/msdn/net/general/ms973265.aspx
>>858
自分でやれ
0863デフォルトの名無しさん
2008/01/08(火) 00:01:02これで詰まって3時間あまり。。。
ArrayListにクラスのインスタンスを追加して
foreach文で追加したインスタンスのメンバ(Item)に
アクセスするようにした場合はコンパイルが通り期待に通り動作するのですが
ArrayList[0].Itemのように個別にインスタンスのメンバに
アクセスした場合はコンパイルエラー「'object' に 'Item' の定義がありません。」となってしまいます。
ArrayListに追加したインスタンスのメンバの値を個別に取得するにはどうすればよいでしょうか?
お願いします。
0864デフォルトの名無しさん
2008/01/08(火) 00:04:230865デフォルトの名無しさん
2008/01/08(火) 00:05:13((Hoge)ArrayList[0]).Item みたいにキャスト。
もしくは List<> を使う。
0866863
2008/01/08(火) 00:06:36class Item
{
public string Item1;
}
class MainClass
{
public static void Main()
{
ArrayList Items = new ArrayList();
for (int i = 0; i < 10; i++)
{
Item item = new Item();
item.Item1 = i + " これはItem1";
Items.Add(item);
}
Console.WriteLine(Items[0].Item1); // ←これではコンパイルエラー「'object' に 'Item1' の定義がありません。」となってしまいます。
// foreach (Item i in Items)
// {
// Console.WriteLine(i.Item1); ←これではコンパイル通ります。
// }
}
}
0867デフォルトの名無しさん
2008/01/08(火) 00:07:21それを自分で作れるかどうかが嫁の尊敬を勝ち取れるかどうかにかかってる。
がんがれ。
C#で可能なのかという話なら、可能だ。
0868デフォルトの名無しさん
2008/01/08(火) 00:11:04本か何かでArrayList
0869868
2008/01/08(火) 00:11:59本か何かでArrayList使うと書いてあるんだったら仕方ないけど、
実際に自分でなんか作るときはArrayListは忘れていいよ
List<T>だけでおk
0870863
2008/01/08(火) 00:15:39Console.WriteLine(((Item)Items[0]).Item1);
とすることで解決できました。
List<>も使ってみたいと思います。
本当ありがとうございました。
0871デフォルトの名無しさん
2008/01/08(火) 00:18:29WPF知らなかったので調べてみました。
WPFには、.NET Framework3.0以上が必要のようですね。
Windows2000でも動作させたいので無理みたいです。
>>867
嫁の尊敬は別に欲しくないんですが、出されたお題をクリアできないのはむかつくので調べてるところです。
つーか、C#で、嫁にスキンを適用出来るとありがたいのですが。
0872デフォルトの名無しさん
2008/01/08(火) 00:20:39残念ながらC#で嫁にスキン適用は不可能。
嫁をアンインストしてクリーンインストするしかない。
0873デフォルトの名無しさん
2008/01/08(火) 00:24:260874デフォルトの名無しさん
2008/01/08(火) 00:33:13なんだろう。ネーミングセンスが悪くないか?
Itemsって使わないほうがいいと思うよ。
それにItemのなかにItem1ってメンバー作るのもどうかと。
0875デフォルトの名無しさん
2008/01/08(火) 00:35:41static void Main(string[] args)
{
VALUE state = 0;
Ruby.ruby_init();
const string funcdef =
"def foo\n" +
"s=\"FOO\"+nil\n"+
"end";
Ruby.rb_eval_string_protect(funcdef, ref state);
VALUE hoge = Ruby.rb_intern("hoge");
Ruby.CallbackArg0 func = arg => Ruby.rb_funcall(Ruby.Qnil, hoge, 0, 0);
VALUE result = Ruby.rb_protect(func, Ruby.Qnil, ref state);
GC.KeepAlive(func);
}
これで再現しなかったよ。
msvcrt-ruby18.dll(ruby-1.8.5-20061204-i386-mswin32.zip) + .NET 3.5 + Vista (x86)
0876875
2008/01/08(火) 00:46:17あーもしかしてと思ってと思って>>875のコードから
GC.KeepAlive(func); 抜いたら確かにAccessViolationExceptionおきるね。
言ってるのはこれのことじゃろか。
P/Invokeにデリゲートを渡す場合、そのデリゲートの寿命管理は.NET側の責任。
実は元のるびま記事にも書いてある。
ttp://jp.rubyist.net/magazine/?0021-RubyWithCSharp#fm05
0877デフォルトの名無しさん
2008/01/08(火) 01:22:13気になってたんで乙wやっぱりGC周りか。
でも要求はRuby側での例外をC#で補足じゃないのか?
0878デフォルトの名無しさん
2008/01/08(火) 02:46:58あれじゃあ使い物にならないじゃん。
0879デフォルトの名無しさん
2008/01/08(火) 06:59:38メニュー項目が自動で閉じてくれないので邪魔です。
フォームのどこか別の場所をクリックするまでそのまんま。
自動で閉じるようにする設定とかないんでしょうか?探してみたけど見つからず...
0880デフォルトの名無しさん
2008/01/08(火) 10:32:40OKボタンをクリックしたときにピコン!って音とOKダイアログを出したいのですが
0881デフォルトの名無しさん
2008/01/08(火) 10:41:01using System.Windows.Forms;
MessageBox.Show("ピコン!");
0882デフォルトの名無しさん
2008/01/08(火) 10:44:46どうやってやった?
Clickのハンドラだと閉じるけど、MouseDownだと閉じないな。
0883デフォルトの名無しさん
2008/01/08(火) 11:03:41普通にクリックで。
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
ファイル開くよ();
}
こんだけ。
0884デフォルトの名無しさん
2008/01/08(火) 11:15:15自己解決しました。
子要素があるとダメみたい。知らなかった。
0885デフォルトの名無しさん
2008/01/08(火) 12:32:20どんな糞UIを作ろうとしてるんだよw
0886デフォルトの名無しさん
2008/01/08(火) 12:58:21|
『開く』−『Unicodeで開く』
『ShiftJISで開く』
『EUCで開く』
こんな感じで、『開く』をクリックすると、前回と同じエンコードで開く、というのが
やりたかったけど、メニューが閉じてくれないので、
『ファイル(F)』
|
『開く』
『エンコード指定して開く』−『Unicodeで開く』
『ShiftJISで開く』
『EUCで開く』
こんな感じにしました。エンコード判別は難しそうなのでやめで。
0887デフォルトの名無しさん
2008/01/08(火) 15:40:53TextEncでぐぐれ
クリックのハンドラで
フォーカスをどこかに移すとか
開く.DropDown.Close();するとかいろいろあんだろ
0888デフォルトの名無しさん
2008/01/08(火) 15:45:32見たことないから886上のようなことはやめてほしい、個人的には。
0889デフォルトの名無しさん
2008/01/08(火) 15:52:19クリックできることに最後まで気が付かないか、サブメニューを早く出そうとして
クリックして、いきなりダイアログが出て驚くかどっちかだろうなw
0890デフォルトの名無しさん
2008/01/08(火) 18:17:54すんません、楽しようとしています。
0891デフォルトの名無しさん
2008/01/08(火) 19:11:250892デフォルトの名無しさん
2008/01/08(火) 19:15:54http://slimdx.mdxinfo.com/wiki/index.php?title=Main_Page
0893デフォルトの名無しさん
2008/01/08(火) 20:00:25マイクロソフト公式解説書も一杯あるし
どれがいいのか良く分からない orz
0894デフォルトの名無しさん
2008/01/08(火) 20:05:15他言語を何か修めて、それからじっくり逆引き辞典でも買ってやるのがいんじゃないの
そこまでC#にかけるべきかは微妙
0895デフォルトの名無しさん
2008/01/08(火) 21:10:35Visual C# Express EditonではWindowsサービス
アプリケーションは作れないものですか?
0896895
2008/01/08(火) 21:11:142005です
0897デフォルトの名無しさん
2008/01/08(火) 21:15:47作れる
0899デフォルトの名無しさん
2008/01/08(火) 21:32:27どんなソフトウェア作成にチャレンジすべきですかね?
勉強がてらなんかまとまったソフトウェアが作りたいのですが、
迷っています。
みなさんはいろいろな言語を覚えたてのころ
どんなソフトウェアをつくりましたか?
おしえてください
0900デフォルトの名無しさん
2008/01/08(火) 21:40:31趣味やゲームに使うならもぐらたたきかじゃんけんゲーム
0901デフォルトの名無しさん
2008/01/08(火) 21:40:35やっぱりマネージ怒を使うんスすね!割とお手軽に使えそうなんでよかったです
でも2.0でXNAに行ってしまったんですね・・・
0902デフォルトの名無しさん
2008/01/08(火) 21:56:560903デフォルトの名無しさん
2008/01/08(火) 22:01:010904デフォルトの名無しさん
2008/01/08(火) 22:44:210905デフォルトの名無しさん
2008/01/08(火) 23:12:37予想に反してXPathを使うよりもLINQのほうが早い…。中でどうなってんだか。
XmlNodeList nodes = doc.DocumentElement.SelectNodes("root[contains(elm, 'test')]");
int count = nodes.Count;
と
var nodes = from elm in doc.Root.Elements("elm")
where ((string)elm).Contains('test')
select elm;
int count = nodes.Count();
だったら下のほうが1割ぐらい早かったです。
LINQ初心者なんで、下の文がベストかどうかは知りませんが。
0906デフォルトの名無しさん
2008/01/08(火) 23:23:390907デフォルトの名無しさん
2008/01/08(火) 23:25:18foreach書くのが面倒になってきた
0908デフォルトの名無しさん
2008/01/08(火) 23:29:490909デフォルトの名無しさん
2008/01/08(火) 23:30:130910デフォルトの名無しさん
2008/01/08(火) 23:40:36TakeWhileじゃダメか
0911デフォルトの名無しさん
2008/01/08(火) 23:59:21form2.csからアクセスするにはどうしたらどうしたらよいでしょうか?
0912デフォルトの名無しさん
2008/01/09(水) 00:00:53visual studio 2005 Express Editionでも対応してる?
というか、この開発環境のデータベースマネージャみたいなのから接続できないの?
0913デフォルトの名無しさん
2008/01/09(水) 00:06:30プロパティやイベントの意味が解ってないんじゃない?
もうちょっとC#自体の勉強した方が
0914デフォルトの名無しさん
2008/01/09(水) 00:10:04書き方がまずかったかなぁ、まだ勉強して3日目です。
From1の中のテキストボックスのtextの文字列を
Form2の中のある部分で参照したいんです。別に値を変更とかはしなくていいです。
足りない要素があるならいってください、調べて追加します。
0915デフォルトの名無しさん
2008/01/09(水) 00:15:34get { return this.textBox1.Text; }
}
こういうプロパティをForm1に追加する。
テキストボックスをpublicにするという手もあるけど良くない。
Form2に定義したプロパティやコンストラクタでForm2にForm1のインスタンスへの参照を渡す。
Form1のインスタンスへの参照がform1という変数に入ってるとして、Form2内から
form1.MyText とすれば取得できる。
0916デフォルトの名無しさん
2008/01/09(水) 00:26:04>Form2に定義したプロパティやコンストラクタでForm2にForm1のインスタンスへの参照を渡す
ごめんなさい、ここをもう少し詳しく教えていただけないでしょうか?
オブジェクト指向は苦手でして・・・
0917デフォルトの名無しさん
2008/01/09(水) 00:37:21まずはオブジェクト指向について少しは勉強することをお勧めするよ。
基本的な用語の意味がわからんと、質問もとんちんかんだし
回答されても理解できない。
0918デフォルトの名無しさん
2008/01/09(水) 01:12:21それはよくないアドバイスだと思うな。
初心者は、わからない部分はとりあえずおまじないだと思って
作りたいものをどうにかして作ることから初めて、
動くプログラムを何個か作ってからオブジェクト指向について
勉強するっていう流れのほうがいい。
GOFのデザインパターンを、オブジェクト指向を覚えたてのプログラマが
学んでも眠いだけだけど、ある程度我流で何本かソフト作ってきた
人が学ぶと目からうろこだったりすることと同じさ。
0919デフォルトの名無しさん
2008/01/09(水) 01:17:07死ね
0920デフォルトの名無しさん
2008/01/09(水) 01:18:40はい死にます
0921デフォルトの名無しさん
2008/01/09(水) 01:43:22>>915はこういうこと
class Form1 {
public string MyText {
get { return this.textBox1.Text; }
}
}
class Form2 {
public Form2(Form1 f1){
this.textBox1.Text = f1.MyText;
}
}
0922デフォルトの名無しさん
2008/01/09(水) 01:59:06それも程度問題じゃないか?
いちいち言葉の意味から説明しなきゃならないようでは、どこからアドバイス
すればいいのかわからないっしょ。
とりあえず「オブジェクト指向は苦手」ということだから、「プロパティ」や「コンストラクタ」や
「インスタンス」や「参照」の意味から説明していかなきゃいけないんじゃないか?
そういう基本はチュートリアル見るなりなんなりで自分で身に着けてもらわないと
共通言語で話をすることができない。
0923デフォルトの名無しさん
2008/01/09(水) 02:07:48>>1読むか回答してからにしろ
0924デフォルトの名無しさん
2008/01/09(水) 02:18:44>>917 が回答だ。
> 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
0925デフォルトの名無しさん
2008/01/09(水) 03:47:14私も、.NET Framework の標準ライブラリの クラス図を見て喜びたいです。
.NET Framework の標準ライブラリのUMLを公開しているサイト、
もしくは、出力できるツールなどありましたら教えてください。
0926デフォルトの名無しさん
2008/01/09(水) 05:06:07http://www.microsoft.com/japan/msdn/vstudio/products/compare/default.aspx
でVisio for Enterprise Architectsが入ってるやつ買えばおk
VisioProでもできたはずだけど持ってないので自信なしw
0927デフォルトの名無しさん
2008/01/09(水) 07:31:05VS の Teamタケエエエエエ orz
0928デフォルトの名無しさん
2008/01/09(水) 09:01:250929デフォルトの名無しさん
2008/01/09(水) 09:01:30最近のビデオはみんな傾いてるから困ってたんだよなあ
0930デフォルトの名無しさん
2008/01/09(水) 09:08:170931デフォルトの名無しさん
2008/01/09(水) 09:21:18???
0932デフォルトの名無しさん
2008/01/09(水) 09:22:400933デフォルトの名無しさん
2008/01/09(水) 09:28:31丁寧にありがとうございます
ところでpublic Form2(Form1 f1){
のForm1 f1はnewとかで実体化しなくていいのでしょうか?
javaやってたのですが、その辺がC#であいまいです
0934デフォルトの名無しさん
2008/01/09(水) 09:37:09最初から書かれているってことですよね?それが出ないんですけど何が原因でしょうか?
visual studio2005で作っています
0935817
2008/01/09(水) 09:40:50テストコードまで書いていただきどうもありがとうございました。
ご指摘のとおり、デリゲートの寿命管理していなかった結果、
例外発生していました。
さらに調べた結果、
rb_funcall で例外発生
↓
デバッガ起動
↓
ローカル変数を表示しようとしてToString()呼び出し
↓
ToString() 内で例外発生してプログラムが落ちる。
というながれで、落ちてた原因は、rb_funcall とは関係ありませんでした orz
0936デフォルトの名無しさん
2008/01/09(水) 09:54:45ソースはどうなってる?
Form1.Designer.cs とかにFileName 設定してるとこある?
0937デフォルトの名無しさん
2008/01/09(水) 09:55:55今自分が思い付く方法としては、非表示にしたいノードをコレクションから削除し、再表示するときはコレクションに挿入するという方法なのですが。
0938デフォルトの名無しさん
2008/01/09(水) 10:02:32ソースで直接FileNameの値を入れたら思ったとおりの動作をしました。
前回まではVisual StudioのUIを通じて値を入れていたらその設定が反映されませんでした。
0939デフォルトの名無しさん
2008/01/09(水) 10:50:47UMLに似た機能としてクラスダイアグラムというものがあるけどねぇ(Std以上のエディション)。
標準ライブラリみたいにでかいものになってくると、でかすぎてエラーが発生し、
表示できない可能性大だけどね。
0940デフォルトの名無しさん
2008/01/09(水) 10:56:580941デフォルトの名無しさん
2008/01/09(水) 10:57:53UIで入れるとDesigners.csに反映されるんだけどな、1から作っても出るようなら
調べてみたほうがいいかもね。
0942デフォルトの名無しさん
2008/01/09(水) 11:30:090943926
2008/01/09(水) 11:40:58VS2005 Proはもう持っていたりする
> Visio for Enterprise Architects
> F MSDN Premium と組み合わせて購入した場合、提供されます。
o.....rz
>>939-940
ウィザードから WindowsApplication 生成して、クラスダイアログを作れたけど、
標準ライブラリのクラスダイアグラムの作り方がわからん(´・ω・`)
0944デフォルトの名無しさん
2008/01/09(水) 13:33:46Form1からForm2を開くんだろ?
Form2をインスタンス化するときに
Form2 f2 = new Form2( this );でいいじゃねーか。
ほんとうにjavaやってたのか?
0945デフォルトの名無しさん
2008/01/09(水) 15:15:19AllowDropをTrueにしても外部からのドラッグ自体受け付けてくれなくて困っています
同じForm内でテキストボックスからテキストボックスへ、とかリストビューからリストビューへ、というのはあるんですが外部からというのが見つからないですorz
0946デフォルトの名無しさん
2008/01/09(水) 15:27:500947デフォルトの名無しさん
2008/01/09(水) 15:28:28AllowDropは単にドロップを受け付けるかどうかの設定で、
実際にドロップされたやつに対してなんかやるというのは、
プログラムを組まないとだめ。
DataFormats.FileDrop でググればたくさんサンプル引っかかる。
0948デフォルトの名無しさん
2008/01/09(水) 15:33:53>>947
それでてっきりできたのかと思ったのですがファイルもドラッグできてしまう
フォルダだけにしたいのですがDataFormats下にフォルダっぽいのもないですしもしかして普通にやったら無理なのでしょうか
やるとしても結構いろいろ書かないとならないような感じの
0949デフォルトの名無しさん
2008/01/09(水) 15:40:20DragEnterは書いたの?
0950デフォルトの名無しさん
2008/01/09(水) 15:48:09えんたーの中で識別するんですね、理解しました
0951デフォルトの名無しさん
2008/01/09(水) 21:42:55例えば初期設定のような感じで、項目を選択していき本使用となるものだった場合
その選択した項目の情報はどのように保存するのかということです
普通にファイルとして出力してしまうと、テキストエディタなどから開けば普通に見れるしいじれてしまいますが
そんな感じで良いのでしょうか?
0952デフォルトの名無しさん
2008/01/09(水) 22:14:33XmlSerializerとか使うと楽。
いじられるのがいやならBinaryFormatterとか。
0953デフォルトの名無しさん
2008/01/09(水) 22:33:440954デフォルトの名無しさん
2008/01/09(水) 22:35:130955デフォルトの名無しさん
2008/01/09(水) 22:37:17昔はレジストリやiniファイルが主流だったけどね、いまはXMLで保存しておくのがベスト
0956デフォルトの名無しさん
2008/01/09(水) 22:54:120957デフォルトの名無しさん
2008/01/09(水) 22:54:22できる。
mysql のODBCドライバ拾って来い
0958デフォルトの名無しさん
2008/01/09(水) 22:55:540959957
2008/01/09(水) 23:01:18かくじ c# PostgreSQL でぐぐるように。
0960デフォルトの名無しさん
2008/01/10(木) 02:48:09saveFileDialogでファイル保存することが出来るというのは知っているのですが、
「実際にファイルに保存させるには(保存させる内容によって)独自のコードを
追加する必要がある」そうで、その方法がサッパリ分からなくて困っています。
ラジオボタンやチェックボックス、(グラフによる)パラメータなどの
変更内容を保存するには、どのようなコードを書けば良いのでしょうか。
(例えば、CheckBox1にクリックした、RadioButton3にクリックした、
といった変更をファイルに保存させるためのコードのことです)
あと、子フォームが開いてないときに保存しようとした場合の例外処理と、
(複数開いてるときに)アクティブな子フォームがどれなのかを調べて、
そのフォームの内容だけを保存させるためのコードも一緒にご教示いただけると非常に助かります。
よろしくお願いします。
0961デフォルトの名無しさん
2008/01/10(木) 03:07:39SaveFileDialog はファイル名を選択するだけだよ。
そいつでファイルは保存することができない。
0962デフォルトの名無しさん
2008/01/10(木) 03:15:52ちょっと上にやりたい事の答えがある気がするよ
0963デフォルトの名無しさん
2008/01/10(木) 03:33:510964デフォルトの名無しさん
2008/01/10(木) 03:35:56あ、そういえばOpenFile…でしたっけ?
>>962
もしかして>>951に書いてある、「設定ファイル」ですか?
私の場合、逆にファイルとして保存させたいのですが…
すみません、さっき初めてきたので前後の状況が把握できずにいますorz
0965デフォルトの名無しさん
2008/01/10(木) 03:52:09つ XML Binding
>>964
ごめん、言ってる事がよくわからない。
Form→設定ファイル出力
設定ファイル読み込み→Form反映
これでも求めてる物と違うの?
0966デフォルトの名無しさん
2008/01/10(木) 03:59:33パネルの上に描写したいのですが、画面がチラついてしまいます。
パネルのプロパティにDoubleBufferedがなく、
どうしたらチラつかないようにできるのか分かりません。
ご教示お願いします。
0967デフォルトの名無しさん
2008/01/10(木) 04:01:59多分、私が把握しきれてないorz
>Form→設定ファイル出力
>設定ファイル読み込み→Form反映
それでフォームの内容が保存できるのでしたら。
0968デフォルトの名無しさん
2008/01/10(木) 04:09:27とりあえず
ボタンAクリックで、Form上のなんらかのデータをtxtファイルに書き出し
ボタンBクリックで、txtファイル読み込んで再表示
を勉強がてら書いてみな
0969デフォルトの名無しさん
2008/01/10(木) 04:17:30設定ファイルってのが変数等ではなく
フォームの状態事態って言いたいんだろうと思う
>>964が保存読み込みしたいのははini等の「設定ファイル」ではなく
>>963の言うシリアライズされた値なんじゃない?
「設定ファイル」にそれを書き込めばいいって話ではあるけど
0970デフォルトの名無しさん
2008/01/10(木) 04:24:09>>967のレス見れば判るが手法云々じゃない
>>960はプログラミング自体ズブの素人だろ
0971デフォルトの名無しさん
2008/01/10(木) 04:33:01まったくその通りで。
一応、本に書いてあることやプロパティで出来そうなことなら
自力でやるつもりでしたが、>>960に書いてあるように、
内容を保存させるためのコードが分からないんです。
「テキストボックスに書いた文字列」を保存させたいのではありません。
0972デフォルトの名無しさん
2008/01/10(木) 04:42:30>内容を保存させるためのコードが分からないんです。
>「テキストボックスに書いた文字列」を保存させたいのではありません。
俺には違いがわからんなぁ・・・
0973デフォルトの名無しさん
2008/01/10(木) 04:54:57テキストボックスの文字列をtxtファイルとして保存させるコード、
イメージをjpegなどのイメージファイルとして保存させるコードは本とかに
書いてあるので何とか自力で出来るのですが、
たとえばチェックボックスをクリックして、それを保存し、次回開いたときに
その状態が保たれている、ということがしたいわけですが、
その、「保存させるための方法」が分からないというわけです。
何度もすみません。
あと、iniファイルじゃなくて、txtとかmp3とかのように独自の拡張子で保存したいので、
「設定ファイル」とは違うような気がします。
0974デフォルトの名無しさん
2008/01/10(木) 05:04:24チェックボックスの値を保存するなら
・保存ダイアログでファイル名指定
・ファイル開く
・チェックボックスの状態取得
・ファイルに書き込み
〜他に書くべきものがあれば全部書く
・ファイル閉じる
読み込みはその逆
0975デフォルトの名無しさん
2008/01/10(木) 05:23:11ありがとうございます。
ど素人にお付き合いいただき、恐縮です。
またくだらないような質問をしてしまうかもしれませんが、
そのときはよろしくお願いします。
では。
0976デフォルトの名無しさん
2008/01/10(木) 07:21:18PostgreSQL なら Npgsql が使いやすい。後は調べてくんろ
0977デフォルトの名無しさん
2008/01/10(木) 07:40:34プロパティ→ApplicationSetting→PropertyBinding
のほうが簡単かも。
保存のコード1行書くだけでOKだし。
0978デフォルトの名無しさん
2008/01/10(木) 08:23:530979デフォルトの名無しさん
2008/01/10(木) 09:41:28アプリの状態を全部そのまま保存する機能がほしいものだな
0980デフォルトの名無しさん
2008/01/10(木) 10:49:15嘘ですすんません。
0981デフォルトの名無しさん
2008/01/10(木) 11:07:12Tnx
恐ろしいほど簡単に出来た。10分ぐらい?先人に感謝。
0982デフォルトの名無しさん
2008/01/10(木) 21:57:38自分でBitmapに描画してダブルバッファやれば
0983デフォルトの名無しさん
2008/01/10(木) 22:53:42って出来ますか?
代わりの方法でもいいので教えてください
0984デフォルトの名無しさん
2008/01/10(木) 22:56:31それがわからないと代わりの方法なんて教えられるわけがない
0985デフォルトの名無しさん
2008/01/10(木) 23:19:220986デフォルトの名無しさん
2008/01/10(木) 23:20:500987デフォルトの名無しさん
2008/01/10(木) 23:21:220988デフォルトの名無しさん
2008/01/10(木) 23:23:110989デフォルトの名無しさん
2008/01/10(木) 23:27:19ありがとうございます。
もうひとついいですか?
DLL(クラスライブラリ)でメッセージボックスって出せないんですか?
0990デフォルトの名無しさん
2008/01/11(金) 00:08:16できるよ
できないことは起動プログラムとして動作することくらい
0991デフォルトの名無しさん
2008/01/11(金) 00:10:570992デフォルトの名無しさん
2008/01/11(金) 00:20:580993デフォルトの名無しさん
2008/01/11(金) 12:03:41VS2005 C#でプログラムしていますが、HOMEPATHを取得することはできますか?
もしできるならやり方をご教授いただけないでしょうか。
お願いします。
0994デフォルトの名無しさん
2008/01/11(金) 12:14:200995デフォルトの名無しさん
2008/01/11(金) 13:31:42Enumerableクラスに定義されているもの以外の拡張メソッドはありますか?
0996デフォルトの名無しさん
2008/01/11(金) 15:32:41while (sr.Peek() > -1)
{
if (sr.ReadLine() == null)//空行ならwhileを抜ける
break;
if (sr.ReadLine() == "list2")//list2という文字列を見つける
{
if (sr.Peek() > -1)//list2という文字列があった次の行へ行く
{
listBox2.Items.Add(sr.ReadLine());
break;
}
}
else
listBox1.Items.Add(sr.ReadLine());
}
ファイルがsrに読み込まれています。
ここから1行ずつlistBox1に追加していき、list2という文字列を見つけたら次の行をlistBox2についかしwhileを抜ける
という動作をしたいのですがソースの下から2行目のlistBox1に追加する段階でnullを入れようとしているらしくそのようにエラーがでます
Peekメソッドの使い方等に何か問題があるのでしょうか?
どうにも検討がつかなく困っています
0997996
2008/01/11(金) 15:34:40ファイルの方はしっかりエディタで開きチェックをしていますが空行はありません
また、スペースだけの行というのもありませんでした
0998デフォルトの名無しさん
2008/01/11(金) 15:36:59よく見てないが
> if (sr.ReadLine() == null)//空行ならwhileを抜ける
空行なら == "" じゃね?
0999デフォルトの名無しさん
2008/01/11(金) 15:40:57{
...
}
else
listBox1.Items.Add(sr.ReadLine()); //...2
1で読んじゃって"list2"じゃない場合その行は破棄されてるよ
んでそこが終行だったら2でnullが返るでしょう
1000デフォルトの名無しさん
2008/01/11(金) 15:41:20ふらっとC#,C♯,C#(初心者用) Part23
http://pc11.2ch.net/test/read.cgi/tech/1200033660/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。