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


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

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



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

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part43
pc12.2ch.net/test/read.cgi/tech/1248573707/

545 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:15:23 ]
ゆーざびりてぃーってなんですか

546 名前:デフォルトの名無しさん [2009/09/07(月) 20:29:17 ]
>>545
ユーザビリティーとは、使いやすくて面白くて優しくてまた使いたいと思って手が話せなくて美しくてサプライズがあって嬉しいこと。

547 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 20:49:00 ]
そりゃすごい

548 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 21:22:39 ]
>>537
WPF触ったことなかったのですが、簡単にできました
ありがとうございます

549 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 21:57:54 ]
using の使いどころなんですが、IDisposable は全部 using で囲っとけいいんでしょうか?
それとも囲うべきものと囲わなくていいてものがありますか?

あと、あるクラスを使おうとおもったときに、それが IDisposable を実装しているか
どうか簡単に調べる方法ありますか?いまはヘルプでしらべてるんですが、
そのクラスが直接 IDisposable を実装してれば簡単なんですけど、
継承元があると順々にヘルプを見ていくのが面倒なもので。

550 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:11:46 ]
厳密に言うとあるんだけど、気にせずに Dispose() できるものは Dispose() しとけば OK。

551 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:15:16 ]
>>549
ドット打ってIntelliSenseにDisposeが出てくればIDisposable。
でいいんじゃないかな(たまに隠れてるのもありますが9割方はOK)。
正確に調べたければ右クリックして定義に移動、そんなに手間かからないでしょ。

552 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:15:58 ]
usingは使えるときには使う。できれば,usingが使えないような使い方はなるべく避ける。

553 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:34:11 ]
StreamReaader/WriterとStreamはどっちをCloseするんだったか、
毎回忘れて悩む俺。

Stremをその後使わないなら両方Closeしてもいいんだっけ。
どうもこのあたり釈然としない。



554 名前:デフォルトの名無しさん [2009/09/07(月) 22:40:18 ]
WPFとWINフォームを混在させることはできるの?
WINフォームを作成しながら、時々WPFを使うことはできないの?

555 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:54:13 ]
>>553
StreamReader/Writer.Closeは元のStreamごとClose
元のStreamを閉じたくなかったら(WriterならFlushして)放置

556 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 22:54:17 ]
>>554
やったことはないが、できることはできる。ここを参照。
msdn.microsoft.com/ja-jp/library/ms753178%28VS.80%29.aspx



557 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:02:04 ]
>>555
そうかありがとう。

なんか分かりにくくてミスリーディングな仕様のような気もするけど、
それはたぶん俺の理解が浅いからなんだろうね。

558 名前:デフォルトの名無しさん [2009/09/07(月) 23:02:53 ]
>>542
ちょっとロードマックみてください
最終的な画像の大きさはピクチャーボックスの表示領域と決っているので
まず、最終的な画像の大きさと同じビットマップを作成
for(x=0;x<=xmax;x++)
for(y=0;y<=ymax;y++)
逆回転の計算をしてソース画像のピクセル情報を取得してコピー
座標がソース画像をはみだしたら背景色で埋める
loop
loop
こんな感じで考えてますが・・・
もと画像がでかい上に最終的な領域を計算で求めてから元画像のビットマップを
ループするより簡単かつ補完の必要がなさげ・・・・

>>543
SlimDX MDX ってWindows mobile や Framework compackt もカバーしてますか?
サイズが小さければ使いたいですが、ちょっと見ただけではカバーしてなさげで・・・

559 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:11:08 ]
>>557
うん、極めて明快な仕様だと思うよ。
ドキュメントが記述不足なのは確かだけどね。

560 名前:デフォルトの名無しさん mailto:sage [2009/09/07(月) 23:18:38 ]
>>558
つ「.NET Compact Framework での Mobile Direct3D プログラミング」
.NET CF2.0以降なら標準でついてるはず
どんなことができるのかは知らん

561 名前:デフォルトの名無しさん [2009/09/07(月) 23:55:16 ]
>>560
見てみます!ありがとう

562 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:06:06 ]
配列について質問があります。
配列の合成の話がありましたが、ふたつの配列のうち、いっぽうにあるものを取り除く方法を教えてください。
いっほうが配列で、もういっぽうがstringであれば、

string dislikeitem = "あんまん";
string[] menuitems = {"肉まん","あんまん","ピザまん","茄子","ゴーヤいり卵焼き"};
string favoritemenu = "";

foreach(string item in menuitems) {
if (!item.Contains(dislikeitem) && !favoritemenu.Contains(item)) favoritemenu = favoritemenu + item + "\r\n";
}
MessageBox.Show(favoritemenu);

のように書けるのですが、もういっぽうも配列になったときの比較の方法がわかりません。

string[] dislikeitems = {"にがうり","ゴーヤ","あんまん"};


563 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:24:33 ]
ループを一つ重ねるだけだと思うけど?
// 拡張メソッドならExceptがあるけど、比較にラムダ式使えないのは面倒だなー



564 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:26:01 ]
>>562
質問とは直接関係ないがStringBuilder使え。
んで、ループをforeachやめてforの2重ネストループにしろ

565 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:27:34 ]
もちろんforeachのがわかりやすいならそれの2重ループでも構わん

566 名前:デフォルトの名無しさん [2009/09/08(火) 00:29:25 ]
DxLib3.0誕生

567 名前:デフォルトの名無しさん [2009/09/08(火) 00:32:12 ]
>>560
見てみましたが3Dに特化した話でした

568 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:36:55 ]
>>566
むしろ今までDX7だったことに驚いた。

>>562
もしコードみてわからんかったらもっかい聞け。

string[] menuitems = {"肉まん","あんまん","ピザまん","茄子","ゴーヤいり卵焼き"};
System.Text.StringBuilder favoritemenu = new System.Text.StringBuilder();

foreach(string item in menuitems) {
foreach (string dislikeitem in dislikeitems)
{
if (!item.Contains(dislikeitem) && !favoritemenu.Contains(item))
{
favoritemenu.Append(item + "\r\n")
}
}
}
}

569 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 00:46:38 ]
こういうスレだと
長い変数って読むの面倒くさくなるけど
じっさいのコーディングだと普通に長い名前つけるよね

570 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:00:39 ]
面倒だからとても短い変数名にしてしまう

571 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:03:34 ]
読むのが面倒になるほど長い変数名って、可読性落ちて本末転倒じゃね?

変数名が長くなるのって、関数の粒度が大きすぎる時に起きやすい気がする。
適切に分割して関数にちゃんと名前つけてれば、長い変数名使わなくても十分分かりやすいと思う。

572 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 01:11:18 ]

ある程度変数長ければ
MenuItemsとかにした方が多少自分の命名ルール破っても読みやすい気がする

573 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 02:27:56 ]
>>564、565
配列と配列なので、

foreach(string item in menuitems) {
foreach(string dislikeitem in dislikeitems) {

のように重ねて書けばよいのかと思ったのですが、
それだと、
あんまん-にがうりの組み合わせであんまんがヒットしてしまいます。
(とりあえずforeachで実装。)

>>568
ゴーヤいり卵焼きがヒットします。

あとStringBuilderにはContainsがないそうで、uniqは別途処理する必要があるみたいです(それはできます)。




574 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 02:54:09 ]
いきなりコード書くよりまず手順を日本語で書いてみるのを勧めてみる

1.メニューの一つ目を手に取る。itemとする。
2.嫌いなメニューの一つ目を手に取る。dislikeとする。
3.dislikeがitemに含まれているか確認する。
 含まれていなければ次の嫌いなメニューの確認。
 含まれていれば、このitemは無視する。以降の嫌いなメニューの確認は不要。次のメニューへ。
4.全ての嫌いなメニューに含まれていないことが確認できたら、そのitemを出力する。
 次のメニューへ。

さあこのままコード化。
3で含まれていた場合に次のメニューに飛ぶのがちょいと単純ではないけどな。

575 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 03:13:56 ]
C#のHashtableをRubyみたいに簡単に保存ファイルにする方法ってありませんか?

576 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 03:15:19 ]
質問と一切関係ないが話の流れ的に
>>562にはぜひキャメルケースとか憶えてほしい。

577 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 03:46:44 ]
string[] menuitems = { "肉まん", "あんまん", "ピザまん", "茄子", "ゴーヤいり卵焼き" };
string[] dislikeitems = { "にがうり", "ゴーヤ", "あんまん" };
IEnumerable<string> diffSet = menuitems.Except(dislikeitems);

string favoritemenu = string.Join("\r\n", diffSet.ToArray());
MessageBox.Show(favoritemenu);

上で出てるけど、LINQ使っていいならExceptで簡単に差集合作れる。
あとはToArrayで配列にして、Joinで結合するだけ。

578 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 07:02:56 ]
HashtableってSerializableAttributeついてるからBinaryFormatter使えんじゃないの
試してないけど

579 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 08:36:23 ]
>>567
3D上の板として2Dを描画するのが最近では普通になってるんだよ

580 名前:デフォルトの名無しさん [2009/09/08(火) 09:35:06 ]
>>589
いや3Dの中でも縦回転以外の回転とかメッシュとか固定小数点化での高速化とか、ほんとうに3Dのためのトピックばかりで・・・

homepage2.nifty.com/tsugu/sotuken/rotation/

ここのサンプルでなんとか自作できそうです。
あとはLockBitでさらに高速化できるかな・・・という感じです。

581 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 09:43:38 ]
SetPixelやGetPixelは試すだけ無駄
高速化というよりLockBits使わないと使い物にならない

582 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 10:59:52 ]
ref DataRow を受け取るメソッドがあって、そこに型付DataSetのDataTableのrowを
渡したいのですが、どうやってCastすればいいんでしょうか?

UserDataSet.TESTTBLRow r = UserDataSet.TESTTBL.NewTESTTBLRow();
foo(ref r);

---

private void foo( ref DataRow r )

foo()の中でDataRowの中身を変更しています

583 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:02:53 ]
refなんかいらん
値型と参照型について勉強しなさい



584 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:05:51 ]
>>578
ありがとうございます試してみます

585 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:11:56 ]
>>577
それだとゴーヤ入り卵焼きが食卓に並んじゃう!

586 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:24:37 ]
ゴーヤ入り卵焼きからゴーヤを皿の脇によけて食べればいいじゃない

587 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:43:17 ]
>>583
ありがとうございます。refを削除してブイルドは通るようになりました。
ただ、次のようなコードを書いたときに、

---呼び出し元

foo( UserDataSet.TESTTBLRow r );

int a = r.HOGEHOGE; ← ここでエラー

--呼び出され元

private void foo( UserDataSet.TESTTBLRow row )
{
 row = UserDataSet.TESTTBL.FindByPKEY("xxxx"); // (1)
return;
}

FindByをした直後に row を見ると、個々のColumnには確かに値が入っているんですが、
その後r.HOGEHOGEを見るとDBNullに成っているようなのです。

(1)のところでイコール式で代入しているのが駄目なんでしょうか?

588 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:47:35 ]
いいから黙って値型と参照型について調べてこい
なぜ駄目か理解しないと意味がない

589 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 11:53:06 ]
参照型だと代入演算子で代入されるのはポインタとうい認識なのですが。
つまり

1) FindBy〜 でメモリ上のどこかにオブジェクトが作られて、オブジェクトへのポインタが返る
2) (1) のところで row = 〜〜 としているので、この時点では row は FindBy〜が作った
オブジェクトの領域を指している
3) 参照型なので、foo() の引数でやり取りされるのはポインタ。つまり r はFindBy〜で確保
されたオブジェクトの領域を指している

と言う感じで、r は FindBy〜で確保された場所をそのまま指しているのでは???

590 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:03:06 ]
ポインタはポインタ 参照型は参照型

そもそも何かを返したいなら返値で返せばよい

591 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:09:27 ]
>>590
答えになってないw

592 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:26:27 ]
var x = new Hoge(); // Hogeの実体を作り,紙xにその住所を書く
foo(x); // 紙xに記されている住所を新しい紙yに書き写してfooに渡す
Console.WriteLine(x.Value);//100が出力される

void foo(Hoge y) { //この時点でxとyは別の紙だが書かれている住所は同じ
y.Value = 100; // yに記されている住所をもとにHogeの実体を探し,Valueプロパティに100を代入する
y = new Hoge(); // yに書かれている住所を消しゴムで消して新しく作られたHogeの実体の住所を書く
y.Value = 200; // 初めに作られたHogeには影響しない
}
説明するのは難しいなあ

593 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:33:57 ]
>>587
その例で言うとですね、変数rと変数rowには同じobjを指し示すアドレスが入っています。
だからrow.XXXXX を変更すると r.XXXXX も同じように変更される(ように見える)のは貴方が
認識しているとおりです。

ただし、変数rの実体と変数rowの実体は別物です。ここに注意しましょう。
だから変数rowそのものの値を書き換えてしまうと、もはや「rowが示す先のobj」と「rが示す先
のobj」は別物になってしまうんです。

あくまで、「rowが示す先のobjの内容をrが示す先のobjに代入」しなければいけません。
で、そういう場合のために通常Copy()メソッドが用意されていたりするんですが、もし無ければ
自分で全要素コピーする必要があります。ディープコピーとかで調べてみて下さい。



594 名前:デフォルトの名無しさん [2009/09/08(火) 12:52:49 ]
>>581
まじすか! ありがとうございます。

595 名前:デフォルトの名無しさん [2009/09/08(火) 15:04:47 ]
BeginInvoke, EndInvokeを用いたスレッドからの例外について質問です。
以下のプログラムにて、BeginInvokeによって呼び出されるDoWork内の例外を、メインスレッドで
キャッチしてやるにはどうしたらいいのでしょうか?

Main()内のEndXXX呼び出しでキャッチ出来ると思っていたのですが、どうやら駄目なようです。

改行が多すぎると怒られたので、プログラムは次のレスに貼ります。

596 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:07:08 ]
static IAsyncResult BeginXXX(AsyncCallback cb){
Action f = DoWork;
return f.BeginInvoke(cb, null);
}

static void EndXXX(IAsyncResult ar){
AsyncResult res = (AsyncResult)ar;
Action del = (Action)res.AsyncDelegate;
del.EndInvoke(ar);
}

static void DoWork(){
throw new System.Exception("例外っす");
}

static void Main(string[] args){
AsyncCallback cb = (ar) =>{
try{
EndXXX(ar);
}
catch (Exception ex){
Console.Write(ex.Message);
}
};
BeginXXX(cb);
Console.ReadKey();
}

597 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:29:04 ]
何故メインスレッドでcatchしなければならないのか

598 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:34:22 ]
コールバックではなく、メインスレッドでEndXXXを呼び出せばいい

599 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 16:22:36 ]
>>574
できました。
これを見る前に、自分で考えたので、一日かかっちゃいました。
すこしロジックが違いますが、これで動くようです。
ありがとうございました。
string[] dislikeitems = {"にがうり","ゴーヤ","あんまん"};
string[] menuitems = {"肉まん","あんまん","ピザまん","茄子","ゴーヤいり卵焼き"};
string favoritemenu = "";
bool favorite;
foreach(string item in menuitems) {
favorite = false;
foreach(string dislikeitem in dislikeitems) {
if (item.Contains(dislikeitem)) favorite = true;
}
if (favorite == false && !favoritemenu.Contains(item)) favoritemenu = favoritemenu + item + "\r\n";
}
MessageBox.Show(favoritemenu);

>>576
キャメルケース?
調べてみます。

>>577
LINQは、まだ使ったことがないので、これを機会に勉強します。
ありがとうございました。
…あ。でもこれって、ゴーヤいり卵焼きも入っちゃいますよ。
と、585さんもおっしゃってました…。
>>586
そうか、その手があるか。って、そうじゃなくって。
LINQでゴーヤいり卵焼きをのぞく方法も教えてください。


600 名前:595 mailto:sage [2009/09/08(火) 16:26:42 ]
失礼しました、デバッグ環境だとcatchしてもコードは停止するのですね…。
ちゃんとメインスレッドでcatchしてるようです。

601 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 19:07:08 ]
してねーだろw
何が起こってるか理解しろよ。


602 名前:577 mailto:sage [2009/09/08(火) 19:16:34 ]
>>599
ゴーヤを外すなんてけしからん!真夏には必須だ!

string[] menuitems = { "肉まん", "あんまん", "ピザまん", "茄子", "ゴーヤいり卵焼き" };
string[] dislikeitems = { "にがうり", "ゴーヤ", "あんまん" };

var diffSet = from x in menuitems
where dislikeitems.All((y) => !x.Contains(y))
select x;

string favoritemenu = string.Join("\r\n", diffSet.ToArray());
MessageBox.Show(favoritemenu);

603 名前:デフォルトの名無しさん [2009/09/08(火) 19:32:01 ]
InfoPath2007とC#の組み合わせで開発をしています。

入力した文字列をSQLのWhere句に入れて、
取得された結果を動的にドロップダウンリストに入れたいのですが、
テキストボックスには結果が返ってくるのですが、
ドロップダウンリストは変化がありません

while (myReader.Read())
{
this.MainDataSource.CreateNavigator().SelectSingleNode("/my:travelRequest/my:d取引先名", NamespaceManager).SetValue(myReader.GetString(0)); ←こっちがドロップダウン
this.MainDataSource.CreateNavigator().SelectSingleNode("/my:travelRequest/my:d取引先_担当者", NamespaceManager).SetValue(myReader.GetString(1) + " / " + myReader.GetString(2)); ←こっちがテキストボックス、結果返ってくる
}

すみません、どなたか教えてください。



604 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 19:54:51 ]
>>601
どういう意味で?

605 名前:デフォルトの名無しさん [2009/09/08(火) 20:01:19 ]
なんで
トライ、キャッチなんだよ。

エラーとサクセスみたいなのでいいだろうが。


606 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:02:41 ]
>>601
msdn.microsoft.com/ja-jp/library/d14azbfh.aspx

この話でしょ。

607 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:03:18 ]
は?

608 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:05:01 ]
>>605
ダサい。

609 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:24:20 ]
エラー投げるんだからキャッチで良いんじゃない。

610 名前:601 mailto:sage [2009/09/08(火) 20:24:48 ]
言葉足らずだったかな。
>ちゃんとメインスレッドでcatchしてるようです。
ここに対して言った。


611 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:27:01 ]
VS2005、C#なんですが

pictureBoxの画像をマウスドラッグでgoogleMapのように滑らかにスクロールさせる方法ってありますか?
またはこのような実装を行う方法ってありますか?

612 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:27:01 ]
>>596
>Action f = DoWork;
>return f.BeginInvoke(cb, null);

へえ、こんな風にかけるんか

613 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:29:58 ]
>>612
俺もC#勉強中でこの書き方は初めて見た。
一般的にはどうかくんだろう。誰か教えて。



614 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:39:00 ]
>>613
マルチスレッドのやり方は幾つかあるし正着ってのはないんじゃないかな。
デリゲートに包むってのはそのうちの一つに過ぎないわけで。


615 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:40:25 ]
>>613
非同期デリゲートでググれ

ちなみに、silverlightではサポートされてないので、
コンパイルエラーにはならないが、実行時にエラーが出るので注意

616 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 20:58:28 ]
>>614-615
ガイドサンクス

617 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:02:52 ]
>>576
キャメルケース。パスカル方式のことでしたか。了解しました。
string[] menuItems = {"肉まん","あんまん","ピザまん","茄子","ゴーヤいり卵焼き"};
ってことですね。
っていうか、なんでそう書かなかったんだろ。
ふだんはそう書いているんですが。

>>602
LINQの一端に触れた気がします。
fromとかinとかwhereとかselectというのが、LINQの書式なのですね。
まだ充分じゃないですけど、foreachをネストする書き方にくらべて、圧倒的にスマートなことはわかりました。
ありがどうございます。


618 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:06:36 ]
Camel形式とPascal形式は違う
camelCase PascalCase

619 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 23:51:21 ]
>>603
コードが読みにくい。
まさか実際のソースもそんな書き方して無いよね?
趣味で作ってるのならいいんだけどさ。

で、問題の方だけど、ドロップダウンリストに値を設定してるところがダメなんじゃない?
InfoPathは使ったこと無いからよくわからないけど。


620 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 00:48:01 ]
>>618
一応、これも書いておかないと

Upper Camel = Pascal
Lower Camel = 狭義のCamel

621 名前:デフォルトの名無しさん [2009/09/09(水) 09:22:35 ]

Bitmap BmpBuf = new Bitmap("C:\\2008052314460001.jpg");
Picture1.Image = BmpBuf;


画像が表示されません

622 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 09:29:10 ]
そうか

623 名前:デフォルトの名無しさん [2009/09/09(水) 09:35:56 ]
せめてヒントだけでも ><。。



624 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:20:41 ]
もうimagelocation でやれwwwww

625 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:41:29 ]
>>621
デバッグしてそこ実行時にBmpBufが有効か見てみたか?
Picture1ってどのコントロール?

626 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:42:26 ]
"C:\\2008052314460001.jpg"

@"C:\2008052314460001.jpg"
こうしたい

627 名前:デフォルトの名無しさん [2009/09/09(水) 10:48:28 ]
>>625
BmpBufはnullでなくサイズプロパティは読み込んだ画像のサイズでした
>>626
あーそういう意味だったのか @使います



628 名前:デフォルトの名無しさん [2009/09/09(水) 10:50:00 ]
>>625
Picture1はPictureBoxです

629 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 10:53:33 ]
それはちゃんとFormに貼り付けられてるのか
何かのコントロールの後ろに隠れてないか
サイズが0,0になってたりFormの表示範囲外にいってたりしてないか

630 名前:デフォルトの名無しさん [2009/09/09(水) 11:18:33 ]
>>629
もう一度一から貼り直してやってみます
コードは間違ってはいませんよね?

再描画されないかもしれないのはおいといて

631 名前:デフォルトの名無しさん [2009/09/09(水) 11:23:00 ]
>>630
うまくいきました!!

デザイナのコードが壊れてたみたいです

632 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 11:23:16 ]
>>611
paintでGraphicsのDrawImage使うといい。

633 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:12:39 ]
C++のデザパタに片足突っ込んだ程度の経験なんですが、
今回.NET Framework 4.0が面白そうな事になってるのを聞き及び、C#に手を出してみようかと思っています。
C#のオススメの教本とかあったら教えてもらえませんでしょうか?



634 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:20:31 ]
.NET4ってそんなに面白そうなフィーチャーあったっけ
DLRやPLINQなんか.NET触ったことない人には全く分からないだろうし

635 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:27:34 ]
>>632
ドラッグ中MouseMoveイベントで毎回それやってpictureBoxリフレッシュすると滑らかにならず・・・

636 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 12:49:42 ]
>>635
どんな環境でどうやってんの?
こっちで試す限りでは普通になめらかに動くよ。
Bitmap毎回作ってるとか?

637 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 13:43:13 ]
>>636
よっぽどでかくなきゃそれでもまぁいけると思うぞ
Disposeしてなさそうだけど(Disposeいるっけ?)

638 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:31:59 ]
breakについて教えてください。
for (int i = 0; i < 10; i++) {
foreach(string line in lines) {
if {//条件。
break;
}
}
}
で、ifの条件が一致したとき、この位置にbreakを書くと、foreachは終了しますが、外側のforは終了しません。
どこに書けば、外のforも終了できますか?


639 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:36:37 ]
for (int i = 0; i < 10; i++) {
bool exit = false;
foreach(string line in lines) {
if {//条件。
exit = true;
break;
}
}
if (exit) break;//外のforを抜ける
}
もしくは,
for (int i = 0; i < 10; i++) {
foreach(string line in lines) {
if {//条件。
goto EXIT;
}
}
}
EXIT:

640 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:40:30 ]
>>639
ラベルに命令はんないといけないから
EXIT:;じゃね?

641 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:43:09 ]
そうだけど後にステートメントが続くならセミコロンは普通書かない

642 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:47:43 ]
>>641
コンパイル通るの?
前ここではまったんだけど

643 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:48:38 ]
別のアプローチとしてはforを別の関数に切り出してreturnで抜けるというのもある。



644 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:53:44 ]
>>642
通る例
EXIT:
  Console.WriteLine(x);
}
通らない例
EXIT:
}
とにかく後にステートメントがあればいい。セミコロンだけの場合は空のステートメントがあるとみなされる。

645 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 20:55:44 ]
>>644
じゃあ>>639は嵌るべ






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

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

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