トップページ⇒tech
1001コメント293KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2011/09/21(水) 21:34:56.61
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ

ふらっとC#,C♯,C#(初心者用) Part78
http://hibari.2ch.net/test/read.cgi/tech/1312310658/

■関連スレ
C#, C♯, C#相談室 Part67
http://hibari.2ch.net/test/read.cgi/tech/1308128665/
ミスターサタンのC#相談室 
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part36)
http://hibari.2ch.net/test/read.cgi/tech/1301828549/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/
0002デフォルトの名無しさん2011/09/21(水) 21:36:10.55
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
0003デフォルトの名無しさん2011/09/21(水) 21:39:02.63
乙
codepadはC#に対応してないぞ
0004デフォルトの名無しさん2011/09/21(水) 22:47:32.26
そう思ってideoneしか貼らなかったのにな
おせっかいちゃん
0005デフォルトの名無しさん2011/09/22(木) 22:55:18.94
IEの全クッキーを削除したいのですが
どういうコードを書けば良いでしょうか?

出来れば、Windows API 的な物は使わずに .Net Framework 内の機能だけで実装したいと思います。
0006デフォルトの名無しさん2011/09/22(木) 22:57:44.48
XPならシステム情報からクッキーを置いてあるフォルダを調べて
ファイル削除でいいだろうけど、UAC関連でシステムフォルダに
対するアクセスが厳しくなってるアプリはどうだろう・・・
0007デフォルトの名無しさん2011/09/22(木) 22:57:45.47
API使わないといけないので諦めます
0008デフォルトの名無しさん2011/09/22(木) 23:43:45.47
なんでやねん
簡単にAPI呼び出せるやろ
0009前スレ9792011/09/22(木) 23:56:02.01
>>前スレ997
すいません、MouseDownの中身だけでいいので書いてもらえませんか?
ちょっとTabプロパティについてはわからないです。
0010デフォルトの名無しさん2011/09/23(金) 01:01:37.70
>>8
この際、全ユーザのクッキーを削除してもOKです。
嫌、寧ろクッキーをまるごと消し去るプログラムを作りたいです。
0011デフォルトの名無しさん2011/09/23(金) 01:04:02.59
エロい目的ならスキルアップに最適
0012デフォルトの名無しさん2011/09/23(金) 02:46:04.89
>>9
TabControl1_DrawItem()の
string text = tab.TabPages[e.Index].Text;
の前に
if(e.Index >= tab.TabPages.Count) return;
を入れればArgumentOutOfRangeExceptionは出なくなる
これで全部解決できるかは分からない
0013前スレ9792011/09/23(金) 04:51:08.08
>>12
ありがとうございます。それで解決しました
0014デフォルトの名無しさん2011/09/23(金) 14:11:22.55
BinaryReader.ReadInt32のstatic版みたいなものはありませんか?
一箇所だけ必要なのですが、その為だけにBinaryReaderをnewするのは無駄な気がするし
Stream.Readで読んでBitConverterで変換するのもごちゃごちゃして嫌だなぁ、と思いまして。
0015デフォルトの名無しさん2011/09/23(金) 14:42:11.49
いちいちそんなこと気にしてたら何も作れないでしょう
ループ内で秒間数千数万回呼ばれるようなもんでなければ
BinaryReaderのnewくらい全くどうでもいい
0016たつろう2011/09/23(金) 15:10:29.75
WindowsFormアプリケーションを作成しています。
そこで行き詰ってしまいました。

(1) DataGridViewのセルにImageListの画像を表示させることはできるでしょうか。
  該当セルのcolumnsのデータ型はイメージ型にしています。

(2) DataGridViewのセルにアニメーションGIFを表示させることは可能でしょうか。

すみませんが、よろしくおねがいいたします。
0017デフォルトの名無しさん2011/09/23(金) 15:16:06.41
起動するだけで数千だか数万のインスタンス作ってるのに今更よね
0018デフォルトの名無しさん2011/09/23(金) 19:52:40.40
>>13
コントロールの切り離しは最終的にユーザーの
操作が終わってからの方がいいんじゃね?
Firefoxなんかでもタブ移動できるけどユーザーの操作が
決定するまでタブは移動しないままだしな

掴んだらいきなり切り離すっていう危なっかしいのはいかがかと
0019デフォルトの名無しさん2011/09/23(金) 21:10:32.16
.Net Framework 上で動いている C# と VB.net ですが
いずれかの言語でしか実装(利用)出来ない機能とかってあるのでしょうか?
0020デフォルトの名無しさん2011/09/23(金) 21:16:03.55
ポインタ操作はC#のみ。
あとyieldもC#のみ。LINQ to XMLみたいなのをyieldのないVBで作ろうとすると死ねる。
ちょっと前まではExcel操作なんかはVBの独壇場だったけどC#4.0で差がなくなった。
0021デフォルトの名無しさん2011/09/23(金) 21:20:18.74
VBの言語レベルでのメリットならXMLリテラルとかクエリ構文のキーワードの多さとかか

まあある機能が言語限定って言うのはあるが
それはコードを書きやすくなるかどうかというレベルの話であって
最終的に実現可能な物に有意な差はない
0022デフォルトの名無しさん2011/09/23(金) 21:28:43.29
Myやフォームのデフォルトインスタンスを忘れてるぞ
On Error Resume Nextもあるし静的クラスのメンバをグローバル変数やグローバル関数のように使えるし
0023デフォルトの名無しさん2011/09/23(金) 22:39:54.65
3.5のラムダ式界隈だと
・VBではActionが作れない
・VBには3項演算子が無いので遅延評価の分岐が組めない
って酷い差があって、自分でクロージャ型を定義したりしないといけない
0024デフォルトの名無しさん2011/09/23(金) 22:50:03.46
If演算子はVB9で追加されたはずだが
SubとかステートメントとかはVB10からだけどさ
0025デフォルトの名無しさん2011/09/23(金) 23:09:56.51
トータルすると

C# が VB.net をリードしてる?

という判定でよいですか?
0026デフォルトの名無しさん2011/09/23(金) 23:14:35.57
何度も同じネタを繰り返して喜んでる奴はルーピー、でいいよ。
0027デフォルトの名無しさん2011/09/23(金) 23:19:22.07
元々はコンセプトが違っていてそれぞれのユーザー層のニーズに合わせていくはずだったけど
今はVBの開発チーム無くなって「C#と同じにする」方針になった
0028デフォルトの名無しさん2011/09/23(金) 23:20:24.81
好みでいいだろ
それにVB.net関連の機能もC#で使えるし
0029デフォルトの名無しさん2011/09/23(金) 23:24:59.70
>>25
良いと思う
0030前スレ9792011/09/23(金) 23:27:03.72
>>18
どうやってそれを実装するか、思いつかないんですよね。TabControlのD&Dも探して拾ってきたやつです
x軸とかy軸を取得してなんかがわからないんです。参考になるHPとかないでしょうか?
0031デフォルトの名無しさん2011/09/23(金) 23:28:50.89
>>29
サンキューC#厨
0032デフォルトの名無しさん2011/09/24(土) 00:55:04.84
byte a = 1;
byte b = 2;
byte c = a + b;

a + bの所でintからbyteに暗黙的に変換できないと出るのですが
intより小さい型は全てintに格上げされて演算されるという理解でいいですか?
0033デフォルトの名無しさん2011/09/24(土) 00:59:10.29
>>31
感謝された気がしない。。。
0034デフォルトの名無しさん2011/09/24(土) 01:06:03.50
>>32
そういう仕様のはず<int に格上げ。
0035デフォルトの名無しさん2011/09/24(土) 01:21:02.66
>>32
cだとintが一番早く実行出来る基本型だって本で読んだから、c#もそうなんじゃ無いか?
0036デフォルトの名無しさん2011/09/24(土) 01:22:31.38
>>32
格上げされるというよりbyte同士で四則演算できるようなってないってことじゃないの?
0037デフォルトの名無しさん2011/09/24(土) 01:25:50.20
>>36
流石に明治的にキャストすれば出来るだろ
0038デフォルトの名無しさん2011/09/24(土) 01:26:55.70
>>37
だからしてくださいねって話だろ
0039デフォルトの名無しさん2011/09/24(土) 01:27:47.38
格上げの話は明示しないでも勝手にやってくれる場合に言う
0040デフォルトの名無しさん2011/09/24(土) 01:28:26.39
バイトが格上げされて正社員になったと聞いて
0041デフォルトの名無しさん2011/09/24(土) 01:33:30.92
何でもいいけど、俺様用語や俺様言い回しで発言しておいて「〜だろ」とか、
俺の言った意味で理解するのが当然みたいな言い方は馬鹿っぽいしみっともない。
0042デフォルトの名無しさん2011/09/24(土) 01:39:34.35
個人的にはintに揃えるより2つのオペランドの大きい方の型にそろえる仕様の方が
直感的かなと思うけど、それだとshortとushortの演算のような場合には迷いが生じるのは確かだな
0043デフォルトの名無しさん2011/09/24(土) 01:42:44.64
>>32
ここを順に読むと疑問が解決するかと
http://www.atmarkit.co.jp/fdotnet/csharp_abc2/csabc2_007/cs2_007_01.html
0044デフォルトの名無しさん2011/09/24(土) 02:05:33.96
どうせ演算は32ビットか64ビットで行われるんだから、
結果がshortやbyteになる仕様ならその都度縮小しないといけないでしょわざわざオーバーフローの可能性を増やさなくても
0045デフォルトの名無しさん2011/09/24(土) 14:58:24.86
ストリームやSQLのクラスで、CloseとDisposeの両方があるクラスが多いと思いますが、
そのようなクラスの場合、使わなくなったら両方呼ぶべきですか?それとも片方だけでいいのでしょうか。
0046デフォルトの名無しさん2011/09/24(土) 15:21:44.10
>>45
http://msdn.microsoft.com/ja-jp/library/ms182334.aspx
0047デフォルトの名無しさん2011/09/24(土) 16:29:42.70
C#歴半年くらいなんですが、クラスの作り方とか、
コンストラクタとかインスタンスとか継承とか・・・
いわゆるオブジェクト指向な設計方法を実例を挙げて解説してる参考書でお勧めありませんか?
雑誌のバックナンバーでもいいです。
JAVAだとそういう記事をよく見かけますがC#で無いですかね?
JAVAの記事でも概念的には参考にはなるんだろうけど・・・
やっぱC#のほうが具体的なTipsも学べるからC#がいいな。
0048デフォルトの名無しさん2011/09/24(土) 16:43:24.78
@ITとかにあると予想
C#はデリゲートがあるせいかJavaほど語ることが無いんだよな・・・
0049デフォルトの名無しさん2011/09/24(土) 17:02:01.06
Javaで必要なデザインパターンがC#だと言語レベルで実装されてて必要無かったりするからね
0050デフォルトの名無しさん2011/09/24(土) 17:23:10.22
>>47
思い切り古い本だがこれとか?
http://www.amazon.co.jp/C-%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E7%9F%A2%E5%B6%8B-%E8%81%A1/dp/4897974070/ref=sr_1_1?ie=UTF8&qid=1316852287&sr=8-1

読んだことはないけど、MSDNで立ち読みできる部分と目次を見た感じでは
初心者がC#でOOPの基礎を学ぶには良さそうに思える。
http://msdn.microsoft.com/ja-jp/library/cc440970.aspx
0051デフォルトの名無しさん2011/09/24(土) 17:40:33.99
C#の道に入るならまずこれを読むと良い
http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%83%95%E3%82%A7%E3%83%83%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%9E%E3%82%B9%
E3%82%BF%E3%83%BC-Visual-C-2010-MSDN%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA/dp/4822294277

Java信者がおちいりがちなクラスベースのオブジェクト指向信仰の戒めが興味深い
0052デフォルトの名無しさん2011/09/24(土) 18:03:36.48
>>48-51
みなさん、ありがとうございます。
参考にさせて頂きます!
0053デフォルトの名無しさん2011/09/24(土) 18:54:46.15
URLなげーよ
http://www.amazon.co.jp/dp/4897974070
http://www.amazon.co.jp/dp/4822294277
0054デフォルトの名無しさん2011/09/24(土) 19:39:58.42
LinqのInsertOnSubmitってテーブルを自動的に作成してくれないのでしょうか?
ttp://d.hatena.ne.jp/griefworker/20090918/linq_create_delete_database
を参考にSystem.Data.SQLiteでやってみると例外が発生します(SQLite error no such table
DataContextのメソッドにテーブルを作成するようなものがないので自動的に作られるのだと思ったのですが。
CreateDatabaseはデータベース自体を作るメソッドのようですし
(CreateDatabaseも例外起こしますがコメントアウトしてもデータベースは作られるので一応何とかなっています
ちなみにSQLiteのコマンドでテーブルを先に作ると例外は起きません。
0055デフォルトの名無しさん2011/09/24(土) 19:42:06.86
>>51
URLの削り方ぐらい知っとけw
0056デフォルトの名無しさん2011/09/24(土) 19:47:31.46
>>54
>// テーブルも一緒に作成される
>context.CreateDatabase();
って書いてあるじゃん

一般論として通常の更新メソッドで勝手にテーブル作られたら困るでしょ
0057デフォルトの名無しさん2011/09/24(土) 19:57:22.56
久しぶりにLINQ to SQLやってる人見た
もう絶滅したと思ってた
0058デフォルトの名無しさん2011/09/24(土) 20:02:41.49
何度でも蘇るさ
0059デフォルトの名無しさん2011/09/24(土) 20:20:21.31
>>56
あorz
ということはCreateDatabaseで例外起こすからコメントアウトした所為ですね
"SQLite error
near "DATABASE": syntax error"という例外でイミフです…

>>57
最近データベースを使おうと思ってたどり着いたのがこれなのですけど
最近の主流はどんなやり方なのでしょうか?
0060デフォルトの名無しさん2011/09/24(土) 20:23:13.26
>>59
Entity Framework
つーかLINQ to SQLはSQL Server用
0061デフォルトの名無しさん2011/09/25(日) 00:04:26.10
デリゲートって何?
0062デフォルトの名無しさん2011/09/25(日) 00:05:19.69
型安全な関数ポインター。
0063デフォルトの名無しさん2011/09/25(日) 00:06:52.02
おなかがゆるいときにするデート
0064デフォルトの名無しさん2011/09/25(日) 00:13:04.53
ゲリデート…
0065デフォルトの名無しさん2011/09/25(日) 00:16:52.09
デリゲートゾーン
0066デフォルトの名無しさん2011/09/25(日) 00:47:19.00
クロコダイルを知っているか?
同じようなものだ。
0067デフォルトの名無しさん2011/09/25(日) 00:53:08.85
シーユーレイター、アリゲーター
0068デフォルトの名無しさん2011/09/25(日) 01:05:55.53
インナ・ホワイル、クロコダイル
0069デフォルトの名無しさん2011/09/25(日) 12:26:45.52
windowsプログラム作るのを勉強するのにいい本か何かありますか。
0070デフォルトの名無しさん2011/09/25(日) 13:58:46.63
ここはC#のスレだよ
0071デフォルトの名無しさん2011/09/25(日) 17:25:39.97
>>61
haraga \\\ iatakute
http://wisdom.sakura.ne.jp/programming/cs/cs54.html
0072デフォルトの名無しさん2011/09/25(日) 17:28:14.48
>>69
質問がザックリしすぎ。
上手な質問が出来る程度にまでは勉強しようぜ。
とりあえず雑誌買えば?アスキーとか日経ソフトウエアとか。
それの「今日から始める○○」みたいな記事読みなよ。
多分分からないことばかりだろうけど、何が分からないのかが見えてくる。
俺も最初は、CもC++もC#も区別が付かなかった。
0073デフォルトの名無しさん2011/09/25(日) 17:32:01.55
ペゾルド本薦めようかと思ったけどおまえら親切ですね
0074デフォルトの名無しさん2011/09/25(日) 21:52:53.55
自分でD&Dでタブ移動できるTabControlを作っているんですが、マウスのx座標とy座標から
その座標にTabPageが存在しているかどうか判別するメソッドか何かないんでしょうか?
0075デフォルトの名無しさん2011/09/25(日) 21:54:25.03
IntPtr.Zero と (IntPtr)0 は同じことですか?
0076デフォルトの名無しさん2011/09/25(日) 22:51:19.88
キャストすると方変換が生じるので意味は等価だが内容は等価ではない
0077デフォルトの名無しさん2011/09/25(日) 22:54:21.16
何のこっちゃ
0078デフォルトの名無しさん2011/09/25(日) 22:57:07.75
真っ直ぐ向かうか迂回するかくらいの違い
0079デフォルトの名無しさん2011/09/25(日) 23:00:50.47
定数を実行時にキャストするだと!
0080デフォルトの名無しさん2011/09/25(日) 23:08:27.84
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// コード サイズ 8 (0x8)
.maxstack 8
IL_0000: ldc.i4.0
IL_0001: call native int [mscorlib]System.IntPtr::op_Explicit(int32)
IL_0006: pop
IL_0007: ret
} // end of method Program::Main

ちなみにこんな感じになります
0081デフォルトの名無しさん2011/09/25(日) 23:10:37.23
そりゃプリミティブ型でないのに定数もクソもないわな
JIT後の扱いは知らんが
0082デフォルトの名無しさん2011/09/25(日) 23:29:47.95
でもこれ見るとnative intをそのままIntPtrと読み替えてるんだな
それなら実質Int32のようなプリミティブ型と扱い変わらないのにop_Explicitは必要なのね
0083デフォルトの名無しさん2011/09/25(日) 23:40:12.28
何言ってるのかわからん。

MSIL知らんけど、普通にSystem.IntPtr::op_Explicit(int32)というサブルーチンを
コールしてるだけに見えるけど....
0084デフォルトの名無しさん2011/09/26(月) 00:00:54.94
戻り値がnative intになってるだろ
コンパイラが特別に同一視してるんだよ
プリミティブ型と同格の扱いだ
0085デフォルトの名無しさん2011/09/26(月) 00:35:21.37
IntPtrをInt32に変換するルーチンなんだから当たり前でしょ。
本気で何言ってるのかわかんない
0086デフォルトの名無しさん2011/09/26(月) 00:36:36.10
C#仕様にないIntPtrをMSILの都合で追加したけど、必要以上の特別扱いはしないって事なんでしょ

ていうか言語仕様だけ見るとIntPtrはvolatileでだけ出てくる正体不明の型だな

>>85
普通の値型はvaluetypeってなるから
0087デフォルトの名無しさん2011/09/26(月) 01:01:11.08
>>85
native int=IntPtrと解釈されてるってこと。
native intは実行環境でのポインタと同じサイズをもつ整数で、CILの組み込み型。
Int32のようなプリミティブ型はコンパイラが特別にCILの組み込み型として扱う。
0088デフォルトの名無しさん2011/09/26(月) 01:03:38.61
>>86-87
ごめん、何か変なこと書いてるな俺。
疲れてるな....
0089デフォルトの名無しさん2011/09/26(月) 01:26:41.11
std::dequeのような先頭と末尾への挿入がO(1)になるようなコレクションってありませんでしたっけ?
0090デフォルトの名無しさん2011/09/26(月) 01:29:52.45
LinkedList
0091 忍法帖【Lv=1,xxxP】 2011/09/26(月) 01:39:55.33
どなたかご回答お願いします。
現在自作のソフトウェアで
1.「処理開始時にスリープを抑止」
2.「処理完了時にスリープ抑止を解除」
をしようとしています。

Vista・7ではSetThreadExecutionStateを使った方法で
1と2どちらも期待どおりに動作します。
しかし、XPでは1の「抑止」はできるものの、2の「抑止の解除」ができず、
OSを再起動するまでスタンバイにならなくなってしまいます。

基本的に下記のサイトの処理をコピペしています。

こちら解決策をご存じの方いらっしゃったらご教示ください。
0092 忍法帖【Lv=1,xxxP】 2011/09/26(月) 01:42:56.15
大事なところが抜け落ちてしまいました。
基本的に下記のサイトの処理をコピペしていて、
http://d.hatena.ne.jp/aont/20100121/1264089608
・1の時には
SetThreadExecutionState(ExecutionState.SystemRequired | ExecutionState.Continuous);
・2の時には
SetThreadExecutionState( ExecutionState.Continuous);
としています。
0093デフォルトの名無しさん2011/09/26(月) 01:46:48.00
>>90
すいません。
インデックスで各要素にO(1)でアクセスできる、という条件が抜けてました。
0094デフォルトの名無しさん2011/09/26(月) 01:49:42.34
それは無いと思う
0095デフォルトの名無しさん2011/09/26(月) 02:14:23.34
動的配列を配列の真ん中から始めて両端に伸ばすやつでしょ
それくらい自作すれば
0096デフォルトの名無しさん2011/09/26(月) 12:29:41.09
一昨日あたりからMSDNに繋がらない。なんで?
0097デフォルトの名無しさん2011/09/26(月) 14:38:24.58
毎時00分(3時00分とか、4時00分とか)に、ある処理を行いたいのですが、
Timerは間隔でしか指定できないので、どうやったらいいのでしょうか
UNIXのcronやタイムスケジューラようなものと考えてもらえば
分かりやすいかと思います
0098デフォルトの名無しさん2011/09/26(月) 15:06:33.79
タイマイベントが発生したときに何時何分かはわかるだろw
0099デフォルトの名無しさん2011/09/26(月) 15:19:40.56
そうです、そういう方法は考えました
しかし、たとえば1秒ごとにイベントを発生させて、時間を調べても
もし00分でなかったら、その処理は無駄なCPUを使ってることになります
だから毎時00分に呼び出してくれるような方法はないかと考えてるんです
0100デフォルトの名無しさん2011/09/26(月) 15:23:59.51
OSのタスクスケジューラに登録するってのは?
0101デフォルトの名無しさん2011/09/26(月) 15:24:21.69
>>99
試しにプログラム作って負荷みてみなよw
どんなマシンで運用するか知らんけど誤差のレベルだよ
0102デフォルトの名無しさん2011/09/26(月) 16:22:56.50
無駄なCPU・・・って
コンピュータの動作原理を勉強しろよ
0103デフォルトの名無しさん2011/09/26(月) 17:38:48.41
cronなんてcron deamonが代わりにタイマ刻んでるだけや
0104デフォルトの名無しさん2011/09/26(月) 17:40:57.23
   ヾ〃ゞ/ヾゝゞ'~ヾゝゞ
 ゞヾ〃ゞ- '、~         ┌┐
    _,ノノ_ヾゞ, -、ヾゝゞ| ̄・│
丿 ,.'_-ーヾゝゞヾゝゞ、...  ̄| .│
 iiii/   νゞυ   `-ヾ.  ││
 ./              ││  キリンで比較すると
 i|                ││  韓国の方がメシウマだということがわかる
 i|                ││
ii i|                ││
0)|.       ┌┐       ││
 i|     | ̄・│       ││
ii i|      ̄| .│       │└──┐
 ii|.      ││      ├┬─┐│
 ;ii|      │└─┐  ││  ││
iii0)|.     ├┬┐│  ││  ││
 iiii|.      ││││  ││  ││
 ,,_,ヽ,    ││││  ││  ││
"i´"�=R─────────────
        1$=76円   1$=1192ウォン
0105デフォルトの名無しさん2011/09/26(月) 17:41:07.79
タイマー処理はしたいけど、待ってる間に1クロックの動作もさせたくないとか
そういう事?
0106デフォルトの名無しさん2011/09/26(月) 18:04:45.09
どうでもいいが、一日一回をチェックするのに一秒のタイマーはあり得ないだろ
0107デフォルトの名無しさん2011/09/26(月) 19:26:05.11
1時間間隔のタイマーではダメなの?
0108デフォルトの名無しさん2011/09/26(月) 19:49:18.53
そもそも1日一回のタイマーが、問題が起こるほどずれるとも思えん
今の時間と起動時間の差をIntervalにセットしたらOKな気もする(実験必要だが)
スリープなどが気になるならタスクスケジューラしかないが
0109デフォルトの名無しさん2011/09/26(月) 19:55:11.06
まあ起動時に時間取得してそこからタイマーにセットする時間を計算すれば
いいだけなんだけどな〜
0110デフォルトの名無しさん2011/09/26(月) 19:55:11.13
.NET Remotingというのは非同期で通信できないの?
0111デフォルトの名無しさん2011/09/26(月) 20:38:59.53
ラムダとかLINQとか勉強しようと前々から思ってるんですけど
実際どういう時に使うのかがわからず躊躇してます
LINQはXMLだとかSQLだとかデータ処理だと思うんですけど相変わらずSQL文ベタ書きなんですが
特にラムダは"これこれこういう処理する時はこれだよな!"みたいなのはあるんでしょうか
0112デフォルトの名無しさん2011/09/26(月) 20:59:49.08
在日同胞対象の移住集落建設へ

慶尚南道南海郡は26日、在日コリアンの移住者を対象にした「日本集落」の建設を推進すると明らかにした。
集落の説明会は10月5日に東京で、10月9日に大阪で開催する。

http://japanese.yonhapnews.co.kr/headline/2011/09/26/0200000000AJP20110926003100882.HTML


愛する祖国が在日の皆さんを待っています。 韓国が、在日韓国人の集落を建設することを決定。
http://hatsukari.2ch.net/test/read.cgi/news/1317035191/

愛する祖国が在日の皆さんを待っています。 韓国が、在日韓国人の集落を建設することを決定。 ★2
http://hatsukari.2ch.net/test/read.cgi/news/1317037569/
0113デフォルトの名無しさん2011/09/26(月) 21:12:40.92
>>110
どういうのを想像してるのか分からんけどできるよ
0114デフォルトの名無しさん2011/09/26(月) 21:17:47.79
>>111
LINQ使う時はラムダだよ
0115デフォルトの名無しさん2011/09/26(月) 22:33:37.23
このコードでちゃんと
Hoge.method()
が表示され続けるんですが、
デリゲートでメソッドを登録していれば、
ガベージコレクションの対象にはならない、というのは正しいですか?
ttp://ideone.com/KMUnH
0116デフォルトの名無しさん2011/09/26(月) 22:38:48.10
はい
actがhogeへの参照を持っています
イベントでメモリリークの原因になったりするので注意
0117デフォルトの名無しさん2011/09/26(月) 22:39:54.93
>>116
ありがとうございます。
なるほど、これはちょっと気をつけないと・・・
0118デフォルトの名無しさん2011/09/26(月) 22:57:08.50
>>111
まず、LINQ 全般でいうと、データベース問い合わせ以外でも、
「チェックボックスでチェック入れた項目だけ抜き出したい」とかいうときに
items.Where(x => x.IsChecked); とかやると便利。

データベースに関しては、型安全で静的チェック効くことが大事。
文字列で SQL べた書きだと実行してみるまでその SQL が正しいかわからないけど、
LINQ 使うとそれがビルド時チェックになる。

まあ、ビルド時チェックの価値がよくわからないってなら SQL べた書きでいいと思う。
0119デフォルトの名無しさん2011/09/26(月) 23:43:18.56
LINQの中でもOrderBy、ThenByを使ったソートは代替がないから覚えといたほうがいい
0120デフォルトの名無しさん2011/09/27(火) 00:12:20.44
>>113
ありがとう
0121デフォルトの名無しさん2011/09/27(火) 00:16:26.06
ttp://msdn.microsoft.com/ja-jp/library/bew39x2a%28v=vs.80%29.aspx
ここの
// Get the rest of the data.
client.BeginReceive(state.buffer,0,StateObject.BufferSize,0,
new AsyncCallback(ReceiveCallback), state);

これがわからないんですが、
StateObject内のBufferSizeを溢れた分はこのstateを引き継いで、

state.sb.Append(Encoding.ASCII.GetString(state.buffer,0,bytesRead));

これで継ぎ足されていくという認識で良いんですか?
0122デフォルトの名無しさん2011/09/27(火) 08:51:11.60
>>121
どういう認識なのかよく分からんが
bufferはBeginReceive毎の使い捨て、sbは受信結果全部ということ、
で回答になってるのかよく分からん
0123デフォルトの名無しさん2011/09/27(火) 10:14:53.82
DateTime.Nowプロパティで取得できる時間って、50mSまででしたっけ?
1mSまで取得するにはどうしたらいいのでしょうか?
MSDNがCGIエラーで表示されないので調べられないで困ってます。
0124デフォルトの名無しさん2011/09/27(火) 11:11:52.96
DateTime.Now自体は100ns単位で返ってくるけど
タイマ割り込み自体の間隔は10-15ms程度だな
ttp://d.hatena.ne.jp/NyaRuRu/20060910
この辺見てればいいよ

どうでもいいがS大文字にすると意味不明に見える
あとMSDNは一旦cookieと一時ファイル消してみれば
0125デフォルトの名無しさん2011/09/27(火) 11:30:44.48
Stopwatchクラス使えばDateTime.Nowよりはだいぶマシ
APIのQueryPerformanceCounterと同じ
0126デフォルトの名無しさん2011/09/27(火) 12:26:47.62
>>124
ありがとうございます。勉強してきます。
>>125
最終的には複数ポイントの累積経過時間(ラップタイム?)を取りたいのですが、
Stopwatchクラスって、1回1回止めないと取得できないようですが、
リスタート→加算を繰返すと誤差は生じないのでしょうか?
0127デフォルトの名無しさん2011/09/27(火) 12:40:49.69
コルーチンってどういうものなんでしょうか?
0128デフォルトの名無しさん2011/09/27(火) 12:44:09.43
>>126
もろにStopwatchの仕事じゃないか
Stop/Startで中断再開できるぞ
0129デフォルトの名無しさん2011/09/27(火) 12:45:47.86
>>127
通常の関数は一度実行したら最後まで実行するまで制御を戻さないが、
コルーチンは途中で止めて別の機会に中断点から再開したりできる。
0130デフォルトの名無しさん2011/09/27(火) 12:48:43.80
>>129
ありがとうございます。
よくわかりました。
0131デフォルトの名無しさん2011/09/27(火) 12:49:10.41
>>126
double timeSec = (double)Stopwatch.GetTimestamp() / Stopwatch.Frequency;
01321312011/09/27(火) 12:55:47.05
doubleにしてから差を取るのはは精度的に良くないかも
long time1 = Stopwatch.GetTimestamp();
// 処理1
long time2 = Stopwatch.GetTimeStamp();
double elapsed = (double)(time2 - time1) / Stopwatch.Frequency;
こうかな
0133デフォルトの名無しさん2011/09/27(火) 14:03:35.21
>>124
クッキー、一時ファイル、IEのプロパティから選択できるものは全部削除してみたけど
MSDN表示できません・・・orzなんでだ・・・
>>128
RESETなんていうメソッドもあるんですね。
ということはRESETするまでは最初のスタートから時計は継続して動き続けてると言うことなんですかね。
>>131-132
GetTimeStampなんてのもあるんですね。これはストップしなくても取得できると言うことですか。

ありがとうございました。
まずMSDN復活に取り組みます・・・(~~;;;
0134デフォルトの名無しさん2011/09/27(火) 16:51:29.64
C#2010にてWindowsFormアプリケーションを作成しています。

ここで、Labelのフォントを「小塚ゴシック」にしたいのですが、Fontプロパティに「小塚」シリーズのフォントが出てきません。
AdobeのIllustlatorをインストールしており、PCには「小塚」シリーズのフォントが入っているはずです。
(EXCELなどのOfficeアプリケーションでは「小塚」シリーズのフォントを使用できます。)

(1)
なぜ、VS2010上で、「小塚」シリーズが出てこないのでしょうか。
フォントを追加する方法はあるのでしょうか。
(2)
この「小塚」シリーズのフォントをアプリケーションに埋め込む形で取り込み、
「小塚」シリーズのフォントが入っていないPCでも正常に表示させることができたらと思っています。

どうすれば良いのでしょうか。ご教示ください。
0135デフォルトの名無しさん2011/09/27(火) 17:02:36.35
OpenTypeフォントはGDI+じゃ使えないはずだが 小塚とやらがどうかは知らんけど

> この「小塚」シリーズのフォントをアプリケーションに埋め込む形で取り込み、
> 「小塚」シリーズのフォントが入っていないPCでも正常に表示させることができたら
ライセンス違反にならね?
0136デフォルトの名無しさん2011/09/27(火) 20:24:32.88
>>118
遅レスですが111です
>LINQ 使うとそれがビルド時チェックになる。
非常に有用だと感じます
ありがとうございました
0137デフォルトの名無しさん2011/09/27(火) 20:28:25.08
ならんでしょ
型付けるだけならTypedDataSetでも出来るし、LINQでも実行するまでスキーマが正しいかどうかは分からない
0138デフォルトの名無しさん2011/09/27(火) 21:12:15.90
Dictionaryみたいなかんじで?key=value&key2=value2の形式で取り出せるクラスがあったように思うんだけど
だれか知りませんか
0139デフォルトの名無しさん2011/09/27(火) 21:13:59.07
いっぱいあるからもっと具体的に
0140デフォルトの名無しさん2011/09/27(火) 21:21:02.23
えっ

具体的にはOAuthで使いたいです
oauth_consumer_key=1234&oauth_nonce=13345&oauth_signature=1234&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1234
みたいな文字列を得たいのですが、

hoge.Add("oauth_consumer_key", "1234");
hoge.Add("oauth_nonce", "12345");
...
string result = hoge.ToString();

といった使い方ができるクラスがあったようにおもうのです
0141デフォルトの名無しさん2011/09/27(火) 21:39:01.34
それ以前にOAuthのライブラリを使えば解決じゃないの?
0142デフォルトの名無しさん2011/09/27(火) 21:58:47.32
OAuth部分はほとんどサンプルソースからの流用でして
.netにクラスが用意されてるのならそっちに書き換えようと思った
OAuthのライブラリ使えば解決というのは


その通りです
0143デフォルトの名無しさん2011/09/27(火) 23:31:11.81
opencvSharp、WPFについてもこのスレでいいdすか?
0144デフォルトの名無しさん2011/09/27(火) 23:42:31.88
SortedList<T>の挙動がわからないんですが、
SortedList<key, value>で、UnionWithメソッドを呼び出す時、
ユニオン後にコピーされるのってkey及びvalueが共に異なる要素だけですか?

keyあるいはvalueの一方だけ同じ要素があった場合、どうなるかわかりません
0145デフォルトの名無しさん2011/09/27(火) 23:51:49.22
禁止ではないがWPFについては専用スレで聞くのが無難
0146デフォルトの名無しさん2011/09/27(火) 23:54:27.09
>>137
何のための LINQ to Entities だと…
0147デフォルトの名無しさん2011/09/28(水) 00:00:19.76
>>144 Unionの間違い?
SortedList<,>はIEnumerable<KeyValuePair<,>>を実装しているので
識別比較の挙動はKeyValuePair<,>の仕様に依存する。
KeyValuePair<,>はEqualsをオーバーライドしていないので、ValueTypeのEqualsの実装が使われる。
ValueType.Equalsはリフレクションを使ってすべてのフィールドの値を比較する。
基本的には、IDictionary<,>をはじめとするIEnumerable<KeyValuePair<,>>には
識別比較を行うようなクエリ演算子は使ってはいけない、でいいと思う。
01481472011/09/28(水) 00:03:59.67
すまん識別比較じゃないな、等値比較の間違い
0149デフォルトの名無しさん2011/09/28(水) 00:11:22.86
急に作成してるアプリのMainFormまでの起動が遅くなったんだけどなんでだろう
特別そんな重くなるような処理を加えたわけではないのに
0150デフォルトの名無しさん2011/09/28(水) 00:32:12.94
>>147
ありがとう
0151デフォルトの名無しさん2011/09/28(水) 00:33:26.90
>>146
.edmxのメタデータが正しいかどうかは保証されてないだろ
0152デフォルトの名無しさん2011/09/28(水) 13:49:33.82
ASP.NETで以下のようなサイトをつくりたいと思ってます

ヘッダー
------------
メ|
ニ| コンテンツ
ュ|
ー|

メニューはWebユーザーコントロールを使って作ろうと思ってます。
ヘッダー、メニューとコンテンツの指定はマスタページで行って、コンテンツを子ページで作る予定です。

レイアウトの指定はどうやったらできますか?
divを使って、メニューの位置とコンテントプレイスホルダーの位置を指定すればいいでしょうか
0153デフォルトの名無しさん2011/09/28(水) 14:40:16.06
C#と何の関係があるんだ?
0154デフォルトの名無しさん2011/09/28(水) 16:54:59.06
>>152
phpとかで作った方が早いんじゃね
0155デフォルトの名無しさん2011/09/28(水) 17:00:02.81
>>152
その辺はC#関係ないな
htmlとかweb系の話
0156デフォルトの名無しさん2011/09/28(水) 17:23:38.29
webプログラミング板のASP.NETスレかなあ。ただASP叩きしかしてないけど。
0157デフォルトの名無しさん2011/09/28(水) 17:38:23.42
>>152
http://msdn.microsoft.com/ja-jp/library/cc671436.aspx
とりあずここを見ればいいんじゃね
違ったらすまんのう
0158デフォルトの名無しさん2011/09/28(水) 18:20:30.55
メニューとコンテンツを同じdivに置いてfloat left
0159デフォルトの名無しさん2011/09/28(水) 19:42:18.00
ああそういうことか
ほれ

/* --- コンテンツ ----------------------------------------------------------------------- */
#content {
width: 650px;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
float: left;
background-color: #ffffff;
}
/* --- メイン ----------------------------------------------------------------------- */
#main {
width: 500px;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
float: left;
background-color: #ffffff;
}
/* --- サイドナビ ----------------------------------------------------------------------- */
#sidenav {
width: 150px;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
float: left;
background-color: #ffffff;
}
0160デフォルトの名無しさん2011/09/28(水) 20:02:14.91
大抵floatだけどパディング指定じゃ駄目なんかね

#A{
position:relative;
padding-top:aaa;
padding-left:bbb;
}
#B{
position:absolute;
top:0;
left:0;
width:100%;
height:aaa;
}
#C{
position:absolute;
top:aaa;
left:0;
width:bbb;
}

<div id="A">
 <div id="B">ヘッダー</div>
 <div id="C">メニュー</div>
 <div id="D">コンテント</div>
</div>
0161デフォルトの名無しさん2011/09/28(水) 20:04:08.08
もうあと一桁レス以内で収めてくれよ
0162デフォルトの名無しさん2011/09/28(水) 21:14:23.91
Whileでループしてる子スレッドに、
メインスレッドから任意のメソッドを実行させたいんですが

ループ内に条件分岐つけてフィールド変数を条件にして実行させるくらいしか思いつかないんですが、
もっとスマートな方法ってありませんか?

このイベントを発生させるとこのスレッドの上で動く的な
0163デフォルトの名無しさん2011/09/28(水) 21:16:46.48
>>162
なんで「その」スレッドに拘る必要があるの?
何かスレッドのこと根本的に勘違いしてるんじゃないの?
0164デフォルトの名無しさん2011/09/28(水) 21:22:38.66
>>162
メインスレッドで他のスレッド立ち上げても次の瞬間にJoinしてたらほぼ意味が無い。
設計としては、スレッドにキューを持たせてそのキューに分岐変数をガシガシ突っ込みつつ、
スレッドは頑張って関数を処理するという感じだと思うんだが。。。

並列化したいんであれば、そういう処理を書いて、ワーカースレッドを増やすのがいいだろうね。
0165デフォルトの名無しさん2011/09/28(水) 21:28:55.30
>>162
待機はループ回したりしないでWaitHandle使う
.NET4ならBlockingCollection<T>使えば超簡単
0166デフォルトの名無しさん2011/09/28(水) 21:33:27.60
Dispatcherじゃ駄目なのか
01671622011/09/28(水) 22:01:20.44
MSDN見てたら余計わからなくなってきた
整理して出直します
01681642011/09/28(水) 22:03:47.06
>>166
ダメなことは全くない。
っていうか不勉強で知らなかった。申し訳ない。Orz
0169デフォルトの名無しさん2011/09/29(木) 10:04:33.58
物凄く基本的な質問ですいません。

C#における参照渡しは中身の場所を表し、中身をそのまま渡すのは値渡しになっていますが
http://ufcpp.net/study/csharp/oo_reference.html

C++の参照渡しは内容そのものを渡して、場所を表すのはポインタ渡しと考えてよろしいのでしょうか?
http://www.kab-studio.biz/Programing/Codian/Pointer/06.html

・C#の参照渡し=C++のポインタ渡し
・C#の値渡し=C++の参照渡し
と、いうように思えてきました。

ググっていたらちょっと混乱してきたので、すいませんがよろしくお願いします。
0170デフォルトの名無しさん2011/09/29(木) 10:23:52.00
C#では参照型・値型と参照渡し・値渡しは別概念
C++のポインタ付きとポインタなしが参照型と値型に大体重なる
参照渡しはC++にあった引数で(Hoge& hoge)って書く奴と大体同じ
C++だと参照&はローカル変数とかでも使えたがC#では引数のref/out限定
0171デフォルトの名無しさん2011/09/29(木) 10:26:54.64
>>169
C#で参照型を引数に渡すのは参照渡しじゃないよ。上のサイトにも参照渡しとは書いてないだろ。
変数の場所を渡すのがC#やC++でいう参照渡し。
変数の中身をコピーして渡すのがC#やC++でいう値渡し。
で、値型と参照型の違いは、値型は変数の中身そのものがオブジェクトなのに対して
参照型はヒープ上にあるオブジェクトの識別番号(ハンドル)が変数の中身になる。
0172デフォルトの名無しさん2011/09/29(木) 11:35:29.54
>>170-171
ああっ、参照型と参照渡しは全くの別物なのですか。
ところどころ「参照」「ポインタ」とだけ出てくるので混乱していました。
・変数のアドレスを渡す:参照渡し(参照型=アドレス=ポインタの位置のコピー)
・変数の中身を渡す:ポインタ渡し(ポインタが指定した場所の値を渡す)=値型の渡し
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320144958
で、大体良いのですね。
ありがとうございました。


>C++ の参照型(&がつくやつ)は、本当に参照です。
>元の値をそっくりそのまま渡すというのが一番しっくりくるイメージです。まさに「参照」。
>#実際は、ポインタの特殊系と言うべき代物ですがw<怒られそうだw
>ちなみに、.NET の参照型と、Native C++ の参照型は、日本語にすれば同じですけど、意味(実装)はまったく違いますw
>#で、こういうこと言うと知らない人は頭抱えてしまうんだwww

>まず、C++でいうと、関数呼び出し時の渡し方って3パターンなることになってる(コーディングスタイル上)。
>・値渡し
>・ポインタ渡し
>・参照渡し
>で、イメージで言うと黒龍さんの言う通り、値渡しとポインタ渡しは結局はものをコピーで渡しているので、「渡し方」において違いはない。
>でも、参照渡しはそれでは説明がつかないので、私の場合は「同じ領域に別名がつくんだよ」と説明します。
http://blogs.wankuma.com/kokuryu/archive/2007/07/25/87015.aspx
0173デフォルトの名無しさん2011/09/29(木) 11:56:16.89
ポインタと考えるからややこしくなるんだよ。
参照型の変数にはオブジェクトのIDが入っている。渡すときにはその値が渡る。それだけ。
0174デフォルトの名無しさん2011/09/29(木) 14:22:50.58
クリックしたつもりがダブルクリックになった時にウインドウが切り離されてしまい困ってます
ソースのタブのフローティングを切る設定はどこですればいいですか?
0175デフォルトの名無しさん2011/09/29(木) 15:17:17.26
値型・参照型の話になると、すぐC++やCと比較して説明する奴多いけど、
余計ややこしいだけだなwww
0176デフォルトの名無しさん2011/09/29(木) 15:24:41.20
まあ質問がそういう感じだったからな
C#やるならC++の記憶は消した方が楽かもね
01771692011/09/29(木) 15:51:41.42
すいません、ちょっとC++のライブラリを使うことになったので、
ポインタ渡しを直接使えるかC++/CLIでクロスライブラリを作るか考えてみたとこだったんです
0178デフォルトの名無しさん2011/09/29(木) 15:57:42.58
横槍ですまんが

>参照型はヒープ上にあるオブジェクトの識別番号(ハンドル)が変数の中身になる。
って事実上は参照渡しじゃないの?
アドレスじゃないから厳密には違うんだろうけど
0179デフォルトの名無しさん2011/09/29(木) 16:04:11.34
参照渡しというのはC#において別機能として存在してるのでその表現は不正
0180デフォルトの名無しさん2011/09/29(木) 16:06:47.83
無理やり「○○言語で言うところの●●」と考えるの止めようよ
0181デフォルトの名無しさん2011/09/29(木) 18:27:29.97
>>178
ポインタや参照渡しの引数が指してるのは場所。
.netのハンドルが指してるのは場所じゃなくてオブジェクトそのもの。全然違う。
0182デフォルトの名無しさん2011/09/29(木) 21:48:25.42
用語がめちゃくちゃw
0183デフォルトの名無しさん2011/09/29(木) 21:53:18.82
オブジェクト参照のトラッキングハンドルの値渡しとでも言って欲しいのか?
0184デフォルトの名無しさん2011/09/29(木) 22:06:16.83
ref StringはString^%だからStringオブジェクトのハンドルの追跡参照の値渡しになるのかな
0185デフォルトの名無しさん2011/09/29(木) 22:44:41.27
>>172
C++で、「ポインター変数の参照渡し」って言われてちゃんと理解できる?
0186デフォルトの名無しさん2011/09/29(木) 22:45:48.55
>>169
http://ufcpp.net/study/csharp/sp_ref.html
こっちも合わせて読んで。
図を特に。
0187デフォルトの名無しさん2011/09/29(木) 22:50:55.56
>>185
C++には参照はあるけど参照渡しなんて用語はないでしょ。
何が「ちゃんと理解できる?」だよ。
後ろ向きに鏡指差してるAA貼られるぞw
0188デフォルトの名無しさん2011/09/29(木) 22:52:35.76
暇だから以下のようなコードを書いてみた。ポインタ変数の参照渡し。
あくまでジョークだからな。

#include <iostream>

void f(int *(&p)){
    *p = 100;
}

int main(){
    int i=0;
    int *p = &i;

    f(p);

    return 0;
}
0189デフォルトの名無しさん2011/09/29(木) 23:00:26.91
>>187
それはでも、「C++ には抽象メソッドはない」(やってることは純粋仮想関数と一緒)という程度の話では。
0190 ◆QZaw55cn4c 2011/09/29(木) 23:05:00.20
>>188
ジョークどころか、わりあいに書きやすい印象を受けました。二重ポインタよりも受け入れやすい、と考える人もいるかも。
http://hibari.2ch.net/test/read.cgi/tech/1277860967/504
http://codepad.org/nHqWWH51
0191デフォルトの名無しさん2011/09/29(木) 23:10:15.48
>>190
C++、書きやすいのは確実に参照渡しの方だけど、
呼び出し側が値渡し(& なし)と区別つかないから、
呼び出し側が気づかずに関数内で値書き換わって嫌だって話も多々ある。
それが結局、関数の引数に参照使わない文化生んでた。
0192デフォルトの名無しさん2011/09/29(木) 23:10:41.14
もうC++のことは忘れろよ
0193デフォルトの名無しさん2011/09/29(木) 23:14:24.28
>>191
呼び出し側が気づかない、っていうのは普通はないでしょ。
そんなことが起こるとしたら、関数の命名もしくは仕様そのものが腐ってる場合だけ。
0194デフォルトの名無しさん2011/09/29(木) 23:16:03.53
っていうか、参照で渡すことを「参照渡し」って言うか?
聞いたことないけど
01951882011/09/29(木) 23:18:48.94
>>190
あらあらあら、実用してる人いるのか。へぇー。

書き換えないときは参照で書き換えるときはポインタ。っていう感じでしか考えたこと無いな。
まー、引数でやってきたポインタを書き換えるのあんまりスキじゃないのだけどね。
0196 ◆QZaw55cn4c 2011/09/29(木) 23:49:12.35
>>191
んー、値渡しの対象がオブジェクトだったりすると、コンストラクタが裏でうごめくのが嫌、というのと、でもポインタを渡すのも嫌、というのとで
int &f(const someclass &a, const someclass &b);
というなんだかよくわからない(わけでもないけれども)やりかたがスタンダードなんですね。最近知りました。
0197デフォルトの名無しさん2011/09/30(金) 00:59:25.29
>>194
C++では変数参照をポインタの値のように扱えるから事情が複雑だけど
参照渡しはごく一般的な言葉だろ
VBのByRefとかまんま
0198デフォルトの名無しさん2011/09/30(金) 05:15:03.06
>>193
ライブラリ使う側はほんと底辺だと思って作ったうえで、
さらにその斜め下をいかれるものよ。

でなきゃ、気づかないなんて心配しない。
0199デフォルトの名無しさん2011/09/30(金) 05:17:53.19
>>196
そうそう、const 付きなら何の問題もない。

それはそれで、const に対応するようにクラス書くのが大変なんだけど。

あと、その const& な引数を COM Interop とかで C# から見ると、
ref だらけになって悲惨なことに。
0200デフォルトの名無しさん2011/09/30(金) 21:52:55.16
VB2005の本を5冊くらい読んで結構理解したつもりの人が
C#を勉強するのにお勧めの本は何?
0201デフォルトの名無しさん2011/09/30(金) 22:16:15.76
VB.NETを完全に理解しているなら勉強する必要なし
MSDNを見ながらいきなり作れるはず
0202デフォルトの名無しさん2011/09/30(金) 22:27:46.68
まっさらな人がC#理解するよりハードル上げたね
ご愁傷様
0203デフォルトの名無しさん2011/09/30(金) 22:42:38.88
細かい文法の違いと、VBにあってC#に無い機能(=VBでも使ってはいけない機能)を知るだけだな
本とかいらん
0204デフォルトの名無しさん2011/09/30(金) 22:53:12.49
C++とかJava、phpなんかのC言語系ランゲージ触っているなら大丈夫だけど
VBのみだとどんなもんなのかな?
0205デフォルトの名無しさん2011/09/30(金) 23:10:55.21
BUILDのアンダースのセッション面白かったな
一応C#とVBの新機能の紹介のはずなのにVB完全無視どころかdisってた
0206デフォルトの名無しさん2011/09/30(金) 23:13:20.34
http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-816T
なんか老けたなw
0207デフォルトの名無しさん2011/09/30(金) 23:19:00.38
LINQ to Objects好きでとにかく使いまくるんだけど、なぜか急にパフォーマンスが気になった。
例えば↓みたいなLINQと2重ループで地道に探すロジックとどっちが処理早いんでしょう?

var ret =
from a in hogeAList
join b in hogeBList on a.Id == b.Id
select a.Name
0208デフォルトの名無しさん2011/09/30(金) 23:19:40.07
2重ループに決まってるでしょう
0209デフォルトの名無しさん2011/09/30(金) 23:20:24.90
C#がいくら進化したって要件がいつまでも2.0だもんげ
0210デフォルトの名無しさん2011/09/30(金) 23:25:48.91
>>207
1・2割、LINQ の方が遅い。

けども、ループで回す方が早いからって、一時配列作ってそれにコピーを作ったりしたら、
今度はメモリ効率悪くなるし、データ量多いと性能も落とす。
0211デフォルトの名無しさん2011/09/30(金) 23:26:17.17
繰り返し頻繁に呼ぶ処理ならループとLINQとか小手先の最適化じゃなくて
ToLookup使うとか考えるべき
0212デフォルトの名無しさん2011/09/30(金) 23:36:08.03
>>207
俺の感覚ではほとんど変わらないと思うけど
微妙に興味があるんで実際に測ってみてくれ
0213デフォルトの名無しさん2011/09/30(金) 23:43:58.23
やっぱりLINQのほうが遅いのか。
でも>>210の言うようにループだと、結果を溜めるための一時配列が必要なんですよね。
結局はLINQは万能ではなく場合によって使い分けろということですか。

だがFindAllメソッドだけはクソ便利すぎるのでどんな時でも使うのをやめない!
JavaもLINQパクって標準仕様にすればいいのに。
0214デフォルトの名無しさん2011/09/30(金) 23:44:08.68
ASP.netとか巨大アプリじゃない限り
メモリ効率や速度より読みやすさが一番大事だったりするよな
0215デフォルトの名無しさん2011/09/30(金) 23:50:22.69
FindAllってLINQ導入で要らなくなってSilverlightで削除された遺物だよ
0216デフォルトの名無しさん2011/09/30(金) 23:54:41.77
>>215
へ?
Listクラスからなくなったことですか?
0217デフォルトの名無しさん2011/10/01(土) 00:11:12.77
Silverlightは必要な機能までごっそり削除してるから比較にならん
0218デフォルトの名無しさん2011/10/01(土) 00:15:15.23
設計ミスだから削除したっていうのもあるよ
ICloneableとか
0219デフォルトの名無しさん2011/10/01(土) 00:48:47.34
オブジェクトのコピーはJavaでも失敗機能の槍玉に挙がってるが
どう設計するのが正しかったんだろうか
0220デフォルトの名無しさん2011/10/01(土) 00:50:04.52
コンストラクタに渡すのが正解
0221デフォルトの名無しさん2011/10/01(土) 00:53:12.46
>>212
1000件のリスト2つでの結果。Stopwatchクラスで計測。
LINQ:00:00:00.0002997
ループ:00:00:10.4558394

LINQのほうが圧倒的に早いんだけど、何か間違ってるのかな・・・。

必要ならソースはりますが。
0222デフォルトの名無しさん2011/10/01(土) 00:58:32.82
>>221
LINQの方、多分クエリ作っただけでクエリを実行してないだろ
0223デフォルトの名無しさん2011/10/01(土) 01:13:55.71
>>222
うあ。その通りです。しにたい。
LINQの結果のToList()メソッド呼べばクエリ実行されますよね?
でもLINQのほうが早い。謎です。

LINQ:00:00:00.0027321
ループ:00:00:00.1062660
0224デフォルトの名無しさん2011/10/01(土) 01:18:26.81
Joinは辞書使って二重ループにならないようにしてる

要するに馬鹿の考え休むに似たり、ある物はどんどん使うべきということだな
0225デフォルトの名無しさん2011/10/01(土) 01:25:11.87
なんか変だと思ったら a.Id equals b.Id だろ
それなら最適化されるのはわかる
==と普通の式みたいに書いてあると素直にラムダ式に変換されてしまって最適化されなそうに見える
0226デフォルトの名無しさん2011/10/01(土) 01:29:49.35
>>224
へ〜。なるほど。ありがとうございます。
>>208,210は嘘ってことですか。
やっと寝れる。
0227デフォルトの名無しさん2011/10/01(土) 01:31:46.91
>>225
あ、そうです。equalsです。
勢いで書いたので == って書いちゃった。

なんかぐだぐだになってすみません。
0228デフォルトの名無しさん2011/10/01(土) 16:27:38.10
>>226
嘘じゃあなくてさ、Joinのやっているようなことをちゃんと再現すれば、
余計なオーバーヘッドがなくて速い。
でも、ちゃんと色々考慮して正しく書ける人って存外少ないんだろうね、
だから、色々考慮してメソッド化されたLINQ to Objectsを使うのが大体正しい。
0229デフォルトの名無しさん2011/10/01(土) 16:33:09.73
このスレIDが出ると面白いのにな
同一人物が連投してるだろう
0230デフォルトの名無しさん2011/10/01(土) 16:37:22.78
>>228
ちゃんと色々考慮したものとLINQを実際に測定してみてくれ
0231デフォルトの名無しさん2011/10/01(土) 17:36:01.67
>>230
http://ideone.com/HkAaw
先行が若干不利なので正しく計るならもっと丁寧にやらなきゃだけど。
あと、結局、要になるのはToLookupなのでそこも自前で書けば、だけどまぁ面倒なので。
0232デフォルトの名無しさん2011/10/01(土) 18:20:16.93
乙
つか両方とも十分な速さだから、これが律速になることは無さそうですね・・・
0233デフォルトの名無しさん2011/10/01(土) 18:22:21.62
IDなら一意だろうからLookupよりDictionaryの方が速いんじゃないの
0234デフォルトの名無しさん2011/10/01(土) 20:06:19.64
あるスレッドが終了の指示がくるまで
whileし続けるありふれた挙動をさせたいとき、
bool is_thread_must_running = true;
と用意して
while(is_thread_must_running)
{
}
というスレッドを外部からis_thread_must_running = false
で終了させるコードをネットで見つけましたが、
単一の変数への読み出しのみ、
書き出しのみはアトミックであると保障されていますか?
(javaはたしかそうだったような気がしますが)

また、is_thread_must_running はここを見る限り、
http://msdn.microsoft.com/ja-jp/library/x13ttww7.aspx
volatile にすべきですよね?
0235デフォルトの名無しさん2011/10/01(土) 20:21:04.88
参照型と32ビット未満のサイズのプリミティブ型の変数の読み出しと書き込みはアトミック
volatileは必要
02362352011/10/01(土) 20:21:54.60
32ビット以下に訂正
0237デフォルトの名無しさん2011/10/01(土) 20:25:18.95
>>235-236
なるほど、ありがとうございました!
0238デフォルトの名無しさん2011/10/01(土) 20:51:45.29
Javaのcomparaterに該当するメソッドってなに?
0239デフォルトの名無しさん2011/10/01(土) 20:54:46.51
IComparer<T>インターフェイスかComparison<T>デリゲート
0240デフォルトの名無しさん2011/10/01(土) 22:36:28.75
非同期ソケット通信でタイムアウトを実装したいんですが
Timerなんかで定期的に監視して、指定の時間経ったらSocket.shutdown()とClose()したら良いんですかね
それとも同期ソケットを別のスレッドで実行する形が定石なんでしょうか
0241デフォルトの名無しさん2011/10/01(土) 23:42:45.25
後者だろうなー
0242デフォルトの名無しさん2011/10/02(日) 19:47:52.17
namespace N1 { namespace N2 { class C {} } }

という名前空間の中のクラスを、N1だけ省略して N2.C と書いて使いたいです。
ソースコードの先頭に using N1; を書いたのですが、ダメでした。
完全に N1.N2.C と書くか、using N1.N2; として C と書くしかないですか?
0243デフォルトの名無しさん2011/10/02(日) 19:56:29.29
using n2 = n1.n2;
0244デフォルトの名無しさん2011/10/03(月) 00:05:43.24
ランダムで+1か−1を返すメソッドってない?
0245デフォルトの名無しさん2011/10/03(月) 00:09:01.36
>>244
ランダムで数値作って奇数は-1偶数は+1とかやれば?
0246デフォルトの名無しさん2011/10/03(月) 00:11:21.11
random.Next(2) == 0 ? -1 : 1とか
スクリプト言語っぽく(new[]{-1,1})[random.Next(2)]とか
0247デフォルトの名無しさん2011/10/03(月) 00:17:03.93
>>246
==0と!=0は半々の確率なの?
0248デフォルトの名無しさん2011/10/03(月) 00:20:54.68
引数が2なら0か1の一様分布
0249デフォルトの名無しさん2011/10/03(月) 01:09:11.50
>>240 ttp://hibari.2ch.net/test/read.cgi/tech/1293284816/540
の人?まだ困ってたんだw
0250デフォルトの名無しさん2011/10/03(月) 18:51:44.80
EventArgsオブジェクトとかのイベントオブジェクトあるじゃん
たとえば、イベントオブジェクトを大量に発行するプログラム(ゲームとか)動かすときにメモリ使いすぎてボトルネックになるってことはないの?
メモリ食って動きが鈍くなるとか、ガベージコレクションが頻繁に起こって動きがカクカクするとかしないのかな?


0251デフォルトの名無しさん2011/10/03(月) 19:12:05.75
そういうオブジェクトは一瞬で不要になるので0世代GCで回収される
第0世代のGCは頻繁に動くけど非常に高速
重いのは中途半端に長生きするオブジェクトが引き起こす上の世代のGC
0252デフォルトの名無しさん2011/10/03(月) 19:45:02.09
へ〜 知らんかった
0253デフォルトの名無しさん2011/10/03(月) 20:43:15.87
Visual Studio 2008 にて、Click Once マニフェストを使用して、
Windows Form アプリケーションを配布していました。
その際、必須コンポーネントに
Visual Vasic Power Packs 1.2
を加えていました。

そして、Visual Studio 2010 が登場し、
そのアプリケーションもVS2010用に変換して改修を行っていたのですが、
いざClick Once マニフェストで発行しようとすると、
必須コンポーネントに
Visual Vasic Power Packs 1.2
がなく、
Visual Vasic Power Packs 10.0
しか列挙されていません。

これだと、ユーザがClick Once マニフェストの利点を享受できず、
結局、サイトからVisual Vasic Power Packs 10.0
を落としてもらうしかなくなってしまいます。

この回避方法はありますでしょうか。
VS2010でも、VS2008時代の
Visual Vasic Power Packs 1.2
をコンポーネントに加えることはできないのでしょうか。

よろしくお願いします。
0254デフォルトの名無しさん2011/10/03(月) 20:48:58.77
VV.Net
0255デフォルトの名無しさん2011/10/03(月) 20:50:45.23
ハートも.netで動いてるのか。
ミッションクリティカルすぎて怖いんだが。
0256デフォルトの名無しさん2011/10/03(月) 20:54:10.31
>>255さん
>>253ですが、やはりVS2008で開発したものはVS2008を使用し続ける方がよいのでしょうか…。
0257デフォルトの名無しさん2011/10/03(月) 21:04:15.30
その結果が今のVB6
02582552011/10/03(月) 21:07:26.57
>>256
ボケが通じないとはヤルナ!!というのは置いておいて。

有る考え方だが、
開発スイートってお作法が有るわけよ。バージョン変わるとお作法も変わるわけだ。
それをよしとするならバージョンアップすればいいと思うし、嫌ならそのまま使うしか無い。
しかし、古いお作法はどこかで淘汰されるので適度に切り替える必要はあるが、君にとって今はその時かな?
どうだい??

っていう詭弁・・・。

正直、クリックワンスを発行したことが無いのでわからん。
ただ、プロジェクトの開発環境をアップデートするなら、根本から治すくらいでやらないと割りに合わないと思う。
小手先でやるなら、保守大変だよ。
0259デフォルトの名無しさん2011/10/03(月) 21:20:07.25
>>258さん
ありがとうございます。
何とか、Power Packs 1.2 をVS2010に連れてきたかったのですが、
Microsoft社は、それを許してくれないのでしょうか…。

ただ、おっしゃるとおり、新しいバージョンと世代交代して衰退するバージョンを
いつまでも抱きかかえても、いずれ行き止まりがくるでしょうね。
02602552011/10/03(月) 21:36:57.73
軽く検索した感じだとこのへんかな??
ttp://msdn.microsoft.com/ja-jp/library/ms165429(v=VS.100).aspx

俺、ド素人だから外してるかもしれんけど。
0261デフォルトの名無しさん2011/10/03(月) 22:29:29.63
静的な型ってcでいうポインタ変数の型、動的な型は実態の型みたいな認識でおk?
0262デフォルトの名無しさん2011/10/03(月) 22:36:54.15
静的ってstaticのことじゃないの?
動的な型はヒープに確保される型じゃないの?C#だとClass型??
0263デフォルトの名無しさん2011/10/03(月) 22:36:54.88
2010で「リソースの追加と編集」の使い方についてですが・・・
リソースとしてZIPを登録してみました。
そのZIPの取り出しをしたいのですが・・・ネット上に圧縮ファイルの取り出しなんかやっている人はいないですね・・・

リソースファイルを取り出して指定した場所にコピーする方法はありますか?
0264デフォルトの名無しさん2011/10/03(月) 22:38:18.26
>>263
プロパティでバイト配列だったか、ストリームがとれたと思うのでそれをコピーするっていう話かな?
0265デフォルトの名無しさん2011/10/03(月) 22:45:46.90
ココらへんかな??
ttp://dobon.net/vb/dotnet/programing/vsresource.html
02662612011/10/03(月) 23:11:40.59
>>262
解決した、ここでいう静的てのはインスタンスの入れ物を指すみたい
動的ってのは262のいったとおり
説明不足だったwエスパーさんくす
0267デフォルトの名無しさん2011/10/03(月) 23:32:53.44
大昔、スタティックはプログラムをロードしたメモリー上とかに確保されていたこともあったけど
今はヒープに確保されるけどね
0268デフォルトの名無しさん2011/10/04(火) 01:46:48.53
Thread.Sleep(5)入れただけでぴたっとソケットエラー出なくなった
いままで悩んでたのがあほらしくなった
0269デフォルトの名無しさん2011/10/04(火) 09:16:45.43
>>268
なにそれ
0270デフォルトの名無しさん2011/10/04(火) 18:22:51.54
iTextSharpを使えばPDFファイルに書き込んだり1からPDFファイルを作ったり出来ますが、
既存のPrintDocumentをPDFに出力することはできませんか?
出来れば無償で。
0271デフォルトの名無しさん2011/10/04(火) 18:33:00.02
PrintDocumentで何にプリントするかはユーザーが判断する部分だと思うけど…
出力をPDF出力したければPDFプリンタ入れるだろ

素直にPDFとして保存するでいいじゃねえか
0272デフォルトの名無しさん2011/10/04(火) 19:12:43.92
WindowsFormアプリケーションを作成しておりますが、
下記のアクションを経た時にエラーとなってしまいます。

�@ メインフォームから、モーダルで別のフォーム(フォームA)を呼ぶ
�A フォームAが前面に立ち上がっている状態で、フォームA内にコードを記述しテキストファイルの読み込みを行う
�B テキストファイルの読み込みが終わった時点で、フォームA内のコードでフォームAをCloseする
�C メインフォームにてフォームAのDisposeを行う。ここで次のようなエラーが出ます。
  ↓
「コレクションは変更されました。列挙操作は実行されない可能性があります。」

上記のエラーについてGoogleで検索しましたが、
Foreach文で回しているときに起こりうるエラーであると記述しているサイトを多く見かけました。
しかし、メインフォームでもフォームAでも Foreach文 は使用していません。

なぜDispose時にエラーとなってしまうのでしょうか。
ご存知の方、教えてください。よろしくお願いします。
0273デフォルトの名無しさん2011/10/04(火) 19:17:01.93
>>272ですが(連投すみません)、
VS2008で動作していた頃からこのロジックの部分を変更していないのですが、
CS2010に変換してから起きるようになりました。
コンポーネントの問題もあるのかなと感じてもいます。
0274デフォルトの名無しさん2011/10/04(火) 20:07:34.91
>>271
現在印刷出来る帳票を特定の場所にボタン一つで保存したい
↓
PDFプリンタだとダイアログが出てそのフォルダまで自分で移動しないといけない。
また、それがAcrobatのようなものなら、たぶんAPIが公開されてるので
細かい指定も出来るだろうけど、安っぽいやつだとそこまで出来ない。
↓
iTextSharp.NETを使えばPDFを作成して書き込むことが出来るけど、
現在ある帳票をiTextSharp用に作り直さないといけない。
そして、新規帳票も2種類作らないといけない。
↓
じゃ、PrintDocumentからPDF出力する方法があればいいんじゃね?

という流れで上の質問に行き着きました。

Accessの時は標準の機能でPDF化が出来たのですが、Accessには戻りたくない・・・。
0275デフォルトの名無しさん2011/10/04(火) 20:22:23.94
>>264
>>265
ありがとうございます。
とりあえず動くものは出来ました。でも、開発環境と別マシンでテストしたら
「UnauthorizedAccessExceptionは、ハンドルされませんでした。」
と蹴られました。
ソースはこんなソース
Byte[] data = Properties.Resources.Z;

using (System.IO.Stream srm = System.IO.File.Open(@"D:\\Z.zip", System.IO.FileMode.Create) )
0276デフォルトの名無しさん2011/10/04(火) 20:24:04.73
まずDに書き込む権限あるんかい
0277デフォルトの名無しさん2011/10/04(火) 20:25:49.27
>>275
他のマシンでプログラムに読み込み権限か書き込み権限がない、または両方だとおもう。
0278デフォルトの名無しさん2011/10/04(火) 20:34:04.95
>>276
>>277
早速ありがとうございます。
お二方に頂いている内容は、プログラムを動かしているOSのドライブの
フォルダにそもそも権限が無いのではないか?
という意味で捉えてよろしいでしょうか?

ドライブのプロパティを確認したのですが、フルコントロール状態にしてみても
同じエラー出ました・・・

仮に権限がない場合は、プログラムで対策しなくてはいけないのですか?

0279デフォルトの名無しさん2011/10/04(火) 21:27:22.46
>>272です。、
ご存知の方、教えていただけないでしょうか(>_<)。
0280デフォルトの名無しさん2011/10/04(火) 21:48:49.95
>>279
問題が再現できるコードをイデオンに貼らないのは何故?
例外と関係あるかどうか不明なプログラムの動作を書いても意味ないでしょ。
世の中にエスパーは存在しないこと分かってる?
0281デフォルトの名無しさん2011/10/04(火) 21:51:53.94
>>279
フォームをCloseしたらDisposeしなくていいんだけどな
Disposeメソッドとかで余計なことしてるんじゃない?
関係なかったらごめんね
0282デフォルトの名無しさん2011/10/04(火) 21:54:04.77
>>279
デバッグの仕方は分かるけど原因は分からんな

とりあえず例外の型(InvalidOperationException?)を調べて、エラーの出る直前までデバッグで実行
そしたら「デバッグ」の「例外」でCLR例外かから問題の型を探して「スローされるとき」にチェック
んで例外を発生させて、呼び出し履歴をチェックすればどのインスタンスが問題なのか分かるはず
どう直すべきかは判断できないので自分で考えて
0283デフォルトの名無しさん2011/10/05(水) 00:56:09.59
passという配列にリソースファイルのファイル名(mona.jpg)が入っており、
それをpictureBox1に表示させたいのですが、下記のように記述してみたもののエラーが出ます。
どのように記述すれば良いのかご指導頂けませんでしょうか?

pictureBox1.Image = pass[0];

型 'object' を 'System.Drawing.Image' に暗黙的に変換できません。
明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
0284デフォルトの名無しさん2011/10/05(水) 00:56:49.39
ttp://journal.mycom.co.jp/articles/2008/06/23/sharpmap/index.html
地図表示をさせようと上記のサイトを参考に作りました
2ページ目の中央黒色のプログラムを書き、デバッグは通ったのですが
フォームに地図が表示されません
Visual C# 2008を使用しています
よろしくおねがいします
0285デフォルトの名無しさん2011/10/05(水) 02:17:04.14
地図ファイルは用意した?
0286デフォルトの名無しさん2011/10/05(水) 02:30:25.06
>>283
>pass[0];
配列なのはわかるけど何の配列なのよ
Bitmap?
02872842011/10/05(水) 02:32:27.82
お返事ありがとうございます。
ページに書いてあるサンプル「みんなの地球地図プロジェクト」から
「bnda.zip」と「hydrol.zip」を入手しました。

プロジェクトのShapeFilesフォルダに配置すると書いてありますが
ソリューションエクスプローラーに「ShapeFiles」フォルダーを作り
デスクトップに解凍したbnda.zipとhydrol.zipの中身をドラッグ&ドロップで
持っていったのですがこの方法で合ってますか?
あと、2ページ目のプログラム部分で(省略)って書いてあるのも気になります
0288デフォルトの名無しさん2011/10/05(水) 02:37:52.73
プロジェクトがローカルのどこにおいてあるかしらんけど
プロジェクト一式が入ってるフォルダの中に配布用とデバッグ用の
exeが入ってるところがあるのでその辺に実行に必要なファイルを置くしかないよ
0289デフォルトの名無しさん2011/10/05(水) 02:44:10.43
>>283
本質的な事じゃないけどファイル名ならpassじゃなくてpathじゃないのか?
0290デフォルトの名無しさん2011/10/05(水) 07:16:42.49
PictureBoxのImageプロパティに関するよくある勘違い
http://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html
0291デフォルトの名無しさん2011/10/05(水) 09:08:01.92
>>281
ダイアログの場合は呼んでね、Dispose
0292デフォルトの名無しさん2011/10/05(水) 20:07:52.01
>>272です。
皆様、回答くださりありがとうございます。

>>281さん
ShowDialogにてFormを呼び、そのForm内でClose()を実行し、呼び出し元のFormでDispose()をしています。
いくつかのPCで試してみた結果、
VisualStudio2008(または2010)がインストールされているPCではエラーとならず、
インストールされていないPCのみ、Dispose()時にエラーとなることが分かりました。
また、Dispose()の記述を外したら、エラーとなっていたPCもエラーとならなくなりました。

パソコンの環境によってエラーとなる場合とならない場合があります。
VSが入っているPCではエラーとならないことを考えると、
何かコンポーネントが足りないのかなとも思いました。

また、Dispose()を外したらエラーとならなくなったのですが、
本当にDispose()しなくて良いのかどうか不安です。

何が原因なのか分からなくなってきました。
0293デフォルトの名無しさん2011/10/05(水) 20:12:37.63
PanelコントロールのAutoScroll=trueでスクロールが実現するのはいいのだけど
スクロールバーをドラッグしてる間はPanelの内容が全く動かず
ドロップ時にスクロール先に瞬間移動する

ちょっとなにいってるかわからんがもしれんが
普通のスクロールバーの挙動と違う
解決策教えてください
0294デフォルトの名無しさん2011/10/05(水) 20:13:47.58
ListViewに動画ファイル一覧があり、それを選択すると
Process.Startで動画ファイルに関連付けられたプレイヤーを起動するようにしているのですが
フォームはアクティブな状態を保ちたいのに、プレイヤーの方がアクティブになってしまいます
TopMostをtrueにしたり、this.Activate();にしてもアクティブ状態を維持できませんでした
どうすればいいでしょうか
0295デフォルトの名無しさん2011/10/05(水) 20:28:39.66
ProcessStartInfoとかでどうにかならんの
知らんけど
0296デフォルトの名無しさん2011/10/05(水) 20:35:31.84
乱数を10個選んで昇順(小→大)に並び替えるプログラムを組みましたが、実行するとエラーになります。
数字は選べているのですが、どうも並び替えるほうが問題のようです。どこが悪いのでしょうか。

for( i = 0; i < 10; i++){
for( j = i+1; j < 10; j++){
if(a[i]>a[j]){
min = j;
}
tmp=a[i];
a[i]=a[min];
a[min]=tmp;
}
}
for( i = 0; i < 10; i++){
printf("%d\n", a[i]);
}
return 0;
}
0297デフォルトの名無しさん2011/10/05(水) 20:38:14.28
エラーはなんてでてるの?
あとa[]の宣言は?
0298デフォルトの名無しさん2011/10/05(水) 20:41:16.97
a[10]で初めのほうに宣言しています。

エラーというか、乱数を選んだあと、プログラムが停止してしまいます。
0299デフォルトの名無しさん2011/10/05(水) 20:42:17.75
いやだからそのエラーコードは何って聞いてるのw
0300デフォルトの名無しさん2011/10/05(水) 20:43:26.84
minが初期化されない場合があるんで、tmp云々はifの中に入れないと

…と思ったがprintf?
0301デフォルトの名無しさん2011/10/05(水) 20:45:22.96
>>296
printf?質問するスレ間違えてないか?
0302デフォルトの名無しさん2011/10/05(水) 20:45:36.39
不慣れですいません。
エラーコードといいますか、
実行すると、「問題があるので解決策を探しています」→「問題が発生したため、プログラムが正しく動作しなくなりました。」としか表示されません。

ちなみにさっきの前のコードはこうなっています。
#include<stdio.h>
#include<time.h>
int main (){
int a[10];
int i;
int j = 0;
int min;
int tmp;
srand((unsigned)time(NULL));
for( i = 0; i < 10; i++){
a[i] = rand () % 10;
printf("%d\n", a[i]);
}
printf("\n");
0303デフォルトの名無しさん2011/10/05(水) 20:46:03.64
スレチ
0304デフォルトの名無しさん2011/10/05(水) 20:46:36.88
C言語スレでどぞう
0305デフォルトの名無しさん2011/10/05(水) 20:46:55.05
C#じゃないじゃんw
0306デフォルトの名無しさん2011/10/05(水) 20:47:57.68
釣れた釣れた
0307デフォルトの名無しさん2011/10/05(水) 20:48:02.00
わ、Cはこちらだと思って書き込んでいました。
お邪魔しましたすいません
0308デフォルトの名無しさん2011/10/05(水) 20:54:48.92
>>294
無理
0309デフォルトの名無しさん2011/10/05(水) 20:57:49.73
>>294
ShellExecute/ShellExecuteExでなんとかなるかも
0310デフォルトの名無しさん2011/10/05(水) 21:06:53.90
>>309
WinAPIを使ってやるしかないみたいですね
ありがとうございました
0311デフォルトの名無しさん2011/10/05(水) 21:13:17.58
>>292
ですが、お心当たりのある方、どなたか教えていただけないでしょうか(>_<)。
0312デフォルトの名無しさん2011/10/05(水) 21:26:43.94
>>282は試したのか?
ソース一式とスタックトレースを見られる人間にしか原因調査できないと思うよ
0313デフォルトの名無しさん2011/10/05(水) 23:22:44.05
ふらっとC#,C♯,C#、C井、C丼
0314デフォルトの名無しさん2011/10/05(水) 23:31:29.08
>>311
だから、問題を再現できるコード出せよ馬鹿
0315デフォルトの名無しさん2011/10/05(水) 23:34:40.13
バチーンバチーンしてやりたい><
0316デフォルトの名無しさん2011/10/06(木) 00:35:02.43
インで草がどうたらこうたら
0317デフォルトの名無しさん2011/10/06(木) 16:09:15.55
Dllimportでアンマネージコードの呼び出しをしますが
そのアンマネージコードからコールバックされる関数の引数にポインタが渡されてくる場合
C#側ではどうやって参照すればいいんでしょう?
0318デフォルトの名無しさん2011/10/06(木) 17:43:50.82
>>313
マジで腹減ってくるし
0319デフォルトの名無しさん2011/10/06(木) 18:11:06.76
>>317
PtrToStructureとかなんかそんな名前の奴
0320デフォルトの名無しさん2011/10/06(木) 18:22:30.44
>>317
コールバック?
0321デフォルトの名無しさん2011/10/06(木) 18:49:12.33
>>317
GetFunctionPointerForDelegateとかじゃないの?
初心者だから詳しくは知らないけど、ググればサンプルはたくさんありそうだよ。
マーシャリングは難しいねぇ。
0322デフォルトの名無しさん2011/10/06(木) 23:30:33.05
>>317
渡されてくるポインタが構造体なら
それと同じ構造体を作ってやってPtrToStructure
0323デフォルトの名無しさん2011/10/07(金) 14:47:35.64
string型に"を入れたいときってどうすればいいんだっけ?
"""とか3つ重ねてみてもうまくいかなかったんだが
0324デフォルトの名無しさん2011/10/07(金) 14:49:38.93
"\""
または
@""""
0325デフォルトの名無しさん2011/10/07(金) 14:52:54.92
>>323
文字リテラルっていうので覚えておきましょう
http://msdn.microsoft.com/ja-jp/library/aa691087%28v=vs.71%29.aspx
0326デフォルトの名無しさん2011/10/07(金) 15:31:52.63
>>324-325
さんくす
0327デフォルトの名無しさん2011/10/07(金) 21:14:27.88
Flowlayout内に動的に並べたボタンの順序をユーザーがD&Dで変えられるようにしようと思っています

一応、それぞれのボタンにマウスイベントを追加して、マウスの移動量に合わせて
ボタンのインデックスを変更して移動させるようにはできたのですが
これでよかったのでしょうか
ぐぐってもD&Dで順序を変える方法が見つからなかったので不安です
0328デフォルトの名無しさん2011/10/07(金) 21:23:42.59
>>291 それどっかに注意書きあります?
0329デフォルトの名無しさん2011/10/07(金) 22:23:30.00
もろShowDialogにある
0330デフォルトの名無しさん2011/10/08(土) 17:29:56.04
インターフェースについてよくわからないので教えてください
・publicな抽象メソッドだけを持つクラスのようなもの
これについてですが、実際publicな抽象メソッドだけを持つクラスではだめなのですか?いまいちメリットがわかりません
あとIDisposableインターフェースなんですが、自作クラスに実装しただけでusing文が使えるようになるんですか?
class MyClass : IDisposable
{
 〜略〜
}
こんな感じに書いて他のクラスからこんなことをやってみたんですが、うまくいきません
using(MyClass myclass = new MyClass())
{
}
どうすればIDisposableインターフェースを実装してusing文を使えるようになるでしょうか?
例としてソースを貼ってもらえると助かります
0331デフォルトの名無しさん2011/10/08(土) 17:39:12.96
継承だけしてDisposeを実装してないんじゃなかろうな
0332デフォルトの名無しさん2011/10/08(土) 17:39:49.75
>publicな抽象メソッドだけを持つクラスではだめなのですか?いまいちメリットがわかりません

クラスは多重継承できない
どこからか継承してきたクラスにIDisposableを追加したい場合を考えてみる

>あとIDisposableインターフェースなんですが、自作クラスに実装しただけでusing文が使えるようになるんですか?

使えるようになるよ
どうせVSが古いか、: IDisposableと書いただけで中身を実装してないか、どちらかだろ
0333デフォルトの名無しさん2011/10/08(土) 17:42:11.39
むしろお前の「実装」を出すのが筋やろ

何が下さいだ
0334デフォルトの名無しさん2011/10/08(土) 17:42:11.79
・IDisposableがSystem.IDisposableではない
・MyClassにpublic void Dispose(){}またはvoid IDisposable.Dispose(){}が定義されていない
0335デフォルトの名無しさん2011/10/08(土) 17:45:41.07
>>330
1について、
インターフェースの宣言は何も実装してないことが美徳なのですよ。
あるフレームの手続がこんな感じ。ということを示せればそれでいいからです。

実装の際には未実装があるとコンパイルエラーになりますし、
半端な初期実装を持つよりも、奇妙な動作をしなくなります。
0336デフォルトの名無しさん2011/10/08(土) 17:45:43.18
class MyClass : System.IDisposable
{
public void Dispose(){}
}

これで動かなければ、誰も分からん
0337デフォルトの名無しさん2011/10/08(土) 17:47:37.95
ただし、マーカーインターフェース使うくらいなら素直にAttribute使ってください
今はね
0338デフォルトの名無しさん2011/10/08(土) 22:25:42.38
Bitmapオブジェクトをピクセル単位でなく、
メモリのかたまりとして一気に、高速に比較できないでしょうか
0339デフォルトの名無しさん2011/10/08(土) 22:31:16.71
.NET Framework 4から追加された
めもりまっぷとまっぷ
ttp://msdn.microsoft.com/ja-jp/library/dd997372.aspx
開発の基本だ
0340デフォルトの名無しさん2011/10/08(土) 22:36:10.86
LockBits
0341デフォルトの名無しさん2011/10/08(土) 22:37:15.10
Bitmap.LockBits
0342デフォルトの名無しさん2011/10/08(土) 22:38:14.15
Mapped
これってマップトになるの?w
0343デフォルトの名無しさん2011/10/08(土) 22:44:31.98
>>342
http://www.clear-english.com/db/mapped.html
0344デフォルトの名無しさん2011/10/08(土) 22:49:44.64
>>343
IT業界ってまあ日本人が発音したのだろうけどマップドが多かった気がするんだよな
0345デフォルトの名無しさん2011/10/08(土) 23:11:39.48
俺はマップトと読んでたなあ
AdvancedWindowsの目次が確かマップトになってたせいで
0346デフォルトの名無しさん2011/10/08(土) 23:14:24.15
Steve Jobsは?
ジョブス? ジョブズ
0347デフォルトの名無しさん2011/10/08(土) 23:15:33.79
アイアムノージョブズ
0348デフォルトの名無しさん2011/10/08(土) 23:31:29.96
アウトー!!
0349デフォルトの名無しさん2011/10/09(日) 00:11:18.45
I'm know Jobs now
0350デフォルトの名無しさん2011/10/09(日) 00:16:06.54
すぐこういう馬鹿みたいのが湧くな。

どうせスレと無関係のこと書くならせめて他人の心を動かすこと書けよ。
面白いとか、いい事教えてもらったとか思えるようなこと。

そんなオッサンのオヤジギャグ以下の1行レス書いて何が楽しいの?
0351デフォルトの名無しさん2011/10/09(日) 00:22:31.62
駄目なオマイラにモノ申す!
駄目駄目言ってるだけじゃ駄目なんだぜ?!
ってくらい駄目なレスだな
0352デフォルトの名無しさん2011/10/09(日) 01:42:39.71
だめなやつは なにをやっても だめ
0353デフォルトの名無しさん2011/10/09(日) 14:29:30.67
strにはUnicode文字が入っているんですが
this.label1.Text =str;
this.toolStripStatusLabel1.Text = str;
labelには表示されてけどもう一方には表示されない
何か制約があるんでしょうか?
0354デフォルトの名無しさん2011/10/09(日) 14:32:53.41
Unicode文字なんて.NETが扱えるすべての文字じゃねーか
フォント違いとかどうよ
0355デフォルトの名無しさん2011/10/09(日) 14:52:10.10
>>353です

先頭からいくつかの文字を抜き出して表示したらちゃんと行けました
どうやら末尾に何かの文字列?があってそれが表示されない原因のようです
labelの表示で見た感じでは普通に英文字なだけなんですが
何か調べる方法はありますか?

\r\n\tこれらはついていませんでした。
0356デフォルトの名無しさん2011/10/09(日) 15:00:33.21
>>353です

なんとなく原因がわかってきました
dllを利用してそこから返してくるバイト文字列をbytes[512]を
Encoding.Defaultで変換しているんですが
文字数を調べたら見た目はは10文字程度なんですが、str.Lengthは512文字になっていました
0357デフォルトの名無しさん2011/10/09(日) 15:08:07.95
ああそらそうよ
dllの方はnull終端文字列のつもりで返してるんだろうけど
C#の文字列にはその概念が無いから\0にしてしまう
0358デフォルトの名無しさん2011/10/09(日) 15:09:58.80
dllにバイトで渡すのやめて、new StringBuilder(512)を使え
0359デフォルトの名無しさん2011/10/09(日) 15:16:30.32
>>357
そういうのがあったんですね

str=str.TrimEnd(new char[]{'\0'});

とすることでいけました
ありがとうございました
0360デフォルトの名無しさん2011/10/09(日) 15:17:34.35
humm...
0361デフォルトの名無しさん2011/10/09(日) 15:35:23.33
DataGridViewにボタンの列を追加したのですが、
行の値に応じてボタンの可視・不可視を制御することはできますか?
0362デフォルトの名無しさん2011/10/09(日) 18:30:28.37
自分でそういう処理書かないとできませんね
WPFはそういうの得意だけどね
0363デフォルトの名無しさん2011/10/09(日) 23:01:20.94
C#でマルチメディアプレイヤーを作りたいと考えているのですが、シークバーやボリュームコントロールの方法、また、曲情報の読み込みなどその他具体的に必要になってくる処理の書き方に悩んでいます!
サンプルや、Webサイト、書籍ご存知のかた教えて下さい。
0364デフォルトの名無しさん2011/10/09(日) 23:08:38.43
そんな貴方のために誂えたような本があると本気で考えているか
0365デフォルトの名無しさん2011/10/09(日) 23:21:56.93
つまりマルチメディアプレイヤーに必要なものが何もわかっていないと
0366デフォルトの名無しさん2011/10/09(日) 23:40:31.43
>>353です

あれから>>358のやり方をやってみようと
格闘しているのですが、マーシャルエラーばかりでてうまくいきません

やろうとしているのは
"Sinku.dll を使う"でぐぐった一番上にあるサイトのソースと同じなんですけど
0367デフォルトの名無しさん2011/10/10(月) 00:00:03.01
作ったことのある人のブログを見るか,オープンソースのソフトを探してみるとか
0368デフォルトの名無しさん2011/10/10(月) 00:26:27.14
wfpでやるなら、MediaElement使えば割と簡単にできるしサンプルも見つけられる
winformなら、wmpを使うのが簡単で、他にはDirectShow.netやVLCのライブラリが使える
tagはtaglib-sharpが割と使えた
0369デフォルトの名無しさん2011/10/10(月) 00:31:40.59
世界食糧計画
0370デフォルトの名無しさん2011/10/10(月) 00:35:17.31
あと、逆再生とか、倍速とか、ピッチを変えない倍速とかもやりたいんです!><;
0371デフォルトの名無しさん2011/10/10(月) 01:07:48.06
分かるよ。自分もVC#風に使えるテキストエディタ作りたい。
0372デフォルトの名無しさん2011/10/10(月) 01:35:20.84
小生も作業用BGM動画を分割してタグ付けアートワーク割り当てまでこなせるツール作りたい。
0373デフォルトの名無しさん2011/10/10(月) 02:54:30.61
>>366
[ StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct StrParam
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)]
public byte[] str;
};

これを


[ StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct StrParam
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 512)]
public String str;
};

こう
03743662011/10/10(月) 03:10:25.81
>>373
ずっと悩んでました
public StringBuilder name;
とやっていてもマーシャルエラーが出て
どうやってsbを渡せばいいのかと悩んでました

それで試してみます
ありがとうございます
0375デフォルトの名無しさん2011/10/10(月) 03:15:56.46
Niceguy 俺 = new Niceguy();

ナンパしまくる;

俺.Dispose();
0376デフォルトの名無しさん2011/10/10(月) 03:25:30.48
俺はnewされてDisposeしかしてないな
03773662011/10/10(月) 04:06:05.77
>>373
Uni版でやってため最初うまくいきませんでしたが
Ansi版でできました!ありがとうございます
0378デフォルトの名無しさん2011/10/10(月) 20:42:38.21
Windowsのファイルやフォルダの名前を変更する際、英大文字を英小文字に
変更したい場合、System.IO の Move()メソッドやMy.Computer.FileSystem の
Rename〜()メソッドではできないようです。これはどう解決していますか?
0379デフォルトの名無しさん2011/10/10(月) 20:44:47.65
そもそもMS製のOSってファイルネームで大文字小文字の識別ってしたっけ?
DOSのころから大文字だろうか小文字だろうが同じファイル名称とみなすはず

なのでAPIも・・・
0380デフォルトの名無しさん2011/10/10(月) 20:47:03.96
地味に不愉快な仕様だよなぁ〜
0381デフォルトの名無しさん2011/10/10(月) 20:49:12.77
>>379
a123.txt→A123.Txtなどの変更は、Explorerでは可能でした。
できれば同じようにならないものでしょうか。
0382デフォルトの名無しさん2011/10/10(月) 20:51:58.87
>>381
それはあくまで表示が違うだけだからなあ・・・
細かい話になるとファイルシステムの仕様を理解しないとできないかもしれない
0383デフォルトの名無しさん2011/10/10(月) 20:54:07.27
>>382
ということは、Explorerでは個々のファイル名を個別に覚えている、ということ
でしょうか。
0384デフォルトの名無しさん2011/10/10(月) 20:58:08.79
何らかの方法で可能だとしてもその方方が一般に公開されているとは限らないしね
0385デフォルトの名無しさん2011/10/10(月) 21:02:36.52
>>383
いや
DOSのころのファイル名称っていうのは8.3形式なんだよね
ファイル名称8文字と拡張子3文字

でwindowsのいつごろからか忘れたけどロングファイルネームっていう
拡張が行われてて大文字小文字を覚えてくれてるのはおそらく
8.3で収まるファイル名称であってもExplorerがロングファイルネーム扱いで
やってるんだと思う

なのでこの辺のファイルシステムにアクセスする方法もしくは
アクセスしてる関数もしくはアクセスさせるためのパラメーターが
わかればできないこともない

ただC#のファイル関連でそこまで気にしたことないのでC#の中で
できるのかわからん
APIを呼び出せば確実にできるだろうけど(OSやOSに関連するExplorerがやってるんだし
0386デフォルトの名無しさん2011/10/10(月) 21:04:01.50
一旦別のファイル名付けてリネームし直せばいける気がする
0387デフォルトの名無しさん2011/10/10(月) 21:06:21.05
行けるよ
前作った時はそうした
0388デフォルトの名無しさん2011/10/10(月) 21:12:24.38
なるほど
すでに管理情報はあるしそこにファイル名称はあるから
(windowsにおいてはa123.txtもA123.Txt同じファイルとして扱われる)
ロングネーム(ロングファイルネームというのは一般的ではないようだスマソ)の
方は書き換えされないんだな
0389デフォルトの名無しさん2011/10/10(月) 21:14:45.49
ちなみにこういうネタがある
http://www.itmedia.co.jp/help/tips/windows/w0490.html

ファイル属性の中にロングネーム使うかどうかとかあったはずなんだよな
もう忘れちゃった
0390デフォルトの名無しさん2011/10/10(月) 21:14:53.73
おお、なんか知らんがWin7だとFile.Moveで大文字小文字のリネームができた
0391デフォルトの名無しさん2011/10/10(月) 21:24:17.31
>>385
そうですか、APIで可能なものがありそうか調べてみます。

>>386>>387
その手がありましたか、なるほど。
0392デフォルトの名無しさん2011/10/10(月) 21:28:13.68
>>391
ごめん
もしかするとAPIでどうにかなるものではなく>>390の発言から察するに
OS依存かもしれないw
0393デフォルトの名無しさん2011/10/10(月) 21:35:49.98
おまいら適当な推測でレスしすぎ
0394デフォルトの名無しさん2011/10/10(月) 21:38:20.86
放置されるよりマシだろw


03953782011/10/10(月) 23:36:21.47
やってみましたら、
ttp://www.serpress.co.jp/winapi/no007.html
このAPIで出来ることがわかりましたが、これでやれるということは、
.NETは単純にラッピングすればいいのに、グレードダウンしていたことになる
んでしょうか。これってどうなんでしょね。
0396デフォルトの名無しさん2011/10/11(火) 00:21:27.97
その辺はわからん
日本のこんな偏狭スレの人間が知ってるとも思えないしw
0397デフォルトの名無しさん2011/10/11(火) 00:56:41.84
ダウングレードかどうかは立場の問題でしょ。

ドトネトは、恐らくパフォーマンスのために元の名前とファイルシステム上
等価の名前が与えられた時は無視する仕様になってるんだろう。

これは低レベルの操作をしたい場合には余計なお世話だけど、
ライブラリとしてはまあ妥当な仕様じゃない?
0398デフォルトの名無しさん2011/10/11(火) 01:05:48.80
先日プログラミングを学び始めた初心者です。
再帰関数を用いて二分探索を作ろうと思うのですが、
再帰関数をうまく用いる方法が思いつかず困っています。
用いなければ以下のように作ったらうまく作動すてくれたのですが・・・
優しい人教えてください。
Int nibuntansaku (int x, int v[], int n)
{
int p, q, m;
p = 0;
q = n – 1;
while (p <= q) {
m = (p + q)/2;
if (x < v[m])
q = m – 1;
else if (x > v[m])
p = m + 1;
else
return m;

0399デフォルトの名無しさん2011/10/11(火) 01:17:05.29
>>398
再起関数はスタックを食いつぶすので深い再起は避けるべき。
むしろ、ループでどうにかなるならソッチの方がベターだな。
0400デフォルトの名無しさん2011/10/11(火) 01:19:43.10
大昔のポケコンでもあるまいし、スタック食い潰すて
0401デフォルトの名無しさん2011/10/11(火) 01:23:31.22
いやー、穴掘り法で迷路作ったときに、128*128位のマップ作ったらスタックオーバーフローでプログラムが死んでた。
ネスト数は大体200くらいだったような気がする。
0402デフォルトの名無しさん2011/10/11(火) 01:40:46.84
>>399
>>400
レスありがとうございます。
使っている資料の演習に
再帰を用いて作ってみろ
とあるので解いてみたいので、よろしければご教授お願いします。
資料は昔兄が大学で貰った資料なので答えがないです。
04033982011/10/11(火) 01:46:59.05
この程度の問題も解けないのかよks
お前らに聞いたのが間違いだったわww
0404デフォルトの名無しさん2011/10/11(火) 02:10:02.09
>>403≒>>398
カッコワルw
0405デフォルトの名無しさん2011/10/11(火) 02:16:05.03
>>403
’この程度の問題’をなぜ質問したのか・・・。
数分で音を上げて勝利宣言とかどうなんだろうね。
0406デフォルトの名無しさん2011/10/11(火) 02:18:16.94
なりすましですし・・・
0407デフォルトの名無しさん2011/10/11(火) 03:09:49.85
どう見てもなりすめしてまきずし・・・
0408デフォルトの名無しさん2011/10/11(火) 04:16:04.33
半角英数でないところがアホさをより一層際立たせている
0409デフォルトの名無しさん2011/10/11(火) 07:37:43.23
おすし
0410デフォルトの名無しさん2011/10/11(火) 07:38:51.04
IDは付かないもんかねえ
0411 ◆QZaw55cn4c 2011/10/11(火) 07:50:50.17
ほんと。IDがつけばノイズが減るのにね。
0412デフォルトの名無しさん2011/10/11(火) 08:57:48.03
ID付きで見たいな
管理者うらやましす
04134122011/10/11(火) 09:13:24.73
なりすましや自演なんてみんなやってんだろ?
全然バレないしな
0414デフォルトの名無しさん2011/10/11(火) 10:29:16.23
ム板は他より悪意少な目な人が書き込んでると思ってた。
0415デフォルトの名無しさん2011/10/11(火) 12:30:05.81
>>395
自動化厨御用達のSendInputすら無いんだぞ
期待するだけ無駄
0416デフォルトの名無しさん2011/10/11(火) 13:07:20.94
自動化厨初めて聞いたw
04173982011/10/11(火) 13:11:00.67
はやく自動化プログラムさせろよ
0418デフォルトの名無しさん2011/10/11(火) 13:24:24.21
LabVIEWでも使ってろ
0419デフォルトの名無しさん2011/10/11(火) 17:08:13.33
フラットした気持ちがシャープに
0420デフォルトの名無しさん2011/10/11(火) 22:39:16.87
c#でexcelのシートを操作してるんだけど
結合セルの動作がよくわかんない。
3×3の結合セルから3行ってのを取りたくて
mergearea.rows.countってやっても
1が帰って来ちゃう。

どうやったら3行って取れるの?
0421デフォルトの名無しさん2011/10/11(火) 22:41:54.04
>>420
あんたの質問こそよくわかんない。
日本語でお書きください。
0422デフォルトの名無しさん2011/10/11(火) 22:42:50.83
ボタンを押すたびにコントロールを動的に作成しているんですが
描画がちらつきます。
ちらつかないようにするにはどうしたらいいでしょうか?
private void button1_Click(object sender, EventArgs e)
{

while (true)
{
foreach (Control con in panel1.Controls)
{
panel1.Controls.Remove(con);
}
if (panel1.Controls.Count == 0) break;
}

for (int i = 0; i < 10; i++)
{
TextBox tb = new TextBox();
tb.Top = i * 20;
tb.Left = 10;
panel1.Controls.Add(tb);
}
}
0423デフォルトの名無しさん2011/10/11(火) 22:46:27.81
とりあえずSuspendLayoutとResumeLayoutを試してみれば
0424デフォルトの名無しさん2011/10/11(火) 22:46:42.33
>>422
フォームのチラつき制御で調べるとでてくるとけど
winformの場合完全にチラつきを排除できないよ
0425デフォルトの名無しさん2011/10/11(火) 22:46:46.66
もしかして:ダブルバッファリング
0426デフォルトの名無しさん2011/10/11(火) 22:49:35.51
ちらついたっていいじゃないか
Windows Formだもの
0427デフォルトの名無しさん2011/10/11(火) 22:55:21.56
やはりチラツキはしかたないですよね。
XNAで作り直します。
0428デフォルトの名無しさん2011/10/11(火) 23:04:32.11
>>420
cell.MergeArea[cell.MergeArea.Count].Row - cell.Row + 1ってな感じかな?
0429デフォルトの名無しさん2011/10/11(火) 23:08:16.91
>>428
意味はよく飲み込めないけど
明日試してみるわ。
ありがとう。
0430デフォルトの名無しさん2011/10/12(水) 02:06:24.70
メソッドのコードが20行40行ってどんどん増える
他の人のコードみると驚くほど短い
何がいけないんだ・・・
0431デフォルトの名無しさん2011/10/12(水) 02:10:41.85
クラスに分離したりとね・・・・
というかそれなりの処理してればコードは増えるよ

気になるならMSのSystem.xxxのソースコード見てきなよ
0432デフォルトの名無しさん2011/10/12(水) 08:14:14.48
マーチン ファウラーのリファクタリングの本を読むといいよ
0433デフォルトの名無しさん2011/10/12(水) 08:28:42.90
System.Xml.Serialization.XmlSerializer ser = new
こうするのと、usingディレクティブを使用して
XmlSerializer ser= new
こうするのだとコストが違ったりするの?
開設サイトは分かりやすくするために修飾子つけているだけ?
0434デフォルトの名無しさん2011/10/12(水) 08:33:52.63
>コストが違ったり

しないよ
0435デフォルトの名無しさん2011/10/12(水) 08:48:20.99
>こうするのだとコストが違ったりするの?
ビルドして出来上がる物はかわらない
コードの見た目の問題とか入力の問題とか
usingで使うところを指定しておけば
XmlSerializer ser= new・・・
ではじめれるからねえ
usingを書いてなければその都度
System.Xml.Serialization.XmlSerializer ser = new・・・
と書いていかなきゃいけなくなる
いくら支援があるとはいえね・・・

>開設サイトは分かりやすくするために修飾子つけているだけ?
そうだと思う
using ・・・・
と
XmlSerializer ser= new・・・
ってコピペする場合は書く位置が違うからね
そんなの説明するくらいなら解説サイトは
System.Xml.Serialization.XmlSerializer ser = new・・・
とusingで分離しない方が簡単だし
0436デフォルトの名無しさん2011/10/12(水) 13:07:00.76
ずっと疑問だったのですっきりしました
usingをどんどん使っていきます
0437デフォルトの名無しさん2011/10/12(水) 13:12:53.67
DataGridViewに入れられている数値を元に折れ線グラフを画像出力ってのをやりたいんですが
どういったものを使えばできるようになるでしょうか?
0438デフォルトの名無しさん2011/10/12(水) 13:15:03.12
.NETを4.0にしてChartコントロール使え
もしくは3.5でChartコントロールをインストール
0439デフォルトの名無しさん2011/10/12(水) 14:26:16.57
>>430
オレもそうだ。
条件分岐なんかしてると、それぞれにメソッド作って分けて書けばいいんだろうけど、
ついつい、そのままifとeise ifの間にズルズル書いちゃう。
こういうのスパゲッティっていうのだろうな。
0440デフォルトの名無しさん2011/10/12(水) 14:28:55.57
そういうのはスパゲティーコードじゃないよw
0441デフォルトの名無しさん2011/10/12(水) 15:24:24.04
3層以上ネストする様なら別の方法を考える
0442デフォルトの名無しさん2011/10/12(水) 15:25:07.03
4層以上だた
0443デフォルトの名無しさん2011/10/12(水) 16:24:44.50
速度考えるとスパゲティコードになるw
0444デフォルトの名無しさん2011/10/12(水) 17:20:29.78
??
0445デフォルトの名無しさん2011/10/12(水) 18:24:02.18
設計段階での発想と言うか、アルゴリズムというか、
いいプログラムって出発点から違うんだろうな。
おれなんか逐次的な処理のコードしか書けん。情けないorz
0446デフォルトの名無しさん2011/10/12(水) 18:26:03.01
>>443
その考えは改めたほうがいい
0447デフォルトの名無しさん2011/10/12(水) 18:26:44.33
慣れですよ
それにオブジェクトだってそれほど大きく逸脱した物でもないし
0448デフォルトの名無しさん2011/10/12(水) 19:00:35.71
長いからなんて理由でクラス分割されると、
役割りの不明瞭なクラスが量産されて大変な事になりそう
0449デフォルトの名無しさん2011/10/12(水) 19:07:19.93
クラスは分割しないけどメソッドは分割することある。
privateなメソッドが増えていく
0450デフォルトの名無しさん2011/10/12(水) 19:17:27.45
csファイルが長くなりすぎて、何処に何があるのか探すのが大変なので、
機能別にまとめてpartial classをいくつか作ることが多い。
1ファイル500行くらいが限界?みんなどう?
0451デフォルトの名無しさん2011/10/12(水) 19:21:56.92
>>450
そんなもんで大体収まるから、
収まらないのも例外として認めてるかな
0452デフォルトの名無しさん2011/10/12(水) 19:53:25.95
>>450
メソッドは全部畳んでおく。
あとエディタじゃなくて一覧から探す。
0453デフォルトの名無しさん2011/10/12(水) 19:54:07.14
regionだっけ?
あれも使えばいい
0454デフォルトの名無しさん2011/10/12(水) 20:00:46.27
どうせクラスビュー使うし
0455デフォルトの名無しさん2011/10/12(水) 20:05:36.65
そういう便利技、まだ知らないんだよな。
VS2010EEかなり力技で作ってるからwww
誰か教えてよ。
0456デフォルトの名無しさん2011/10/12(水) 20:17:55.81
クラスビューって無料版についてない機能だろ
0457デフォルトの名無しさん2011/10/12(水) 20:55:27.71
>>456
あんたの目は節穴ですかw
0458デフォルトの名無しさん2011/10/12(水) 21:00:18.98
クラスビューすらなかったら他のソフト使うわw
0459デフォルトの名無しさん2011/10/12(水) 21:11:48.89
C#はエディタの上のリスト使うことのほうが多いかなあ
VC++ではクラスビュー使いまくるんだけど
0460デフォルトの名無しさん2011/10/12(水) 21:14:37.16
クラスビューはアクティブなファイルに同期する機能があればもう少し使いやすいと思うんだが、
なぜかないのが謎。
04614372011/10/12(水) 21:26:21.28
>>438
thxです
0462デフォルトの名無しさん2011/10/13(木) 01:35:05.63
Form1を継承したクラスで、Form1のbuttonやpictureboxを変更することは出来ますか?
変更しても、反映されない
0463デフォルトの名無しさん2011/10/13(木) 01:36:44.11
意味がわかりません
0464デフォルトの名無しさん2011/10/13(木) 01:41:22.70
コード見ないと分からん
0465デフォルトの名無しさん2011/10/13(木) 01:52:03.83
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

static class Program
{
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());

Draw draw = new Draw();
draw.change();
}
}

class Draw:Form1
{
public void change()
{
button1.Enabled = false;
}
}

実行すると、button1はfalseになるはずなのですが、実際にはtrueです。
0466デフォルトの名無しさん2011/10/13(木) 01:54:43.02
アプリが動いてる間は
Application.Run(new Form1());
のところでずっと処理してるんじゃないの?
0467デフォルトの名無しさん2011/10/13(木) 01:56:43.53
初心者の割に変なコードに手を出したもんだな
0468デフォルトの名無しさん2011/10/13(木) 01:59:04.11
pictureboxを継承したクラスで、管理したかったのです。
Form1上でやれば済む話なのですが
0469デフォルトの名無しさん2011/10/13(木) 01:59:33.63
Form1≠Drawってのも説明しなければならんのだろうけど面倒だな。
0470デフォルトの名無しさん2011/10/13(木) 01:59:58.00
>>443
.netはほとんどが参照渡しだから
メソッドやクラスを作りまくってもいけるんだけど
VBとか昔のに慣れているから、おれもついそういう感じにしちゃう
0471デフォルトの名無しさん2011/10/13(木) 02:00:26.91
といかどういうものを作ろうとして何でそんなロジックにいたったのかがわからん
0472デフォルトの名無しさん2011/10/13(木) 02:01:58.49
とりあえずそこに書いてもどうにもならないから
Form1の中に書くように
0473デフォルトの名無しさん2011/10/13(木) 02:04:27.52
private void Form1_Load(object sender, EventArgs e)
{
Draw draw = new Draw();
draw.change();
}
こうですか?できません
0474デフォルトの名無しさん2011/10/13(木) 02:06:14.50
やっぱり何か勘違いしてるねw
0475デフォルトの名無しさん2011/10/13(木) 02:07:56.81
Form1の中にbutton1あるんだろ?

private void Form1_Load(object sender, EventArgs e)
{
button1.Enabled = false;
}

あとその場合の尋ね方は
「こうですか?わかりません><」
が正しい
0476デフォルトの名無しさん2011/10/13(木) 02:09:45.97
buttonをform1を継承したクラスで、管理したいのです。
無理なようなので、諦めます
0477デフォルトの名無しさん2011/10/13(木) 02:12:09.62
まぁ好きなようにするといいよ
飽きるだろうし
0478デフォルトの名無しさん2011/10/13(木) 02:13:32.38
それは実装のレベルの話で本当はどういうことをやろうとして
そういう実装をしようと思ったのかとか説明できない時点であれなんだな・・・


Application.Run(new Form1());

Draw draw = new Draw();
draw.change();

これを

Draw draw = new Draw();
Application.Run(draw);

draw.change();

ってやればいいよ
でもそれで本当に正しいかどうかは何をやりたいのかという
本筋が説明されてないのでわからんけどw
0479デフォルトの名無しさん2011/10/13(木) 02:15:59.07
見やすいようにボタンのインスタンスだけ集めたクラスを作りたかったとか
0480デフォルトの名無しさん2011/10/13(木) 02:16:42.51
Fromはデータの受け渡し処理だけ書くようにしている
ListViewで項目が削除されたイベントが起きたら
データを管理しているクラスにイベント内容を送り
それを元にデータ管理クラスが項目を削除して
Formに削除実行したとイベントを発行する
それを元にListViewの項目を削除する

物凄く遠回りな感じだけど、Formでデータ管理も削除判定も
全部やってた頃より、見た目がすっきりした気がする
0481デフォルトの名無しさん2011/10/13(木) 02:18:29.70
>>479
そういう最終的な仕様を想定した中でこの部分はこうしたいっていうのは
あるのはわかるがそのなんで>>465になったのかがわからないと
対処療法的な回答しかできないだよな

本当はそんなことしなくてもいいことなのかもしれないのに

でも過程を答えてくれない以上は対処的は話しかできない

しかも教える側としても気持ちの悪い対処方w
0482デフォルトの名無しさん2011/10/13(木) 02:19:13.48
完全にV-コードビハインド-VM(M)ですね

ハンドメイドとは恐れ入る
0483デフォルトの名無しさん2011/10/13(木) 02:21:46.47
>>465
コントロールを直接いじるクラスを別に作りたいなら
継承じゃなくて、Form1のインスタンスを管理するクラスに丸ごと渡すしかないんじゃないかな
継承してもそれはform1とは別のボタンだよ

こういうことじゃなくて?
0484デフォルトの名無しさん2011/10/13(木) 02:23:08.84
これ以上は周りがあれこれ説明してもムダでしょ
仕様の説明を聞くことで本人の理解度もわかるかなあと思ったけどそれすら
しないってことは・・・・
0485デフォルトの名無しさん2011/10/13(木) 02:29:19.42
>>482
ハンドメイドじゃないやり方となると
やっぱりWPFになるのかな?
0486デフォルトの名無しさん2011/10/13(木) 02:30:18.52
DataGridViewについてなんですが、ユーザーに入力させその値を配列として取り出したいんですが
for文使ってDataGridView.Rows[i].Cells[i].Valueでループさせて取り出していくしかないんでしょうか?
何かいい方法があったら教えて下さい
0487デフォルトの名無しさん2011/10/13(木) 02:31:54.03
つーかFormなんて扱いにくい物で管理しなくても
Panelとかのコンテナで管理させてもいいのにね
でもやりたいことの大枠を教えてくれないことにはアドバイスのしようもない
0488デフォルトの名無しさん2011/10/13(木) 02:33:08.69
WinFormsならイベント使うよりフォームがインターフェース実装して
そのインターフェースを通して操作する方が楽だよ
MVPてやつ
0489デフォルトの名無しさん2011/10/13(木) 02:38:49.44
>>486
配列っていうかDataGridView自体[row,column]のインデクサ持ってなかったか
0490デフォルトの名無しさん2011/10/13(木) 02:43:55.91
BackgroundWorkerを使って、高解像度画像を読み込むとき時間のかかる処理を非同期化したんだけど、
BitmapFrameを生成中に(bf = BitmapFrame.Create...の行)他の画像を読み込ませたくて、中断したいときどうすればいい?
CancellationPendingプロパティで判断したくともできないし。
あと、高解像度画像を扱う場合の定石みたいなのある?MemoryStream使うと良いとか。

ds = Dispatcher.CurrentDispatcher;
bw.DoWork += (s, e) =>
{
  BitmapFrame bf;
  using (var st = File.OpenRead(((string[])e.Argument)[0]))
  {
    bf = BitmapFrame.Create(st, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
    bf.Freeze();
  }
  ds.BeginInvoke(new Action<BitmapSource>((bs) => ImageData = bs), bf);
};
0491デフォルトの名無しさん2011/10/13(木) 02:45:56.50
>>488
今ある程度アプリが出来て
よりわかりやすいようにコードを修正している段階なんだけど
インターフェースってものを今まで使ったことが無かった
この機会に調べてみます、MVPについても
ありがとう
0492デフォルトの名無しさん2011/10/13(木) 03:02:10.45
Streamのラッパー用意して中で失敗させたれ
0493デフォルトの名無しさん2011/10/13(木) 04:26:30.53
ツール>拡張機能マネージャーって便利だなぁ
入れてない人のためにオススメ書いとく

タブの表示状態をいろいろ変更できる
productivity power tools
プロジェクトが保存されているフォルダを開くことができる
powercomands
インデントのラインをひいてくれる
Indent Guides
左にコード全体を簡略化して表示
VS10x Code Map v2
0494デフォルトの名無しさん2011/10/13(木) 09:58:59.00
中断可能ストリームを>>492の方法で作った

コンストラクタでコールバック食わせて
Readメソッドをオーバーライドして
バッファサイズ×100読んだら1回くらいの割合で問い合わせる感じ
0495デフォルトの名無しさん2011/10/13(木) 17:18:39.85
WinFormでのデータとListViewの同期はどうすればできますか
データがソートされるとListViewもソートされるようにしたいんですが
0496デフォルトの名無しさん2011/10/13(木) 17:32:05.17
そもそもListViewがバインディングサポートしてない
相手がDataViewならListChangedイベントで再構成するぐらい?
04974862011/10/13(木) 18:50:27.65
>>489
DataGridViewってインデクサ持ってたんですね。
でもやっぱりfor文でループさせて1個ずつ取り出すしかないんですね。ありがとうございました
0498デフォルトの名無しさん2011/10/13(木) 19:30:45.79
>>495
データのポインタをListViewItemのTagにセットしておけば・・・
0499デフォルトの名無しさん2011/10/13(木) 20:51:38.66
newとoverrideの違いがよくわかりません
どうやって使い分ければいいんでしょうか?
0500デフォルトの名無しさん2011/10/13(木) 20:54:41.42
>>499
new -> メモリを確保して機能を使えるようにする。
override -> すでに定義されているメソッドを上書きして機能を変更する。でも元機能がoverride可能でないと不可能。

なぜそこをまとめて質問するのかちょっとわからん。
0501デフォルトの名無しさん2011/10/13(木) 20:56:16.63
>>500
おいおいw
C#のnewには、他の言語でいうシャドウイングの機能もある。
0502デフォルトの名無しさん2011/10/13(木) 20:56:43.69
newはオーバーロード(オーバーライドではない)。
ちゃんとした開発でのバージョン管理のための機能なのでわかんないなら使わなくていい。
0503デフォルトの名無しさん2011/10/13(木) 21:02:20.37
>>500
>>502
初心者が初心者にデタラメ教えてどうすんの
05045002011/10/13(木) 21:04:32.69
すまん。不勉強だった。シャドウイングって暗黙的っていうか副作用的な意味の再定義なのかな?

>>502の言葉を信じるなら、すでに使われてる名前の別の機能のメソッド定義って感じか。
この別定義は継承元のオブジェクトの機能とは全く関係がない。

ってことだよね??
0505デフォルトの名無しさん2011/10/13(木) 21:05:53.71
シャドウイングは、派生クラスを作った後で派生クラスで定義したのと同名のメソッドが
基底クラスに追加されたときに、前からその派生クラスを使ってたコードが誤動作しないようにするのが目的
最初から使うもんじゃない
そういうのをC#の言語仕様の中ではバージョン管理と呼ぶんだよ
05065002011/10/13(木) 21:12:16.19
>>505
すでに継承済みの実装があるときに、根っこを変えた時の副作用を抑制する感じか。
でも、なるべくそういう機能は使わないで基底は最初からスーパーセットにしておくのが理想だよな。

なるほど。一個賢くなったよ!=D
05075052011/10/13(木) 21:14:01.39
誤動作しないように、ではなくて修正が必要にならないようにするのが目的と言うべきか
>>505の状況になる→派生クラスをコンパイルしたときに警告が出る→問題ないことを確認したらnewで警告抑制
という流れになる
0508デフォルトの名無しさん2011/10/13(木) 21:20:32.14
自前のToString()を作るとき、元のToString()に無関係につくるなら、
overrideではなくnewすべきなのかな?
0509デフォルトの名無しさん2011/10/13(木) 21:23:02.15
名前を変えるのが親切かと
0510デフォルトの名無しさん2011/10/13(木) 21:27:14.33
全く新しくメソッドを定義するときにはnewは基本禁止でいいよ
インターフェイスを実装する場合に必要になることはあるけど
0511デフォルトの名無しさん2011/10/13(木) 21:37:17.14
>>505が胡散臭かったんで言語仕様を確認したが、
書いてあるのは「new修飾子を付けずに同名のメソッドを定義してもエラーとならない理由」だな
0512デフォルトの名無しさん2011/10/13(木) 21:43:01.28
http://msdn.microsoft.com/ja-jp/library/6fawty39%28v=VS.100%29.aspx
http://msdn.microsoft.com/ja-jp/library/ms173153.aspx
意図がとてもよくわかる
05135002011/10/13(木) 22:11:06.17
>>512
その文章を読んでバージョン管理という命名の意図が読めたきがする。
継承の世代管理と互換性の切り分けがうまく仕組みに入ってるんだな。

まだモヤっとしてるから、実験してみるよ。うむ〜。
0514デフォルトの名無しさん2011/10/13(木) 22:16:51.53
あんまり難しく考えなくても
「newだとポリモーフィズムできないよ」
でいいんじゃないの?
05155002011/10/14(金) 00:04:50.35
次のようなコードをかきながら実験して納得した。が、変なキャラ付けしたからはじめてこのコードみたらわからん気がする。
http://ideone.com/1Exdn

しかし、納得しても説明するのが難しいな。
newはnewで宣言したとある継承世代以降の同名の実装を切り替える。基底には触れないし実装後の名前をしらないと基底から呼べない。
overrideは基底にあるvirtualを上書きするから、基底世代が構築したフレームワークを書き換えるまたは上書きする。
世代の概念があるからバージョン管理。かなぁ。。。

newは>>502が正解のような気がする。気がする・・・。

さて、そろそろ名無しに戻るよ。戻るよ!!ノシ
0516デフォルトの名無しさん2011/10/14(金) 00:24:04.70
継承の問題点を念頭に置いておかないとわかりにくいんじゃないかな。
Javaでは、派生クラスが存在する可能性のあるクラスに対して、既存のコードが絶対に誤動作しないように
パブリックメソッドを追加するということはできないの。
派生クラスに同名のメソッドがあったら勝手にオーバーライドされてしまって、派生クラス作成者が意図しない動作になるから。
C#ではそうならないようにするためにシャドウイングをデフォルトの動作にしたりoverrideを明示的に書かせたりしてるわけ。
0517デフォルトの名無しさん2011/10/14(金) 00:35:21.72
コーディングルールとかクラスとかメソッドの
命名ルールの観点で参考になるc#の
オープンソースなんかない?
0518デフォルトの名無しさん2011/10/14(金) 00:37:26.67
>>517
.NET Framework
0519デフォルトの名無しさん2011/10/14(金) 01:55:43.79
Freameworkのソースってどこで見れるの?
0520デフォルトの名無しさん2011/10/14(金) 02:05:02.66
Express版より上位のVSで見るか、NetMassDownloader辺りのツールを使ってDLする。
0521デフォルトの名無しさん2011/10/14(金) 02:26:44.52
>>518-519
public な部分に関しては、ソースなくても見れるじゃん。
private な部分はあんまりとやかく言わないってのは MS ガイドライン。
0522デフォルトの名無しさん2011/10/14(金) 04:30:04.90
定めると不満が出るからね
定めなくても枠に嵌りたい人から不満が出るけど
0523デフォルトの名無しさん2011/10/14(金) 04:32:54.82
なんかアナーキーな人みたいだ

(MSみたいな所が)規約を定めると
です
集団に規約が存在することは大事だと思いますよ
0524デフォルトの名無しさん2011/10/14(金) 04:36:59.33
>>496
>>498
大変そうなのでDataGridViewでやったら簡単にできました
ありがとうございます
0525デフォルトの名無しさん2011/10/14(金) 06:41:45.83
gotoを使ったら周りから文句を言われるかな?
0526デフォルトの名無しさん2011/10/14(金) 08:31:05.17
周りの人によるでしょう
0527デフォルトの名無しさん2011/10/14(金) 08:36:40.55
氏ねや
0528デフォルトの名無しさん2011/10/14(金) 09:52:12.24
実装したいものにもよる
状態遷移図とか、gotoの方が書きやすい場合もある
0529デフォルトの名無しさん2011/10/14(金) 10:30:30.90
http://ideone.com/X4RvM

DataGridViewにバインドしたList<自作クラス>をソートしようと
いろいろ調べた結果ラムダ式が簡潔みたいなのでやってみたんですが
こんな感じになっちゃいました、項目が増えると同じようなコードが・・・
普通はどういうことをするんでしょうか?

自作クラスをIComaparableにしたり、IComparerインターフェースを作る方法が思うのですが。
データの量は10列の一万行ぐらいです
0530デフォルトの名無しさん2011/10/14(金) 10:39:53.26
普通は表示に合わせて元のデータをソートしたりはしない
違ってていい
0531デフォルトの名無しさん2011/10/14(金) 11:29:06.47
>>523
その場合、MS のソースコードを参照するってあんまり役に立たないのよ。
private フィールドはおおむね _hoge なんだけど、規約違反も多いというか。

MS は最大で10人程度のチームが最小単位で、その中で自由にやっていい(テストさえ通れば)。
その外側でレビューされるのは public メンバーだけなんじゃないかな。
0532デフォルトの名無しさん2011/10/14(金) 12:54:05.90
panelのautoscrollをtrueにしてマウスホイールでスクロールするように
したんですが、パネルがフォーカスを得られないのでいまいちです。
マウスがパネルの上にいるときにマウスホイールが効くように
するにはどうしたらいいでしょうか?
0533デフォルトの名無しさん2011/10/14(金) 13:03:06.17
コンテナをPanelからLabelに変える
05345292011/10/14(金) 13:03:10.21
>>530
表示に合わせてというのがどういう意味かよくわからないんですが
バインドしないとなると、データの受け渡しと、DataGridViewに追加削除する
作業などを自前でやらなくてはいけなくなると思うんだすが
それにDGVでソートされたアイテムと同じものをDBから削除する場合
idxが変わってしまっていてどれを削除すればいいか、項目と一致するものを
探さないといけなくなると思うんですが
0535デフォルトの名無しさん2011/10/14(金) 13:05:58.17
>>534
インデックスでやらないでデータの中でキーに使えそうな物で検索すればよくね?
0536デフォルトの名無しさん2011/10/14(金) 13:47:35.91
>>532
面倒くさいから親フォームでWM_MOUSEWHEELが来たら
メッセージをリダイレクトしたら

05375292011/10/14(金) 15:44:22.88
>>535
なぜバンドじゃなだめなんですか?
0538デフォルトの名無しさん2011/10/14(金) 15:49:47.87
なぜっていうか追加したり削除したりするってことはすでにインデックスなんてあてに
ならないって言ってるような物だろw
05395292011/10/14(金) 16:07:14.34
>>538
バインドじゃだめな理由になってないですけど
05405292011/10/14(金) 16:09:46.81
ソートについて聞いているのに何で誰もそこから逸れた事ばっかりいうんだ?
ソートについて教えてくれよ
05415292011/10/14(金) 16:11:31.03
ちょっとここは、ラムダ式もバインドも理解してない人しかいなさそうですね
529の質問は取り下げます
0542デフォルトの名無しさん2011/10/14(金) 17:46:39.95
久々に池沼を見た気がする
仕事の合間に和ませてもらったよ
0543デフォルトの名無しさん2011/10/14(金) 18:52:15.08
ロジックとコントロールの分離とかそういったオブジェクト指向を勉強したい

javascriptならjQuery読んどけ!ってなるけどC#にコールドリーディングの定番はないかな

ないならTwintailを読む
作りたいものがTwintailに近いからなんだけど
0544デフォルトの名無しさん2011/10/14(金) 18:54:52.77
読めばいいじゃん・・・
0545デフォルトの名無しさん2011/10/14(金) 18:56:25.59
前に読んだけどあれはお世辞にも綺麗でないな
他に薦めるものもないから止めないけどね
0546デフォルトの名無しさん2011/10/14(金) 19:53:16.00
綺麗じゃないのかー
今気づいたけど設計の勉強と割りきってしまえばJavaでもいいんだよな。。。
0547デフォルトの名無しさん2011/10/14(金) 20:24:26.93
Javaは、ただ、サーバー側のコードばっかりで。
いわゆる MVC 的なものって、HTML アプリを想定するか、クライアントアプリを想定するかで全然パターン違うんで、あんまり参考にならないかも。
0548デフォルトの名無しさん2011/10/14(金) 20:25:39.83
.NET で何か参考になるコードっていうと、
アプリケーションアーキテクチャガイドで出してるやつか、
Code Recipe で MS が公式提供してるサンプルかかなぁ。
0549デフォルトの名無しさん2011/10/14(金) 21:26:12.23
アプリケーションアーキテクチャガイドよさそう!ありがとう
05504902011/10/15(土) 03:10:07.35
>>492-494
ありがとう。
しかし実際に試してみたけどストリームの読み込み自体は時間かからず、
ネックになるのはデコードとImage.Sourceへの適用だった。
デコードはBackgroundWorker上で可能だけど、Image.Sourceへの適用は
どうしてもUIスレッド上で行わなければならず、UIのフリーズが避けられない状況。
中断自体も困難ぽいのでまたほかの方法模索してみる。
0551デフォルトの名無しさん2011/10/15(土) 04:27:38.83
public int Number { get; set; }
このようなC#の自動プロパティってどんな時に使うんですか?クラス継承した時とかですか?
0552デフォルトの名無しさん2011/10/15(土) 06:20:50.23
インターフェイスっていいね
Publicだとどのクラスからでもアクセスできる可能性があるけど
インターフェースを利用することで特定のクラスに向けてトンネルを作るような感じ
必要ないPublicなメソッドやプロパティを見えなく出来るのはわかりやすい
0553デフォルトの名無しさん2011/10/15(土) 07:07:30.72
>>522
あのー、そのアクセスレベルについて便乗質問なんですが、
時々「公開するつもり無いからpublicは使いたくない。てことでintarnal使ってる」
とか、「公開」にこだわってる人見かけますが、どういうことなんでしょ?
privateで無理なアクセスならpublicでいいじゃん?と初心者なオレは思ってしまうんだけど、
publicにすることでどんなデメリットがあるんですか?
初心者にも分かるよう、具体的に教えていただけるとうれしいです。
0554デフォルトの名無しさん2011/10/15(土) 07:43:36.58
publicだらけだと、別のクラスから触っちゃいけないメソッドを使ったりして
データを書き換えられちゃったら困る場合がある
だからインターフェース使うなりinternalにするなりして見えなくしてしまう
全体像を覚えているうちはいいけど、規模が大きくなっていくと忘れてしまう
忘れててもいいように、もしくは複数で開発してもいいように作ってる
0555デフォルトの名無しさん2011/10/15(土) 07:51:10.59
>>553
理由の一つは、非公開の変数は内部でどのように使おうが自由だって事もある
拘束される部分が出来るだけ少ない方が作るのもメンテナンスも簡単になるでしょ
0556デフォルトの名無しさん2011/10/15(土) 08:26:35.90
>>554-555
ありがとうございます。
外部アプリからいじられちゃうんですか?
それって、namespace名やclass名、変数名をオリナリティなものにしたら、
ほとんど回避できませんか?
それでも可能性はゼロじゃないということですか?
それとも意図的に解析して進入してくることに対するセキュリティってことですか?
いずれにしても、すごーく確率の小さいことを言ってるわけですね?
でも大きなプロジェクトになるとそういう配慮が必要なんだろうなあ。
0557デフォルトの名無しさん2011/10/15(土) 08:30:52.23
オリナリティ →オリジナリティ
進入 →侵入
0558デフォルトの名無しさん2011/10/15(土) 08:41:59.05
publicだろうがprivateだろうが外から調べようと思えば簡単にわかる。
名前が独自のものだとか、そういうものは関係ない。
わざとわかりづらい名前に変える難読化というのもあるが、それは別のお話。

誤って操作しなくていいものを容易に操作できないようにするというのは、
例えば非常用ベルを誤って操作しないようにガラスの中に入れておくとかそういうイメージ。
0559デフォルトの名無しさん2011/10/15(土) 08:49:24.09
独自な名前付けても関係無いのですか・・・すみませんでした。
複数の人間が一緒に作ってるときは効果的かなと思ったのですが。
0560デフォルトの名無しさん2011/10/15(土) 08:57:58.06
あ、独自の名前付けても関係無いというのは、逆コンパイルに対して
「そんなことしても無駄だ」ということか。
0561デフォルトの名無しさん2011/10/15(土) 09:05:01.33
>>559
一人でやっていても作りこんでいくと
どのクラスが何をしているかを忘れるでしょ
そんなことはないって思うのは1000行未満の小規模だから

例えばform1にファイルへのアクセス、Viewの応答、データの処理など
1つのクラスのコード書いているときにあらゆる可能性を意識しながら
書くなんて疲れると思わない?
ファイルに安全にアクセスできるクラス、データに安全にアクセスできるクラスを作るなどして
クラスが増えてくると、ありがたみがわかってくる
0562デフォルトの名無しさん2011/10/15(土) 09:12:47.33
>クラスが増えてくると、ありがたみがわかってくる

なるほどー。まだそういうレベルじゃないから実感できないんだな。
大きな規模になったときの保険みたいなもんですかね?
ありがとうございました。
0563デフォルトの名無しさん2011/10/15(土) 09:22:47.55
とりあえずすべてpublicで作っていくといいよ
そしたら確実にどの変数は弄ったらだめなのかなど
わからなくなるから
そういうことに実際に出会わないといくら説明しても納得いかないもんなんだよ
0564デフォルトの名無しさん2011/10/15(土) 09:32:06.63

public int hyakkai=100;
public int tasizan()
{
for(int i=0;i<hyakkai;i++)
{
count++;
}
return count;
}

上のようなクラスAがあったとして
別のクラスCでやっぱり1000回ぐらいがいいと思って
面倒だから同じメソッドを利用したいと思い、hyakaiに1000を代入して利用する
その後、別のクラスBが100回の足し算をさせるために同じクラスA利用する
クラスBは戻り値が100以外はエラーを吐くようになっている
0565デフォルトの名無しさん2011/10/15(土) 09:33:26.02
具体的には
namespace Foo{
[DataContract]
 class Hoge{ (略) }
}
↑を DataContractSerializer でファイルに保存して、
↓(ネームスペースだけ変わったデータ構造はかわらず)に読み出す方法ってありますか?

namespace Bar{
[DataContract]
 class Hoge{ (略) }
}

DataContractResolver を実装すればいけるかと思ったのですが、
なぜか、DataContractResolver は呼び出されませんでした。
0566デフォルトの名無しさん2011/10/15(土) 09:38:05.30
この場合、クラスAのhyakkaiの変数はいじってはだめだということを忘れていたために起こった
分かりやすくエラーがでるならいいけど、エラーが出ない場合気づかなかったりする
ここは絶対触られたくないところならprivateにしたり
一部のクラスだけが使えるようにしたいならinternalや明示的にインターフェイスにしたり
事前にしておけば、変な事をしなくて済むし、エラーも出てくれる
実行後よりコードを書いているときにエラーが出る方がいいんだよ
0567デフォルトの名無しさん2011/10/15(土) 09:46:38.04
ひとつのクラス(もしくはひとつのファイル)で使うusingの数って
目安みたいなのある? usingだけで10行超えたら多いだろ、とか。
0568デフォルトの名無しさん2011/10/15(土) 09:54:55.88
privateにする意味は他から弄られたくない、が主体だろうけど
インテリセンスで候補としてあがらなくなる点も大きいと思う。
インテリセンス便利すぎる。
0569デフォルトの名無しさん2011/10/15(土) 09:55:26.08
3行以内に収めないとスパゲッテー
0570デフォルトの名無しさん2011/10/15(土) 10:08:42.96
>>551
ほぼ常時それ使う。

あとから自動実装じゃないプロパティに書き換えても、
利用側の再コンパイル必要ないから。
0571デフォルトの名無しさん2011/10/15(土) 10:09:16.52
>>566
privateのありがたみは非常に良く分かるんだけど、
それより上、intarnal、protect、publicの使い分けとかがよく分からない。
0572デフォルトの名無しさん2011/10/15(土) 10:13:58.93
動けばいいの
0573デフォルトの名無しさん2011/10/15(土) 10:17:09.63
>それより上、intarnal、protect、publicの使い分けとかがよく分からない。

だから、private以外は全部publicになっちゃうw
0574デフォルトの名無しさん2011/10/15(土) 10:25:23.17
>>569
mjd
いま平均7〜8個+別名using2〜3個くらいあるわ 見直そう…
0575デフォルトの名無しさん2011/10/15(土) 10:27:01.91
usingなんて使わずフルパスで書けばおk
0576デフォルトの名無しさん2011/10/15(土) 10:28:11.94
>>571
internal はわかりやすいと思うけど。
ライブラリを作る側と使う側分けたときに使えるわけで。

protected はそれこそ継承時限定機能で、継承自体そんなめったに使うものじゃないんで。
0577デフォルトの名無しさん2011/10/15(土) 10:38:26.16
勉強に集中したくてカウントダウンするソフトが作りたいんですけど
ヒントをください
0578デフォルトの名無しさん2011/10/15(土) 10:50:45.95
ヒント: カウント減らして表示
0579デフォルトの名無しさん2011/10/15(土) 11:00:33.39
>>565
[DataContract(Namespace="http://schemas.datacontract.org/2004/07/Foo")] class Hoge
厳密に同じじゃないかもしれないのでNamespaceのところは自分でXML見てxmlnsを確認してくれ
XML名前空間は最初から明示的に付けとくようにしたほうがいいと思う
0580デフォルトの名無しさん2011/10/15(土) 19:54:17.20
Itemsってプロパティですよね?
なのにItems.AddやItems.Removeができるのはなじぇ?
自分でこういうもの作ろうとするにはどうすればいいの?
0581デフォルトの名無しさん2011/10/15(土) 19:58:31.60
プロパティ化したものにも大元の型があるのでその型を参照してメソッドなどを引っ張ってくる。
0582デフォルトの名無しさん2011/10/15(土) 19:59:07.90
obj.GetItems().Add
もしくは
var items = obj.Items;
items.Add();
こう書けばわかるか?
0583デフォルトの名無しさん2011/10/15(土) 19:59:48.36
ちょいと端的すぎたか。
まー、プロパティ書くときにIntとかListとかの型を指定するのでそれを参照してる。
0584デフォルトの名無しさん2011/10/15(土) 20:01:08.12
あらら、>>581 == >>583
0585デフォルトの名無しさん2011/10/15(土) 20:08:11.72
Setはできないプロパティで
List<T>を返しているようなものと思っていたけど
Getメソッドなんですね
そしてそのGetメソッドはPrivateで公開はしていないという感じですか?
0586デフォルトの名無しさん2011/10/15(土) 20:13:09.74
二重起動を禁止するのはできたんですけど、二重起動を禁止したあと既に起動している同じアプリケーションをアクティブ化する方法ってないですか?
0587デフォルトの名無しさん2011/10/15(土) 20:14:48.97
プロパティでgetをprivateにする意味はあんまりないと思うけど、
getが参照を返すのでそういうことができるんだわな。
0588デフォルトの名無しさん2011/10/15(土) 20:15:21.47
同じようなのを実装するとなると

public List<Item> Items
{
get{return getItems();}
private set{ _items=value;}
}

こんな感じですか?

Setできないのか型チェックに問題があるからかな?
コレクションなどにはAddメソッド通して設定するって仕様があるのかな
自分ではよく itemsA=itemsB的なことをクラス間でやっちゃったりするんだけど
0589デフォルトの名無しさん2011/10/15(土) 20:16:06.57
>>587 -> >>585
05905862011/10/15(土) 20:25:11.78
すいません今調べたらそれらしいものが出てきたので586は取り下げます
0591デフォルトの名無しさん2011/10/15(土) 20:25:29.13
>>588
自分だったらこういう感じで書くかな。
http://ideone.com/y3XpI
0592デフォルトの名無しさん2011/10/15(土) 20:26:32.31
>>590
おっと、ま〜、頑張ってくれ。
0593デフォルトの名無しさん2011/10/15(土) 20:33:15.53
>>588
private List<T> _Items;
public List<T> Items { get{ return _Items ?? (_Items = new List<T>()); } }
0594デフォルトの名無しさん2011/10/15(土) 20:36:26.81
private List<T> _Items = new List<T>();でいいよ
List<T>は最初に要素を追加したときに内部の配列が確保されるからnewはほとんどコストない
0595デフォルトの名無しさん2011/10/15(土) 20:46:34.24
>>591
これ見てるとAddで追加させるためだけに
プロパティを作ったような印象がする
ListBox.Add()だと変なのかな
0596デフォルトの名無しさん2011/10/15(土) 20:53:47.78
コレクション返せばItems[i]とかforeachとかできるでしょ
直交性が良くなる
List<int>返すのはあんまり良くないからIList<int>にするべきだけど
0597デフォルトの名無しさん2011/10/15(土) 20:53:53.18
いちいち、自前でADDやRemove作るの面倒だから
ライブラリにあるList<T>を公開してこれを使わせようって感じか
今までAddを自前で作ってたから参考になった
でも、型が違うデータをクラス間でやりとりする場合
コンバーター作らないといけないんだよね
0598デフォルトの名無しさん2011/10/15(土) 20:59:37.68
>>596
なるほどーインターフェイスを明示的にすることで
使用制限するのかー勉強になるなー
0599デフォルトの名無しさん2011/10/15(土) 22:17:50.29
Control.Invalidateメソッドはスレッドセーフですか?
それともちゃんとControl.Invokeを通して呼ばなければなりませんか?
0600デフォルトの名無しさん2011/10/15(土) 22:20:16.29
基本的に、スレッドセーフなメソッドは明示的にそう書いてある
0601デフォルトの名無しさん2011/10/15(土) 22:24:33.18
>>600
ありがとうございます
ということはこれはスレッドセーフではないということですね?
あるSDKサンプルに別スレッドからInvalidateしている
サンプルがあったので疑問に思いまして
0602デフォルトの名無しさん2011/10/15(土) 22:55:32.66
スレッドセーフであることとコントロールに触れるか否かは同義じゃないし
SendMessageでやってる奴は呼べるよ
0603デフォルトの名無しさん2011/10/15(土) 23:01:52.92
>>602
>SendMessageでやってる奴は呼べるよ
SendMessageは分かりますがこれはどういう意味ですか?
0604デフォルトの名無しさん2011/10/15(土) 23:03:31.29
VisualC#でビルド時に自分のコンパイラ環境を書き込ませないようにするにはどうすればいいの?
0605デフォルトの名無しさん2011/10/15(土) 23:15:48.22
>>603
メッセージキューを使った処理なら安全って意味じゃない?
0606デフォルトの名無しさん2011/10/15(土) 23:17:09.70
>>603
SendMessageはAPIの方で勝手に同期してるからどこからでも呼べる
0607デフォルトの名無しさん2011/10/15(土) 23:29:56.97
>>606
ということは結局Invalidateはmsdnには明記されてはいないが、
スレッドセーフであるということですか?
SendMessageとInvalidate()が等価である保障はないですよね?
0608デフォルトの名無しさん2011/10/15(土) 23:34:18.41
その点においてスレッドセーフにこだわっても無意味だといっているんだろう

スレッドセーフのファンなの?
0609デフォルトの名無しさん2011/10/15(土) 23:40:54.88
>>608
スレッドに痛い思い出もあるので注意深くなっているだけです
ひとまずスレッドセーフであるということで使っていきます。
ありがとうございました
0610デフォルトの名無しさん2011/10/15(土) 23:43:18.36
スレッドセーフではないだろ
0611デフォルトの名無しさん2011/10/15(土) 23:56:16.95
>>610
ならやはり他スレッドからはInvokeを通してInvalidateすべきですか?
0612デフォルトの名無しさん2011/10/15(土) 23:59:19.93
うん
頭悪そうだし、それが賢明だと思うよ
0613デフォルトの名無しさん2011/10/16(日) 00:03:37.17
>>612
自分は頭が悪くてかまわないので、
頭のそこそこいい、自分以外の人のためにも、
私が勘違いしているところを説明してもらえますか?
0614デフォルトの名無しさん2011/10/16(日) 00:06:28.72
Invalidateの実装調べるかMSに聞くしかないんじゃね
0615デフォルトの名無しさん2011/10/16(日) 00:25:49.75
>>613
.NETのスレッドセーフとWin32のコントロールが要求している同一スレッドの制限を混同しているところ
0616デフォルトの名無しさん2011/10/16(日) 00:26:11.96
.netのバージョンによってtimerの精度に違いはありますか?
0617デフォルトの名無しさん2011/10/16(日) 00:36:36.71
FormsのタイマはAPIで実装されてるからそっちが変更されなければない

System.Timersの方は「より精度がいい」らしいけど、分解能が書かれていないので保証できない
0618デフォルトの名無しさん2011/10/16(日) 00:39:10.89
Stopwatがいいよ
0619デフォルトの名無しさん2011/10/16(日) 00:41:51.60
Stopwatchの中身はパフォーマンスカウンタだろう
0620デフォルトの名無しさん2011/10/16(日) 00:50:23.86
.NETのバージョンではなく、タイマーの種類によって精度が違う
0621デフォルトの名無しさん2011/10/16(日) 04:45:26.73
>>591
あと気になるのが、リストを丸ごと渡したいんだけど
内容は変えられたくないから、setはできないようにしているわけだけど
.Addでできちゃうのがねぇ・・・
こういう場合はcloneでも作ってコピーして渡すのかな?
0622デフォルトの名無しさん2011/10/16(日) 06:21:27.33
その発想が怖いわ。
0623デフォルトの名無しさん2011/10/16(日) 06:45:31.88
ReadOnlyCollectionを使います
0624デフォルトの名無しさん2011/10/16(日) 10:03:06.01
一番精度が悪いのと一番精度がいいのは何でしょうか?
あとDOBONを見ると直接APIを利用する方法も紹介されてますが.NETのライブラリから利用するより直接APIを利用するほうが安定しているものでしょうか?
0625デフォルトの名無しさん2011/10/16(日) 12:47:50.28
MSDNて読みづらいなと思って英語でみたら
すげーわかりやすい
訳さなくてもいい単語まで無理やり訳しているから
あんな分けのわからない説明になっているんだな
0626デフォルトの名無しさん2011/10/16(日) 13:37:58.31
MSDNの翻訳は利用者が採点できるようにすればいいのに
点数が低いページは修正して、翻訳者はクビで
0627デフォルトの名無しさん2011/10/16(日) 13:45:28.24
機械翻訳じゃないの
0628デフォルトの名無しさん2011/10/16(日) 13:57:32.66
機械翻訳の記事なら何も言わんでも自動で原文が出てくるはず
0629デフォルトの名無しさん2011/10/16(日) 14:11:23.68
MSDN のページなら、自動翻訳の場合はそう書いてなかったっけ?
0630デフォルトの名無しさん2011/10/16(日) 14:14:39.99
日本語ってほんと難しいなって思うよ
英語だと一つの単語で表すのに
日本語だと複数の言葉に訳せるからな
constraintを制約と訳したり整合性と訳したり
ただでさえプログラムは直観的にイメージしにくいのにのに
統一した言い回しをしないで訳すから余計にわけがわからなくなる
0631デフォルトの名無しさん2011/10/16(日) 14:19:45.07
それは書く場合の話ね。
豊富な語彙の中から適切なものを選択する必要があるから。

読む場合は日本語の方が簡単。
文脈に依存する単語が少ないから
0632デフォルトの名無しさん2011/10/16(日) 14:22:19.84
確かにそれはあるな、日本語の方が的確に言葉で表現できる
でも、できる可能性があるのと理解できる、理解させられるは違うからな
やっぱり日本語は難しいよ
0633デフォルトの名無しさん2011/10/16(日) 14:22:20.65
児童翻訳
0634デフォルトの名無しさん2011/10/16(日) 14:32:27.66
例えばさこれ

テーブルに新しいデータ行を追加できます

初心者プログラマはテーブルって机のテーブル?
それとも何かの比喩?
データ行って何?データ行じゃない行はなんなの?
こういうのは別に機械語じゃなくても普通にあるじゃない

you can add new rows of data to the table.

原文だとこれ、めちゃくちゃわかりやすい
プログラムは英語で書かれているし説明が直観的に理解しやすい
できるだけ英語交じりで訳してほしいよな

DataTableのnew rowsにDataをAddできます

こんな感じ
0635デフォルトの名無しさん2011/10/16(日) 14:37:42.25
それは流石に知能が低過ぎだろw
0636デフォルトの名無しさん2011/10/16(日) 14:39:21.94
プログラミングでもなんでもそうだけど、専門分野における日本語は本当に混乱の素
"Class"は一般的に使われている意味とはかけ離れているのに、
わざわざ、"クラス"と訳すんだよなー

初心者からしたら、クラスって学校の?そういえば学校の喩えよくあるね、ちがうのかな?
みたいにさ、わかりやすく訳せば訳すほどプログラムから遠ざかって行く感じがするんだよ
0637デフォルトの名無しさん2011/10/16(日) 14:42:46.81
英語で読めばおk
0638デフォルトの名無しさん2011/10/16(日) 14:43:18.92
>>634
>DataTableのnew rowsにDataをAddできます
結局理解してないじゃん
0639デフォルトの名無しさん2011/10/16(日) 14:46:41.75
言いたいことわかるだろ?
専門用語は専門用語に準じて書いてほしいんだよ
一般的な用語に訳すなってこと
0640デフォルトの名無しさん2011/10/16(日) 14:55:17.74
日本語でもクラスを種類とか階級の意味で使う場面もあるじゃん?
文脈を読めない人は多分日本語でも英語でもダメじゃないかなー
0641デフォルトの名無しさん2011/10/16(日) 15:02:53.45
プログラミングにはある程度の英語力は必要だね
同僚に仕様書が英語で読めませんとか言われても困るし・・・
0642デフォルトの名無しさん2011/10/16(日) 15:06:11.79
>>640
> 日本語でもクラスを種類とか階級の意味で使う場面もあるじゃん?
だから訳すとどうとでも取れるって言ってるんじゃないか。自分で書いててわからないのか?
> 文脈を読めない人は多分日本語でも英語でもダメじゃないかなー
プログラムの説明の文脈を理解できるのはそれこそプログラム理解しているからだろw
日常会話が理解できないから英語が無理だって言うならまだわかるが
専門用語だらけで初心者からした文脈も糞もあるかよw
お前自信が俺が言っている文脈を理解できずに見当違いなこと言ってることに気づけよ
0643デフォルトの名無しさん2011/10/16(日) 15:09:19.21
そこらにいる奴に”クラス”って言って、階級や種類を連想する奴がどれだけいると思っているんだ?
そういう幼稚な屁理屈言っているようじゃ友達もいないんだろ
揚げ足取ってはネットでご満悦ですか?
0644デフォルトの名無しさん2011/10/16(日) 15:09:46.00
読者がアホの子設定ってこと?
0645デフォルトの名無しさん2011/10/16(日) 15:11:55.59
>DataTableのnew rowsにDataをAddできます

これで分かる気がしないんだけど何が言いたいの?
0646デフォルトの名無しさん2011/10/16(日) 15:12:44.87
こういう当たり前なことがわからないバカが
初心者向けのプログラムの解説サイト作ったりして
全く理解できないような説明ばかりするんだろうなw

初心者にもわかりやすく伝える能力って一種の才能だよなあれは
今ここにいる奴らですら俺が言っていることが理解できていない
もう初心なんてとっくに忘れちゃったおっさんばかりなのか?
0647デフォルトの名無しさん2011/10/16(日) 15:14:01.02
>>644
プログラミングの知識がないのとアホとは別ですが?
そういうこともわからないあなたみたいなのをアフォといいます

>>645
低学歴は問題外です
0648デフォルトの名無しさん2011/10/16(日) 15:16:32.87
まあ落ち着けよw
初心者ならまず初心者向けの本でも読めよ。無理して自分の無知を晒すなw
0649デフォルトの名無しさん2011/10/16(日) 15:17:47.85
new rowsはtableじゃなくてdataにかかってることも分からん奴が学歴云々言うなよ
0650デフォルトの名無しさん2011/10/16(日) 15:20:36.47
rows of dataが固まりなんすよ
0651デフォルトの名無しさん2011/10/16(日) 15:25:57.15
一つ勉強になって良かったね☆
0652デフォルトの名無しさん2011/10/16(日) 15:28:08.79
>>649
分かった上で書いているんですけどねw
そういうこともわからないバカが偉そうなことを言わないでね
あとその指摘はただの揚げ足だからw、論点ズレてます
文脈理解してくださいね^^
0653デフォルトの名無しさん2011/10/16(日) 15:30:11.67
アラアラ
0654デフォルトの名無しさん2011/10/16(日) 15:32:40.12
ばかなお前らにちょっと教えてやろうかなw

あのDataっていうのは別の追加するオブジェクトって意味で書いているわけじゃないんだよ(少なくとも原文は)
お前ら英語もわからない低学歴バカは機械語翻訳に翻弄されているようだなw
もちろん直訳したら、データの新しい行ってことだろうけど
あの原文はテーブルの新しいデータ領域という意味で書いているんだよ
データの新しい行を追加って日本語でもおかしいだろアホw
0655デフォルトの名無しさん2011/10/16(日) 15:34:34.46
つまり日本語でわかりやすく伝えるとしたら

データの新しい行?ww空のデータでも追加でもするんですか?w
0656デフォルトの名無しさん2011/10/16(日) 15:52:13.59
まだ微妙に理解できてなさそう
ofの使い方について調べましょう

つか家庭教師じゃないんだからいい加減にしてくれ
0657デフォルトの名無しさん2011/10/16(日) 15:57:25.83
>>656
おい厨病、訳してみろよww
0658デフォルトの名無しさん2011/10/16(日) 16:00:46.53
>>656
英語できそうですね、>>656の発言を英語で書いてくれませんか?
もちろん直訳や中学生英語は抜きでお願いしますよww
外人が書いたようにお願いします

1分でできますよね?w
0659デフォルトの名無しさん2011/10/16(日) 16:01:54.53
それが人にものを頼む態度ですか?

全裸で四つん這いになって尻を突き出しおねだりして見せなさい
おっと、靴下は履いたままですよー
0660デフォルトの名無しさん2011/10/16(日) 16:02:30.71
>>656
まだですか?あの程度の英語も訳せないバカにはやっぱり無理でしたかwwwww
文脈も理解できないんですねww
だから日本語も理解できないクズPGなんですよwww

揚げ足しか取らないところをみると、友達もいなさそうですねww
だから一般的な価値観が理解できないんですね
かわいそwww
0661デフォルトの名無しさん2011/10/16(日) 16:03:06.48
>>659
はいにげたーwwwwwwwwwwwwwwwww
バーーーーーーーーーーーーカwwwwwwwwwwww
0662デフォルトの名無しさん2011/10/16(日) 16:05:08.38
>>659
こんな先生いやだwww
0663デフォルトの名無しさん2011/10/16(日) 16:05:28.22
>>652
「分かった上で書いている」のに「その指摘はただの揚げ足」って矛盾してるように見えるんだけどどういう文脈?
0664デフォルトの名無しさん2011/10/16(日) 16:08:15.66
>>654
俺アメリカ人だけどnew rows of dataは新しいデータ行だよ。
データの新しい行?バカじゃね?
0665デフォルトの名無しさん2011/10/16(日) 16:08:40.17
逃げたってどういうこと?
無作法な子に何も教えないのは普通ですよね?
私はあなたにまずは礼儀を汁人間になって欲しいのです
0666デフォルトの名無しさん2011/10/16(日) 16:09:12.67
バカなお前らのためにおれが訳してやるよwwww

>>656
u couldnt understand that using about "of" search for u

u know im not tutor! knock it off!
0667デフォルトの名無しさん2011/10/16(日) 16:10:55.50
IDないとこであばれんなよ
0668デフォルトの名無しさん2011/10/16(日) 16:15:14.70
>>666
やるじゃんwwwwすげぇえええええ
0669デフォルトの名無しさん2011/10/16(日) 16:16:47.78
>>666
さすが日ごろから外人とスカイプやってるだけのことはあるわwwwww
0670デフォルトの名無しさん2011/10/16(日) 16:17:31.99
>>666
汚い尻だなぁ
0671デフォルトの名無しさん2011/10/16(日) 16:18:30.19
>>666
ごめん、俺が悪かった
お前がそんなにできる奴とは思わなかった
本当は俺は低学歴の日曜プログラマなんだ
許してくれ
0672デフォルトの名無しさん2011/10/16(日) 16:20:38.57
>>671
低学歴なら仕方ない。靴を舐めて綺麗にしたら許してやろう
0673デフォルトの名無しさん2011/10/16(日) 16:21:59.35
は?何が起きてるの?
0674デフォルトの名無しさん2011/10/16(日) 16:24:06.20
shut the fuck upでもいいし
shut the motha fuckin upでもいいよw
0675デフォルトの名無しさん2011/10/16(日) 16:24:34.90
今日のハイライトはここだったな

>>634
「new rowsにDataを」
0676デフォルトの名無しさん2011/10/16(日) 16:26:05.71
新しい行にデータをつっこむ
別に間違ってないが?
0677デフォルトの名無しさん2011/10/16(日) 16:40:13.76
codezineに書いていることってMSDNのコピペ多いな
0678デフォルトの名無しさん2011/10/16(日) 16:40:30.08
本当人気のある言語はガキがよってくるから荒れるよなw
0679デフォルトの名無しさん2011/10/16(日) 16:43:58.61
>>676
通常の行追加シーケンスはこう

Detached状態のDataRowを作成(NewRowメソッド)
↓
DataRowに値を設定(set_Itemインデクサ―)
↓
DataTableのRowsにDataRowを追加(Addメソッド)

行が主語なら動詞はsetになるから
あとDataTableの未使用領域は「スロット」って内部呼称だった覚えがある
0680デフォルトの名無しさん2011/10/16(日) 16:51:35.26
そんなことはどうでもよくて、
原文の方がわかりやすいって騒いでるヤツが
こんな簡単な原文すら読めてないのが
なんというかもうね
0681デフォルトの名無しさん2011/10/16(日) 17:02:14.89
どうでもいい。ツマランことでスレ消費すんな。
0682デフォルトの名無しさん2011/10/16(日) 17:38:01.47
昔の嫌われ者、ブイビー厨
今の嫌われ者、シーシャー厨
0683デフォルトの名無しさん2011/10/16(日) 17:42:21.38
>>682
嫌われてるかは知らんがC#の包容力は半端ないぞ。
0684デフォルトの名無しさん2011/10/16(日) 18:17:35.07
>>634が言ってる
>you can add new rows of data to the table.
>原文だとこれ、めちゃくちゃわかりやすい

と言っているのがよくわからないんだけど、
なんで原文だと初心者プログラマは「tableって机のテーブル?」ってならないんんだ?
0685デフォルトの名無しさん2011/10/16(日) 18:25:02.95
和洋折衷だねぇ。
データテーブルに新しい行を追加できます。でいいような気がするけど。

MSの翻訳は多分もっと粒の大きな単位でやってるだろうから、細部にてがまわらんのだろうね。
量産されるDocumentについていかないといけないし。
0686デフォルトの名無しさん2011/10/16(日) 18:26:24.12
別に読めるからああだこうだと揉めないでくださいよ
大丈夫
母国語と合わないだの何だの抜かす奴は遠からず止めるから
0687デフォルトの名無しさん2011/10/16(日) 18:30:51.00
プログラムは止めるだろうけど、ぽんこつアンチとして居着きそうで嫌w
0688デフォルトの名無しさん2011/10/16(日) 18:32:03.24
それはあるかもしれないが
煽らなければその危険は少ないはずだ
0689デフォルトの名無しさん2011/10/16(日) 19:24:51.22
ここまで読んで分かったことは、同僚と技術的な会話をしたことがないんだろうってことだけだな。w
文章がすべてではなかろうに。
0690デフォルトの名無しさん2011/10/16(日) 19:47:08.48
コーディングについて質問
とあるサイトだとこういう順序で書くのがいいって書いてたけど問題ないですか?
* Fields
* Static Fields
* Properties
* Static Properties
* Events
* Constructors
* Destructor
* Methods
* Static Methods
* Operators
* Event Handlers
* Classes
0691デフォルトの名無しさん2011/10/16(日) 19:51:41.55
どうでもいい
縛られてないと不安ならStyleCopでも使ったら
0692デフォルトの名無しさん2011/10/16(日) 19:52:35.59
問題ない
「良い」ってのは共通認識を持ってる人間の中で見やすいってだけだから
それ以外の人間にとってはどうでもいい

フィールド1、メソッド1、プロパティ1、メソッド2、フィールド2…とか並んでるとキモイけどな
0693デフォルトの名無しさん2011/10/16(日) 20:06:51.77
>>690
プロジェクトによっては、コーディング規約といふものがありけるらしいので、そっちが優先。
後は、縛られるのがお好きならその方法を次点で採用すればいい。
読みやすいのが正義だと思うんだがね。
0694デフォルトの名無しさん2011/10/16(日) 20:30:48.02
>>690
自分はそもそも、そういう単位でならべないなぁ。

プロパティのバックフィールドはプロパティの直下に書くとか、
特定のいくつかのメソッドからしか参照しないフィールドはそのメソッドと固めて書くとか。
0695デフォルトの名無しさん2011/10/16(日) 20:51:57.40
>>624
.NETから使えるタイマーは、以下の3つ

System.Windows.Forms.Timer // 精度は荒い
System.Timers.Timer // 一般向け
System.Threading.Timer // 基本API

あとマーシャリングが必要だが、マルチメディアタイマーが使える
精度は最も高い

timeSetEvent
0696デフォルトの名無しさん2011/10/16(日) 22:14:17.75
・Aクラスを継承してBクラスを作る
・Aクラスはpublicメソッドを100個持っている
・そのうち90個だけをBクラスでも使いたい(残り10個は呼び出せないようにしたい)
って場合、それをスマートにやる方法を教えてください
0697デフォルトの名無しさん2011/10/16(日) 22:18:07.63
またスマートやら簡潔やらうるさくなってまいりました
ハァー
0698デフォルトの名無しさん2011/10/16(日) 22:18:54.53
ちょっと間違った
誤:そのうち90個だけをBクラスでも使いたい(残り10個は呼び出せないようにしたい)
正:そのうち90個だけをBクラスでも公開したい(残り10個は隠蔽したい)
0699デフォルトの名無しさん2011/10/16(日) 22:19:38.69
動けばいいんだよ
0700デフォルトの名無しさん2011/10/16(日) 22:19:51.28
やる方法がありませんのでスマートも糞もありません
お引取りを
0701デフォルトの名無しさん2011/10/16(日) 22:21:31.37
>>698
90個のメソッドだけインターフェースに抽出して委譲パターンで書けよ
0702デフォルトの名無しさん2011/10/16(日) 22:21:37.41
一手毎にアレやれコレやれで進み、どういう意味や効能があるのかが解らず挫折してたんですけど
ttp://msdn.microsoft.com/ja-jp/library/cakx2hdw.aspx
手順18で詰んだ。
InformationForm の分離コード ページで、InformationForm クラスに次のコードを入力して、UserInformation プロパティを追加します。
以降を噛み砕いた日本語で教えてください。なにをすればいいのかが解らなくなってしまいました。

つか、チュートリアルの例題なのに、なんですか!この難易度。
一般的手法なんでしょうか?これ。知恵熱出そうです。
0703デフォルトの名無しさん2011/10/16(日) 22:23:16.59
やっぱ無理っすか
C++みたいにprivate継承もないし、newを使えば偽物と書き換えられるけど隠蔽は出来ない
継承ではなく包含にして公開するメソッドを90個書き直してスーパークラスへリダイレクトするしかないか
0704デフォルトの名無しさん2011/10/16(日) 22:24:25.79
>>701
ですな・・・めんどくせえええええ
1個だけ隠蔽したいのに99個書き直しとかめんどくせえええええええ
しねしにさらせ
0705デフォルトの名無しさん2011/10/16(日) 22:25:32.48
>>702
挙がってるコードをInformationForm.csに書けばいい
0706デフォルトの名無しさん2011/10/16(日) 22:26:12.82
スーパークラスに90個メソッドの実装書いて
AとBそれぞれに継承させれば
0707デフォルトの名無しさん2011/10/16(日) 22:27:09.54
A、Bが絶対親子じゃないといけないってんなら無理だけど
インターフェースで包含に書きなおせるなら抽象クラスが親でもいいだろ
0708デフォルトの名無しさん2011/10/16(日) 22:27:28.24
スーパークラスを自分で弄れる仕様ならいいけどね
みんなお仕事だからいろいろ大変なんだよ
0709デフォルトの名無しさん2011/10/16(日) 22:28:06.05
>>702
そもそも何を作ろうとしているチュートリアルなのか分かってっか?
0710デフォルトの名無しさん2011/10/16(日) 22:29:01.46
え、お仕事なんて居るのこのスレ?
さっきまで低レベルなエングリッシュ談義してたのに
0711デフォルトの名無しさん2011/10/16(日) 22:29:50.23
newで上書きして例外放り投げたら宜し
0712デフォルトの名無しさん2011/10/16(日) 22:30:27.51
>>711
呼べるのに呼ぶと例外投げるメソッド公開しているクラスって馬鹿っぽくね?
0713デフォルトの名無しさん2011/10/16(日) 22:31:48.11
>>712
エレガントじゃないけど被害は出ないぜ
0714デフォルトの名無しさん2011/10/16(日) 22:32:08.48
そんなことないよ
NotSupportedExceptionの立場を奪わないで!
0715デフォルトの名無しさん2011/10/16(日) 22:32:53.65
うーん・・・理屈は分かるが腑に落ちない
0716デフォルトの名無しさん2011/10/16(日) 22:34:37.81
100個のメソッドとか、最高に使いづらそうなクラスだ
0717デフォルトの名無しさん2011/10/16(日) 22:36:27.05
BindingListなんかソートをサポートしたい時は継承してください
って言ってNotSupportedExceptionを平気で投げる

一応ソートするような枠組みだけは用意してある
でも一般的には不要だったり、コストが大きかったりってこともある
0718デフォルトの名無しさん2011/10/16(日) 22:37:04.43
>>712
配列がAdd呼べるとか、継承階層がうまく作れない(作ると複雑になりすぎる)場合によくある手。
0719デフォルトの名無しさん2011/10/16(日) 22:37:33.56
ありがとうございます、NotSupportedExceptionでいくことにしました
0720デフォルトの名無しさん2011/10/16(日) 22:38:29.32
Obsolete以外に呼び出されたらコンパイル時に警告/エラー吐く属性ってまだないっけ?
そろそろ追加されても良いと思うんだが
0721デフォルトの名無しさん2011/10/16(日) 22:55:17.96
>>702
初心者はWinFormよりまず文法からだと思うけど
0722デフォルトの名無しさん2011/10/16(日) 23:11:03.24
インテリセンスに表示されないようにできたよね?それやっとけば使われにくい
0723デフォルトの名無しさん2011/10/16(日) 23:26:56.60
[EditorBrowsable(〜.Never)]だな
0724デフォルトの名無しさん2011/10/17(月) 00:21:24.95
なんで、List<T> にしか、ForEach がないのかだれか教えてくれ。
0725デフォルトの名無しさん2011/10/17(月) 00:24:03.98
ラムダは1次元配列にしか対応できないから
0726デフォルトの名無しさん2011/10/17(月) 00:31:39.07
IEnumerable<T>の拡張メソッドにならなかったのは副作用だかららしい
いくら実用主義と言っても関数型的なLINQの中にForEach入れるのはどうしても許せなかったんだろ
0727デフォルトの名無しさん2011/10/17(月) 00:32:46.00
>>724
今では賛否両論だけど、LINQ に ForEach たさなかったのは、
メソッドチェーンで副作用のあるコード書くのを嫌ったから。

じゃあ、逆に、なんで List にだけあるかというと、
List の場合は foreach ステートメント(外部列挙)するより、
内部列挙(ForEachにラムダ式渡す)の方が実行効率ちょっとだけいいから。

ちなみに、配列に対する foreach ステートメントは for(var i... 相当のコードに最適化されるので、ほっといても効率いい。
0728デフォルトの名無しさん2011/10/17(月) 00:34:17.90
>>702 あぁ それってば、きっと
public UserInformation
エラー1クラス、デリゲート、列挙型、インターフェイス または構造体が必要です。
のエラーだろ?

プロパティの記憶用の変数を設置する部分が飛んでいるようです
とyahooでググレばあなたに幸せが訪れるかも。知らんけど。
0729デフォルトの名無しさん2011/10/17(月) 00:40:25.96
関数型の思想がどうっていうより、クエリとその結果の利用ははっきり区別しないと
ものすごいわかりにくいコードになると思う
ForEachが使えたら全部ForEachになってしまうだろうし
0730デフォルトの名無しさん2011/10/17(月) 00:48:52.30
LinqのAggregateは一般的な集計関数と言うことで、
ForEachでやりたいことの一部をやってくれるよ。
0731デフォルトの名無しさん2011/10/17(月) 01:06:13.17
HashSet<T> で独自クラスを重複なく管理させたいんだが、
どうすりゃいいの?
0732デフォルトの名無しさん2011/10/17(月) 01:10:11.23
GetHashCodeとEqualsをオーバーライドする
構造体ならIEquatable<T>も実装する
07337022011/10/17(月) 01:16:53.83
サンクス なんだか同じところで躓いてた人を見つけました。もう視力と気力が衰えてきたので明日頑張る。
0734デフォルトの名無しさん2011/10/17(月) 01:40:02.15
>>702
超絶技巧上級者向けだから、そんなの初心者は理解出来なくても問題無いな。
演習の中に解説と指示が入り乱れてるから、凄く読みにくい。
ある程度解っている人がさらっと復習に読めば流れとしては解るって内容。
初心者とか中級コピペマンがそのまま使おうとすると端折った部分があって使えない。
0735デフォルトの名無しさん2011/10/17(月) 06:28:14.68
物凄く初歩的かもしれないんですが
WindowsフォームアプリでConsole.WriteLineで出力した文字列は
どうやってみればいいんでしょうか
0736デフォルトの名無しさん2011/10/17(月) 06:50:28.41
>>735
OSのstdoutに出力されてるはずだから、テキストファイルにリダイレクトするとかかな??

検索したら以下を見つけた。
ttp://dobon.net/vb/dotnet/programing/consoleinout.html
0737デフォルトの名無しさん2011/10/17(月) 06:54:47.63
出力ウィンドウがいつの間にか閉じていました
リダイレクトも良さそうですね
合わせて感謝します
ありがとうございました
0738デフォルトの名無しさん2011/10/17(月) 08:07:59.49
>>734
でも人のコーディング見せてもらうのは勉強になるよね。
直接的なロジックだけじゃなく、エラー処理の部分とか変数の名前の付け方とか。
そこに分かりやすい日本語で解説が付けば言うこと無い。
0739デフォルトの名無しさん2011/10/17(月) 08:58:49.77
カスタムコントロールを使っていてエラーが起きたりを繰り返していると
気づいたらデザイナーのところにDataGridViewのカラムは500個作られていたんだが
こうい症状になった人いる?
あと、カスタムコントロールを削除したのに、見た目上削除されただけで
デイザイナーのときにはしっかり残ってたり
SP1にしてからこういうことが頻発しているんだが・・・
0740デフォルトの名無しさん2011/10/17(月) 09:05:35.61
一つのカラムが500個で10列あるから5000個無意味に作成されてる
0741デフォルトの名無しさん2011/10/17(月) 09:07:16.80
>>739
カスタムコントロールだけじゃなく普通のコントロールでもあるよ。
それ以来、時々デザイナはチェックしてる。
それと削除するときはDelキーは使わず、コンテキストメニューからするようにしてる。
0742デフォルトの名無しさん2011/10/17(月) 09:29:48.78
アドオンのProductivity Power Toolsこれだ・・・
これが入っててカスタムコントロールがあると
削除とかしなくてもデバッグするたびにコードが増えていく

使い勝手のいいソフトなのになー仕方がないか
0743デフォルトの名無しさん2011/10/17(月) 10:23:44.59
あ、だめだProductivity Power Toolsがなくても
コードが増えてる、もうほんと面倒くさい
0744デフォルトの名無しさん2011/10/17(月) 10:36:11.37
カラムがどんどんふえりゅうぅううううううううっぉおおおお
とまらにゃいのぉおおおおおおっぉおお
おほぉぉおおおほぉおおおおおおおおおおおおおお
0745デフォルトの名無しさん2011/10/17(月) 20:01:50.67
コードが増えて良かったねせつこ
0746デフォルトの名無しさん2011/10/17(月) 21:02:05.31
もしかしてDataGridViewを継承したクラス側で
事前にカラム設定しているのがだめなのかな
0747デフォルトの名無しさん2011/10/17(月) 21:17:28.22
事前にって何のイベントよ
コンストラクタなら何べんも実行されたりしねえし
0748デフォルトの名無しさん2011/10/18(火) 00:08:08.63
MathクラスにintやdoubleのMinやMaxメソッドがありますが、ジェネリクス版はないんですか?
あと、DelphiにあったInRangeやEnsureRangeと同じメソッドがあったら教えて下さい。
0749デフォルトの名無しさん2011/10/18(火) 00:14:22.01
どれもない
上の方は(T)((dynamic)x > (dynamic)y ? x : y)とかで実装できないこともないけど遅いのでお勧めはしない
0750デフォルトの名無しさん2011/10/18(火) 00:32:03.36
IComparableとか制約つければいいんじゃね
綴りの自信ないけど
0751デフォルトの名無しさん2011/10/18(火) 01:08:40.54
>>747
イベントとかコードは何も書いていない
ただ、デザイナー画面でカラムを作っているだけ

そして、カスタムクラスのデザイナーでDataGridViewのプロパティいじったり
フォーム側のデザイナーでDataGridViewの設定をいじったりして
ビルドするとカラム生成のコードが複製される
それが実際にForm側のDataGridViewにデザイン時点でも表示される
ほっとくと何百個のカラムができる
0752デフォルトの名無しさん2011/10/18(火) 12:02:19.24
TabPage下にあるTextBoxコントロールにアクセスする方法ってないですか?
並び替えできるようにしてあるのでTabPageのインスタンスだけ並び替えてもTabPage下にあるTextBoxコントロールはそのままなんです
0753デフォルトの名無しさん2011/10/18(火) 14:06:35.21
しらんけどtabpages[2].textBoxみたいな感じでできるんじゃないの
0754デフォルトの名無しさん2011/10/18(火) 15:26:05.76
SortedListとか使ってキーの重複とか苦労してたんだけど
ふとLinq使ったらあっさり解決した、
いままで何この構文ゴミだとか言っててすみませんでした
Linq始まりすぎ
0755デフォルトの名無しさん2011/10/18(火) 15:38:15.52
childとかなかったっけ?
というかMSDNのクラスの説明とか読めよ

あとインスタンスを管理してる変数の後ろに.つけて上からすべて説明見ていけば・・・
0756デフォルトの名無しさん2011/10/18(火) 15:47:10.94
>>755は>>752へだったけどchildじゃなかった

サンプルプロジェクト作ってtabControlを配置して最初から付いてる2ページのうちの
片方にTextBoxを置いた上でShownイベントに以下のコード書いたらOKだった
TextBox t1 = (TextBox)tabControl1.TabPages[0].Controls[0];

あとは自分でやってくれ
0757デフォルトの名無しさん2011/10/18(火) 16:15:52.96
>>756
ありがとうございます。まさしくこれです
Controlsでアクセスできるんですね。今までAddメソッドしか使ったことしかありませんでした
0758デフォルトの名無しさん2011/10/18(火) 18:22:01.08
取扱説明書を読まずにコールセンターに文句を垂れるチュプみたいだ
07597312011/10/18(火) 18:45:33.07
>>732
おかしい・・・GetHashCode も Equals もオーバーライドしてるのに・・・と
思ったら、 Equals がバグってた。

恥ずかしいよ、ママン。

サンキュー
0760デフォルトの名無しさん2011/10/19(水) 09:12:04.73
一般的に日本語の変数名ってあり?
動作的には問題ないと思うけど、
文化的には見ないよね。

今やってるので、コンスタントの定義で
日本語使うほうが下手に英語にするより
わかりやすいとこがあるんだけど。
あんまり見たことないなと思いまして。
0761デフォルトの名無しさん2011/10/19(水) 09:16:33.10
普通にあるじゃん列挙とか
0762デフォルトの名無しさん2011/10/19(水) 09:53:14.88
>>760
IntelliSenseめんどくない?
0763デフォルトの名無しさん2011/10/19(水) 10:01:18.79
>>762
日本語変数だとインテリセンスがらくになるかと。
0764デフォルトの名無しさん2011/10/19(水) 10:22:37.53
日本語変数なんてどんな誤動作するかわからなくて使えねぇ
0765デフォルトの名無しさん2011/10/19(水) 10:23:50.02
インテリセンスを楽にしたいなら、ハンガリアン使いまくれよ
0766デフォルトの名無しさん2011/10/19(水) 11:41:35.03
種類毎に頭に何かアルファベットをつけるといい感じになる
0767デフォルトの名無しさん2011/10/19(水) 12:01:58.34
右下からにょきってでるのんどうすりゃいいん
0768デフォルトの名無しさん2011/10/19(水) 12:04:40.16
>>760
10年も前だと、日本語使うといろいろ不具合でたからねぇ。

C# と SQL Server 使ってる限りには日本語変数/日本語テーブル使って不具合出てる人見たことがなく、
C# なら普通に日本語変数使うよ。

ただ、インテリセンスとの相性悪い(いちいち IME オンにしないと補完候補にたどりつけない)んで、
ローカル変数とかだといまいち使いにくい。
定数とか列挙型のメンバーで使われるのは、どうせ 型名. を打って、その後一覧から選ぶだけだから。
0769デフォルトの名無しさん2011/10/19(水) 12:06:34.19
>>764
C# は Unicode 策定後にできた言語だから大丈夫。
O/R マッパーとか使ってない限り(あるいは相手が最近の SQL Server な限り)まず誤動作ない。
0770デフォルトの名無しさん2011/10/19(水) 15:08:46.80
TabControl的な切り替えをボタンとかComboBox使ってやりたいんですが、
どこかにサンプルとかありませんか?
0771デフォルトの名無しさん2011/10/19(水) 16:03:34.33
サンプルも何も、ClickイベントやSelectedIndexChengedイベントでも使えば良いじゃね?
0772デフォルトの名無しさん2011/10/19(水) 16:51:47.35
>>770
フォームやる前に覚えなきゃならないことあるんじゃないか?
一歩進むたびに質問してるだろw
0773デフォルトの名無しさん2011/10/19(水) 16:55:41.21
>>770
2chブラウザの作り方をブログで公開してた人がそれっぽいことをやってたな
0774デフォルトの名無しさん2011/10/19(水) 17:08:40.81
Win7のイベントログにレベル重大のイベントを出力したいのですが、以下のコードで出ません。

# レベルをクリティカルでイベントログに出力するコード
TraceSource source = new TraceSource("MySource", SourceLevels.All);
source.TraceEvent(TraceEventType.Critical, 7743, DateTime.Now.ToString());

# App.configに以下のXMLを追加
<system.diagnostics> <sources> <source name="MySource">
<listeners>
<add name="EventLog" type="System.Diagnostics.EventLogTraceListener"
initializeData="TmpEventSource" />
</listeners> </source> </sources> </system.diagnostics>

# 管理者権限のPowerShellで、イベントソースを登録
PS > New-EventLog -Logname Application -Source TmpEventSource

上記だと、CriticalでもErrorでも同じ「エラー」イベントになります……
0775デフォルトの名無しさん2011/10/19(水) 21:04:35.08
List<Hoge> foo = list;
int idx = hoo.FindIndex(n=>n.value == (Hoge)hoge.value);

で取ったインデックスに、
if (idx > -1 && idx < hoo.Count)
 hoo.RemoveAt(idx);
ってするとたまにOutOfRangeExceptionが起こるんですが、
一体どういう事なんでしょうか
存在するインデックスをとって、範囲内か再度チェックしてるのに、
なおダメってイミフ

500回に一回くらいの割合で起こるので再現性がとても低いです・・・
0776デフォルトの名無しさん2011/10/19(水) 21:12:46.83
fooとかhooとかhogeとか何だよ
0777デフォルトの名無しさん2011/10/19(水) 21:16:47.28
>>775
考えられるのは、
Idx==(List.Count-1)の時に、なにか一個を削除したらIdxを更新しなければ、
そのIdxでインデックサ使うとOutOfRangeじゃないかな。
0778デフォルトの名無しさん2011/10/19(水) 21:18:27.18
if (idx > -1 && idx < hoo.Count)
 hoo.RemoveAt(idx);

これがループの中にあったりして
0779デフォルトの名無しさん2011/10/19(水) 21:26:38.65
別のスレッドからもいじってたりはしてないよね?
0780デフォルトの名無しさん2011/10/19(水) 21:34:27.37
本当にその行で落ちているかを検証してみるのも乙
偶に思い込みってのもあるからね
0781デフォルトの名無しさん2011/10/19(水) 21:37:31.11
removeAtしたら一回ループ抜けないとねー
下から消していくのもあり
0782デフォルトの名無しさん2011/10/19(水) 21:40:02.04
インデックス取ったらすぐRemoveなんです
他のスレッドからのアクセスが邪魔してるのかと思って、
lock (lockObject) {}
で囲んだりした結果がこれで・・・

もしかしてlock(foo)じゃないとだめだったり?
0783デフォルトの名無しさん2011/10/19(水) 21:44:23.76
そういう場合はremoveatしないで
もう一個Listをつくってそっちに削除したいの以外をadd
していったものを使うようにすればいいぞ
富豪的プログラミングだ
0784デフォルトの名無しさん2011/10/19(水) 21:51:21.34
いや複数のスレッドからアクセスしてるのかしてないのかどっちだ
それでおかしくなるってことは他のスレッドからコレクションを変更してるんだから
取得だけでもロックしないと死亡
0785デフォルトの名無しさん2011/10/19(水) 21:54:56.63
>>783
リムーブ候補のインスタンスを並べたリスト作って
後でまとめてリムーブすればいいだけちゃうの?
0786デフォルトの名無しさん2011/10/19(水) 21:56:11.82
あといろいろ気になるのがfooがでてきたのにhooになってるんだがこの辺大丈夫?
0787デフォルトの名無しさん2011/10/19(水) 22:04:55.79
>>780
デバッガさんはRemoveAtでコケるって言ってる

>>783,785
なるほど、試してみます

>>784
2スレッドくらいで同時にやってるはずです
lockステートメントで囲んだだけですが一応・・・

>>786
それは大丈夫です、コピペしたわけではないので
0788デフォルトの名無しさん2011/10/19(水) 22:09:54.12
だったら排他制御がちゃんとできてないのが問題なんだろ
別のList使うのは直接の解決にはならん
他にもコレクションを変更してる箇所があるならそこもロックする
0789デフォルトの名無しさん2011/10/19(水) 22:10:47.12
ソース全部貼れ
0790デフォルトの名無しさん2011/10/19(水) 22:10:52.70
もうちょっと全体像が見えないと局所的な対応してもなあ
0791デフォルトの名無しさん2011/10/19(水) 22:18:44.30
lockはアクセスする全ての箇所でやらないと無意味ってこと分かってる?
0792デフォルトの名無しさん2011/10/19(水) 22:26:23.97
そんなのわかってるよ
0793デフォルトの名無しさん2011/10/19(水) 23:33:44.92
うん
0794デフォルトの名無しさん2011/10/19(水) 23:45:12.38
スレッド間で操作するなら、C#4.0から追加された、
System.Collections.Concurrent;にある、BlockingCollection とか使えばいいんじゃないの?
0795デフォルトの名無しさん2011/10/20(木) 00:28:09.16
別にブロッキングは必要ないはずだからConcurrentBag<T>かな
07967952011/10/20(木) 00:32:21.92
いや特定の条件に一致する要素を削除するんだからSystem.Collections.Concurrentでは無理か
やっぱり普通のコレクションで普通にロックだな
0797デフォルトの名無しさん2011/10/20(木) 06:55:21.13
>>751だけど、いい加減うざいのでカスタムコントロールも
削除して、フォームのカスタムDataGridViewも削除して
元のDataGridViewを張り付けてやったら
今度はあらゆる自作クラスが競合してるとか大量に出るようになったwww
ここ数日まともにプログラム打てず、自動生成のバグ修正ばっかりやってるわ
これはもう一から作り直したほうが早いのかww
0798デフォルトの名無しさん2011/10/20(木) 08:13:43.42
MVP勉強しているんだけど
modelクラスがVIEWに対して
データ変更通知をするっていうのがどうも納得できない
変更通知はPresenterクラスにするべきじゃない?
Viewを意識するのは一つのクラスにしたいんだけど
0799デフォルトの名無しさん2011/10/20(木) 09:19:59.40
>>788
それはネットワークプログラミング板がいいんじゃね。
ここはC#言語だから、ASPの中のC#部分の質問ならOKだけど。
0800デフォルトの名無しさん2011/10/20(木) 09:38:48.05
↑アンカーミス>>798だった
08017742011/10/20(木) 10:04:59.64
仕方がないので、EventLogTraceListenerをReflectorで追ったら

if ((severity == TraceEventType.Error) || (severity == TraceEventType.Critical))
{
 instance.EntryType = EventLogEntryType.Error;
 return instance;
}

ってなっていたので、TraceSourceでCriticalにしても、.NET FrameworkのEventLogTraceListener
の中でErrorに丸められてイベントログに出るという落ちでした。
ウワワァン、俺の数時間が……
0802デフォルトの名無しさん2011/10/20(木) 11:42:49.39
>>798
ビューとモデルの間に直接の関連を持たせない流儀もある
本来のMVPはモデルがビューに通知する形で、その方がよりMVCに近い
>>799
MVPはクライアントだけでも完結するパターンだよ
0803デフォルトの名無しさん2011/10/20(木) 12:12:18.03
C#というより、.NET Frameworkの質問なんですが、
System.XML.XMLDocument を、System.Xml.XmlWriter で保存する際に、
テキストノードの\n改行も、 などとエンティティ化して
保存することは出来ませんか?
0804デフォルトの名無しさん2011/10/20(木) 12:18:10.39
System.Xml.XmlWriterでいきなりファイルに出力するのではなく
メモリストリームに出力して、出力結果の中の任意の文字を置換した後
ファイルに出力すればいいかも
0805デフォルトの名無しさん2011/10/20(木) 14:42:59.47
最近勉強しはじめたんですが
メインウィンドウのフォームと
設定を保持するプロパティクラスと
設定を変えるセッティングフォームの3つを作成して
メインフォームでプロパティクラスとセッティングフォームのオブジェクトを生成し
メインフォームでプロパティの値を使って処理している場合

メインフォームからセッティングフォームを開いてセッティングフォームからプロパティの値を利用したい場合どうやったら扱えるのでしょうか?
0806デフォルトの名無しさん2011/10/20(木) 14:46:25.02
ぷろぱちいクラスのインスタンスを共有すれば?
0807デフォルトの名無しさん2011/10/20(木) 15:18:00.58
インスタンスを共有というのはプロパティクラスをstaticで宣言すると言うことでしょうか?
0808デフォルトの名無しさん2011/10/20(木) 15:19:18.26
違います
0809デフォルトの名無しさん2011/10/20(木) 15:25:16.87
C# インスタンス 共有
でググって見たのですがstaticに関するものが多く出てくるのですが
インスタンスの共有というのはどういったものなのでしょうか?
0810デフォルトの名無しさん2011/10/20(木) 15:27:45.14
セッティングフォームにインスタンスの受け渡し用メソッドでも作って
セッティングフォームを開く前にでもいいのでメソッドから渡すでもいいんじゃね?
0811デフォルトの名無しさん2011/10/20(木) 15:30:44.12
だからまずコンソールアプリで文法理解しろよ
いきなりフォームアプリ作ろうとするなドアホ
0812デフォルトの名無しさん2011/10/20(木) 15:36:45.85
いやここで文法は関係ないだろ
設計の問題なんだから
0813デフォルトの名無しさん2011/10/20(木) 15:40:19.04
あの感じだとインスタンスが何かっていうのもわかってなさそうだぞw
0814デフォルトの名無しさん2011/10/20(木) 15:49:58.85
インスタンスラーメン
0815デフォルトの名無しさん2011/10/20(木) 15:53:58.42
まあこのスレは初心者用なんだけどな・・・
他人にアホ言って精神安定を計る奴はどこか行けよ
0816デフォルトの名無しさん2011/10/20(木) 15:56:17.49
>>815
まず正しい日本語を学べ
0817デフォルトの名無しさん2011/10/20(木) 15:57:08.23
インスタンスはわかってます
フォームとか言うとアレみたいなんで
Aで作成したBとCのオブジェクトで
Bの処理の中でAで作成したCにアクセスするにはどうしたらいいのかわからないもので・・・
Bを開く時にAで作成したCのオブジェクトを引数として渡してみたんですがうまく行かなくて・・・
0818デフォルトの名無しさん2011/10/20(木) 15:59:52.47
>>817
だからーAのオブジェクトをBで使えばいいだけだろバカ
0819デフォルトの名無しさん2011/10/20(木) 16:01:45.43
>>816
キチガイ乙
0820デフォルトの名無しさん2011/10/20(木) 16:01:54.18
ほんとばかだなー具体的にわだなー

class A
{
this.b.a=this;
}

こういうことだよバカ
0821デフォルトの名無しさん2011/10/20(木) 16:02:37.53
>>819
しょうがくちぇいでちゅかぁ〜〜?www
0822デフォルトの名無しさん2011/10/20(木) 16:03:04.39
>>818
BでAのオブジェクトを使う方法がわからないって書いてるのに
BでAのオブジェクトを使えばいいだけだろバカって
お前もバカだろw
0823デフォルトの名無しさん2011/10/20(木) 16:06:09.78
>>821
>>821
0824デフォルトの名無しさん2011/10/20(木) 16:06:21.44
>>822
間違ってませんが?
0825デフォルトの名無しさん2011/10/20(木) 16:06:33.12
>>823
>>819
0826デフォルトの名無しさん2011/10/20(木) 16:08:03.59
>>824
バ〜カw
0827デフォルトの名無しさん2011/10/20(木) 16:08:38.87
>>824
そうか・・・バカならしょうがないな・・・
0828デフォルトの名無しさん2011/10/20(木) 16:09:47.42
回答する側が初心者のスレwww
0829デフォルトの名無しさん2011/10/20(木) 16:11:52.47
間違ってませんが?
0830デフォルトの名無しさん2011/10/20(木) 16:12:56.94
定期的にバカが沸くスレ
0831デフォルトの名無しさん2011/10/20(木) 16:16:00.93
不毛な言い合いはおしまいと

http://ideone.com/WtZ3H
0832デフォルトの名無しさん2011/10/20(木) 16:16:26.05
しまった
ガンダムにちなんでageないとww
0833デフォルトの名無しさん2011/10/20(木) 16:18:52.98
>>831
まあ、こういうことする奴いたらブチ切れるけどなw
0834デフォルトの名無しさん2011/10/20(木) 16:19:49.28
>>833
まあとりあえずだよww
ガンダム
0835デフォルトの名無しさん2011/10/20(木) 16:23:39.71
>>820
class A
{
B b = new B();
C c = new C();
this.b.ab=this;
}

class B
{
public object ab;
}

class C
{
public int cd = 5;
}

という状態で
classB内のメソッドで
ab.c.cd
と使おうとしても使えないのですが
どう使ったらいいのでしょうか?
0836デフォルトの名無しさん2011/10/20(木) 16:30:39.17
>>835
classをpublicにしろよボケナス
お前は先に文法学べっていってるだろチンカス野郎
0837デフォルトの名無しさん2011/10/20(木) 16:32:41.21
単純に参照したいものが、パブリックになっていないだけじゃないの?
0838デフォルトの名無しさん2011/10/20(木) 16:33:40.14
>>835
全部publicで宣言して干されろ
0839デフォルトの名無しさん2011/10/20(木) 16:35:03.09
>>836
classは3つともpublicです。
>>820のコピペそのままで手抜きしてゴメンナサイ
0840デフォルトの名無しさん2011/10/20(木) 16:39:04.98
>>817
Form1からForm2やForm3にコンストラクタやプロパティで共有するインスタンスを渡してやるか、
あるいはアプリの設定みたに一個しかインスタンス必要ないのなら、
どっかのクラスにpublic staticで置いてやればいいんじゃないか?

求めてる事と違ってたらごめんね
0841デフォルトの名無しさん2011/10/20(木) 16:40:06.13
ttp://social.msdn.microsoft.com/Forums/en-US/wpf/thread/3ae3f6a2-d29f-49cd-9b3f-ccc1422d0ca8/

これコピペして動かしてみたんですが、
値の更新がコントロールのフォーカスが移った時にしか行われないようです
入力中にもリアルタイムにテキストボックスとリストの値を同期させたいのですが、
どのように書き換えたら良いでしょうか
0842デフォルトの名無しさん2011/10/20(木) 16:44:03.73
>>817
ファイルに書き出せば?w
0843デフォルトの名無しさん2011/10/20(木) 16:44:07.74
>>841
UpdateSourceTrigger
0844デフォルトの名無しさん2011/10/20(木) 16:45:57.61
>>840
設定ファイルに保存されたプロパティの値を持ったインスタンス1つを全てのクラスで利用したいので
アプリの設定みたいに1個しかインスタンス必要ないものと同じですね
プロパティを保持するクラスの変数をpublic static にしてやってみます
0845デフォルトの名無しさん2011/10/20(木) 16:47:29.95
ID欲しいお・・・
0846デフォルトの名無しさん2011/10/20(木) 16:48:12.52
>>844
セーブデータ直接弄りまくるのか?バカじゃねーの?
0847デフォルトの名無しさん2011/10/20(木) 16:50:55.44
>>835
abがobject型だからそれを変えるかキャストするとか?
0848デフォルトの名無しさん2011/10/20(木) 16:52:18.56
>>846
プロパティクラスがxmlから値を取得して
基本は設定変更用のフォームからのみプロパティの値を変更して保存
他のクラスからはプロパティから値を取得するだけ
っていう状態です。
0849デフォルトの名無しさん2011/10/20(木) 17:01:02.66
>>848
プロはどうしてるかっていうと
そういうデータはフォームには持たせない
フォームを表示させる別のクラスでデータを保持する
この方が簡単なわけだが、今のお前には無理だろう
0850デフォルトの名無しさん2011/10/20(木) 17:04:38.26
別にプロじゃなくてもそれが普通だろ
0851デフォルトの名無しさん2011/10/20(木) 17:07:36.44
>>847
abをオブジェクト型以外にすることは可能なのでしょうか?
クラスのインスタンスが入っているのでobject以外でできないものだとばかり・・・

>>849
フォームではなくプロパティクラスに持たせてフォームはそこから値をgetアクセサで取得するのですが
そういうことではなくてですか?
0852デフォルトの名無しさん2011/10/20(木) 17:13:20.73
>>851
フォームで設定するんじゃなくて別クラスで設定するんだよ

class A
{
Form form1=new Form();
form1.Propaty=obj.Form1Propaty;
form1.Show();
}
0853デフォルトの名無しさん2011/10/20(木) 17:16:00.80
よくブログでC++とC#の速度比較みたいなことやってるとこあるけど
C#に無理やりポインタ使って同じ処理させてるよな
C#は下手にポインタ使うよりライブラリ使った方が高速なのに
0854デフォルトの名無しさん2011/10/20(木) 17:17:46.79
>>849
なるほど
今までエントリポイントで作ったFormインスタンスから、
別のクラスを実体化させて弄ってたけど
メインクラスを作ってそこでApplication.Run()すればすっきりするんか・・・

いい事聞いた
0855デフォルトの名無しさん2011/10/20(木) 17:22:07.18
HoNToKaNa-??
0856デフォルトの名無しさん2011/10/20(木) 17:26:57.46
>>854
フォームもセーブデータを入出力するクラスもすべて
支配下におく親クラスを作る
その親クラスで仕事を各クラスに分担させる
0857デフォルトの名無しさん2011/10/20(木) 17:27:24.66
>>843
出来ました
ありがとうございます
0858デフォルトの名無しさん2011/10/20(木) 17:27:49.70
Application.Run() わろす。その発想なかった。
0859デフォルトの名無しさん2011/10/20(木) 17:29:14.70
>>854
全体のコード量は増えるがその方がわかりやすい
データの受け渡しも直接渡す必要はない
参照を渡すだけなんだから極端に速度が落ちるわけでもないからな
間にいくつか挟んでもいいんだよ
0860デフォルトの名無しさん2011/10/20(木) 17:29:59.69
>>854
staticなProgram.csの存在を忘れていないか?
0861デフォルトの名無しさん2011/10/20(木) 17:37:03.48
WPFの場合もプロジェクトのデフォルト設定じゃなくて
public class Program
{
[STAThread()]
public static void Main(string[] args)
{
Application app = new Application();
Window win = new Window();
app.Run(win);
}
}

みたいにするの?
だったら自動生成機能いみないやん・・・
0862デフォルトの名無しさん2011/10/20(木) 17:41:57.24
>>861
バカ
0863デフォルトの名無しさん2011/10/20(木) 17:44:20.87
釣りだろ……
マジなら恐怖すら感じるわ
0864デフォルトの名無しさん2011/10/20(木) 17:44:24.12
そういうテンプレを作ればいいだけじゃん。テンプレ作るの簡単だよ。
0865デフォルトの名無しさん2011/10/20(木) 17:46:54.03
Invokeって、デバッグ中と実際のexeでは随分挙動が違うよね?
デバッグ中は変なエラーが出てるのに、exeでは出ない。
そういうもんなの?
0866デフォルトの名無しさん2011/10/20(木) 17:56:12.72
ちょっと不安になってきたから質問させてくれ
規模の大きなアプリケーションを作ったことないんだけど(プロの人なら1時間程で組めると思うもの)

Program.cs - エントリポイントと各クラスで共通しているもの(テンポラリファイルパスとかカレントディレクトリパス)を書く
Form1.cs - メインフォーム、各コントロールのイベントハンドラや外部から触らないといけないインスタンスを返すプロパティとか書く
Class1.cs - 文字列やファイル処理処理したり、Formから呼び出されるのを前提で書く

こんな感じでいつも書いてるんだけど、これでいいの?
0867デフォルトの名無しさん2011/10/20(木) 18:22:54.80
コード量によるけどFormの中に全部書いちゃうかも
好みだと思うよ

もう少し大きいなら分離する意味もあるだろうが
0868デフォルトの名無しさん2011/10/20(木) 18:35:25.35
>>867
こういう質問しちゃうようなひとは汎用的な自作クラスを持ってないはず
初めから機能別にクラス分けを学んでいった方がいい
0869デフォルトの名無しさん2011/10/20(木) 18:37:17.14
SoueceForgeにあるような比較的経験豊富な人が書いてそうなソースも、
エントリポイントはフォーム作ってるだけみたいなの多いけど、
ホントに親クラスでごちゃごちゃやるもんなの?

でもC#で飯食ってる人の方が正しいか・・・
0870デフォルトの名無しさん2011/10/20(木) 18:41:12.10
>>867
好みだけどそれはあまりにも酷い
0871デフォルトの名無しさん2011/10/20(木) 18:43:45.16
>>869
VSがそういう御作法だから
0872デフォルトの名無しさん2011/10/20(木) 18:48:44.35
>>869
ごちゃごちゃしないために親クラスで処理を仕分けするんだが?
フォームにごちゃごちゃ書きたいならそうしろよw

上級者があえてそうしているのは意図が違う
お前と一緒にするな
0873デフォルトの名無しさん2011/10/20(木) 18:50:41.10
上級者気取りの間違いだと思うけどなあ
0874デフォルトの名無しさん2011/10/20(木) 18:56:10.55
今は静的クラスが便利すぎるから、その辺の管理は静的クラスでやるのも手。
どこからでも呼び出せるから楽。
後からの変更で、状態を複数持つ必要性がでると、やっちまったぜ!感があるけどw
0875デフォルトの名無しさん2011/10/20(木) 19:00:03.25
静的クラスはコスパが悪い
できるだけやらない方がいい
0876デフォルトの名無しさん2011/10/20(木) 19:02:48.55
コスパってw
0877デフォルトの名無しさん2011/10/20(木) 19:17:11.82
(´・ω・`)
0878デフォルトの名無しさん2011/10/20(木) 19:24:29.26
そろそろボロが出てきたから去るわw
0879デフォルトの名無しさん2011/10/20(木) 19:28:04.87
去れ去れ
0880デフォルトの名無しさん2011/10/20(木) 19:28:27.91
コスパ最強のクラスを教えてください
0881デフォルトの名無しさん2011/10/20(木) 19:29:30.82
Class A{}
0882デフォルトの名無しさん2011/10/20(木) 19:29:46.60
一回作れば次からコスト0だなw
08838662011/10/20(木) 19:30:24.73
みんなありがとう。
>>868さんの言う通り汎用な自作クラスは持ってないんだよね

みんなが言ってる親クラスってMainメソッドがあるクラスのこと?
0884デフォルトの名無しさん2011/10/20(木) 19:32:25.01
静的なメソッドで静的なフィールドを処理すると、動作効率がいいんじゃなかったけ?
静的クラスは知らん。
0885デフォルトの名無しさん2011/10/20(木) 19:32:26.65
staticはほとんど使わない。

staticおじさん
0886デフォルトの名無しさん2011/10/20(木) 19:52:04.66
>>884
用途次第。場合によっては、参照局所性落とすだけ。

ということで、あんまりパフォーマンスに焦点あてて考えちゃダメで、
要件として、シングルトンであるべきかどうかで、静的にするかどうか決めなきゃダメ。
0887デフォルトの名無しさん2011/10/20(木) 19:52:50.18
テメェもstaticにしてやるぜ
0888デフォルトの名無しさん2011/10/20(木) 19:56:14.74
個人的にはシングルトンを静的であることで保証するやり方は何か違う気がする。
0889デフォルトの名無しさん2011/10/20(木) 19:59:45.80
静的ないたずら
0890デフォルトの名無しさん2011/10/20(木) 20:04:17.25
ここがデザインパターンスレですか?
0891デフォルトの名無しさん2011/10/20(木) 20:05:58.88
staticの使い分けがよくワカンネ。
誰か教えてケロ
0892デフォルトの名無しさん2011/10/20(木) 20:11:06.50
お前らイエス・キリストは韓国人だって知ってたか?

497:<丶`∀´>(´・ω・`)(`ハ´  )さんsage2011/03/01(火) 23:33:52.34 ID:oiOm2MzJ
ttp://www.ltchurch.com/main/ltc0406/35199/page/files/attach/images/529/199/035/%EC%98%88%EC%88%98%EC%9D%98%ED%83%84%EC%83%9D.jpg
ttp://www.ltchurch.com/main/ltc0406/35199/page/files/attach/images/529/199/035/%EC%9A%94%ED%95%9C%EC%84%B8%EB%A1%80%EB%B0%9B%EC%9D%8C.jpg
ttp://www.ltchurch.com/main/ltc0406/35199/page/files/attach/images/529/199/035/%ED%94%BC%EB%94%A9%EC%98%A4%EC%B2%9C.jpg
ttp://www.ltchurch.com/main/ltc0406/35199/page/files/attach/images/529/199/035/%EC%8B%AD%EC%9E%90%EA%B0%80%EC%A7%80%EA%B3%A0.jpg
ttp://www.ltchurch.com/main/ltc0406/35199/page/files/attach/images/529/199/035/%EB%AA%BB%EB%B0%95%EC%8B%AD%EC%9E%90.jpg
ttp://www.ltchurch.com/main/ltc0406/35199/page/files/attach/images/529/199/035/%EC%8A%B9%EC%B2%9C.jpg
0893デフォルトの名無しさん2011/10/20(木) 20:19:49.64
ネトウヨ王に、俺はなる!まで読んだ。
0894デフォルトの名無しさん2011/10/20(木) 20:28:13.34
WindowsForm アプリケーションを作成しています。
そこで、フォームの画面イメージを簡単に印刷できるようにしたいのですが可能でしょうか。
(カラーorモノクロ、かつ用紙の向きの縦横を選択できるようにしたいのでボタンを押したらプリントダイアログを出すようにしたい)

よろしくお願いします。
0895デフォルトの名無しさん2011/10/20(木) 20:30:02.16
いいえ、MonkeyMagicです
0896デフォルトの名無しさん2011/10/20(木) 20:44:46.33
>>891
FileとFileInfoの違いとか
ごめん、見当違いでしたね
0897デフォルトの名無しさん2011/10/20(木) 20:55:22.68
>>891
使い分けつうか大半のケースではstatic使わないでしょ
ゲームなんかでたくさんのオブジェクトの回収するのに共通の状態遷移を
通知したりするとものすごいコストになるかもしれないのでそういう場合は
staticで確保したエリアに次この状態ねってセットしてオブジェクトレベルで
処理させたりするけどなあ・・・
0898デフォルトの名無しさん2011/10/20(木) 20:59:44.11
まあ弾幕ゲーのような大量のオブジェクトを扱うロジックとかやると
必要と感じるかも?
0899デフォルトの名無しさん2011/10/20(木) 21:01:55.28
そんなのstatic使わなくても管理できるだろ
むしろstatic使ったほうがややこしいわ
0900デフォルトの名無しさん2011/10/20(木) 21:04:17.24
>>899
アニメーションパターンや弾幕の軌道その他の制御をするために
共通でみるカウンター

とかさ

1:nの当たり判定とかさ

一部はstaticであった方がいいケースが多い
0901デフォルトの名無しさん2011/10/20(木) 21:10:16.45
ゲーム全体で一つやステージごとに一つならいいんであって
別にstaticじゃなくてもいいでしょ
当たり判定でステージごとにstaticメンバを初期化するんなら
ステージオブジェクトに管理させたほうがスマート
0902デフォルトの名無しさん2011/10/20(木) 21:11:44.14
俺の例の否定はいらんよ
もっといいのがあるなら実例踏まえた代案だしてやれよ

日本人ってけなすのはやるけど提案はしないよな
0903デフォルトの名無しさん2011/10/20(木) 21:13:18.77
いろいろまとめたインスタンス渡すとか必要なものだけ渡すとか
DI使うとかいろいろあるよ
0904デフォルトの名無しさん2011/10/20(木) 21:22:08.76
俺はエラー・進行通知に静的クラス+静的イベントを使っているけどなぁ・・・。
静的メソッドを叩くとイベントが発動する奴。
気軽にどこでも呼べて、簡単なのなら十分だよ。
0905デフォルトの名無しさん2011/10/20(木) 21:24:53.98
ゲームはそれ自体ループさせてやるものなんだから
その中でstatic使うとか正気の沙汰とは思えないな
コスパ悪すぎる
0906デフォルトの名無しさん2011/10/20(木) 21:25:10.70
>>904
それいちいち全部-=しないとメモリリークするよ
0907デフォルトの名無しさん2011/10/20(木) 21:26:30.92
staticなんてたまに使うもので処理速度関係ない場合しか使わない
処理速度を必要とするループの中にstaticなんてありえないな
0908デフォルトの名無しさん2011/10/20(木) 21:31:31.49
char* hoge() {
static char ret[100];
strcpy(hoge, "hoge");
return ret;
}
0909デフォルトの名無しさん2011/10/20(木) 21:33:50.75
否定だけはいらないって否定するのなら改良ロジックも提案しろって
0910デフォルトの名無しさん2011/10/20(木) 21:35:37.00
インスタンス化しなくても問題無いメソッドをstaticにすること有るな
0911デフォルトの名無しさん2011/10/20(木) 21:52:52.20
staticは基本的に使うべきでないと思う。特にフラグ類。
状態を管理するクラスのインスタンスで管理すればいい。
0912デフォルトの名無しさん2011/10/20(木) 21:54:56.31
だからそのクラスのインスタンスを数千も作るオブジェクト全部に渡すのって話
0913デフォルトの名無しさん2011/10/20(木) 21:56:58.64
インスタンスの生成はstatic使う
0914デフォルトの名無しさん2011/10/20(木) 21:57:41.81
それくらい渡せよ
そんなとんでもなく大量に作って高速に処理するなら
それぞれのオブジェクトに振る舞い持たせたりしないでCのように作ればいい
0915デフォルトの名無しさん2011/10/20(木) 21:59:51.14
http://ja.wikipedia.org/wiki/Phalanger
0916デフォルトの名無しさん2011/10/20(木) 22:21:43.21
構造体使えばいいだけの話
0917デフォルトの名無しさん2011/10/21(金) 00:29:12.16
毎秒100回くらいSoket繋いだり閉じたりすると1分くらいでコケちゃうんですが、
何が悪いんでしょうか

sock.connect()
sock.send()
sock.recieve()
sock.close()
sock = null

してるだけです
netstatで見てもFIN_WAITもCLOSE_WAITもありません
TIME_WAITが何百個かある感じです
0918デフォルトの名無しさん2011/10/21(金) 00:31:04.27
disposeはないんだっけ?
0919デフォルトの名無しさん2011/10/21(金) 03:44:49.04
いまいち抽象的だがこの辺だろうか
http://msdn.microsoft.com/ja-jp/library/wahsac9k.aspx
http://msdn.microsoft.com/ja-jp/library/system.net.sockets.socket.lingerstate.aspx
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/debugging-tcp.html
0920デフォルトの名無しさん2011/10/21(金) 12:06:18.81
>>797
この原因やっとわかった
フォルダプロパティでインデックス検索にしているのが問題だった
ファイルを消しても前のファイルを参照しているようでそれで変になってた
あと、なぜか自分自身を参照設定に加えてたw
0921デフォルトの名無しさん2011/10/21(金) 12:11:37.56
>>917
ソケットの方じゃなくて、スレッド数多すぎてスタック用のメモリ不足で死んでるとかは?
recieve じゃなくて非同期版のメソッド使うとどう?
0922デフォルトの名無しさん2011/10/21(金) 17:36:56.13
staticってよく分からず素通りしてきたが、
改めて調べてみたら、「静的」と言うから分かりにくかったんだな。
「クラス変数」「クラスメソッド」って説明に出会って、やっと理解できたような気がする。
0923デフォルトの名無しさん2011/10/21(金) 17:51:50.90
インスタンスメンバの方が分かりにくくね
staticなんてMyClassクラスのMyStaticMethodなら
クラスとか関係なく単にMyClass.MyStaticMethodという名前の関数だと思えばいい
0924デフォルトの名無しさん2011/10/21(金) 17:58:36.70
staticって昔から効能はそれほどかわってないでしょ
関数が呼ばれる際前回呼ばれた際も考慮に入れて動く場合とかさ
0925デフォルトの名無しさん2011/10/21(金) 18:15:01.69
その昔、スタック変数を動的、グローバル変数やモジュール変数を静的
と呼び習わしていたころの名残り
0926デフォルトの名無しさん2011/10/21(金) 19:03:57.92
デリゲートと比べれば屁みたいなもん
0927デフォルトの名無しさん2011/10/21(金) 19:17:45.06
グローバル変数って何だっけ?一番ルートで宣言した変数だっけ?
C#でもそういう言い方するのかな?
C#でグローバル変数にはstatic付けるべき?
初心者?攻撃スマソ
0928デフォルトの名無しさん2011/10/21(金) 19:19:43.48
C#でグローバル変数はないんじゃないの?
0929デフォルトの名無しさん2011/10/21(金) 19:24:42.06
public staticな変数
0930デフォルトの名無しさん2011/10/21(金) 19:26:40.91
スコープの関係でどこに置くかもあるんじゃないの?
0931デフォルトの名無しさん2011/10/21(金) 19:47:03.41
コレクションにFindを実装したいんですが、どのインターフェイス継承したら使えますか?
0932デフォルトの名無しさん2011/10/21(金) 19:59:34.07
>>931
自分で実装しなくても、
using System.Linq; して、Where とか First とか FirstOrDefault で終わり。
0933デフォルトの名無しさん2011/10/21(金) 20:09:46.96
IEnumerable<T>って答えるべきなんじゃないの?
0934デフォルトの名無しさん2011/10/21(金) 20:16:18.64
そう答えるべきならそう答えればいいだろ
疑問形にしなくてよろしい
0935デフォルトの名無しさん2011/10/21(金) 20:21:50.77
なんだこいつ
0936デフォルトの名無しさん2011/10/21(金) 21:01:06.19
どこかのJavaのサイトに「staticはオブジェクト指向的には逆行するから、
なるべく使わないほうがいい」なんて書いてたが、
なんでもありのC#ではそんな野暮なこと言わないよな?
0937デフォルトの名無しさん2011/10/21(金) 21:02:42.58
拡張メソッドとラムダ式のお陰で、むしろstatic中心に回帰してしまった……。
0938デフォルトの名無しさん2011/10/21(金) 21:16:06.35
>>936
そういう教条的な問題じゃなくて、テストが面倒なんだよ
ダメなのは変化する状態をstaticフィールドに持たせることで、
それをしないなら静的メソッド使いまくっても全然構わない
0939デフォルトの名無しさん2011/10/21(金) 21:19:49.88
>>937
もともと、内部状態変更せず、かつ、public なメンバーにしかアクセスしないようなものは
OOP であっても static にすべきだったと思う。

問題になるのは、static 変数の状態をそこら中から書き換えること。
内部状態持たない、pure(同じ入力与えたら必ず同じ出力得る)な static メソッドは無害。
0940デフォルトの名無しさん2011/10/21(金) 21:24:14.29
メソッドにもconst付けれるようにしようぜ
0941デフォルトの名無しさん2011/10/21(金) 21:25:39.14
C#のラムダやデリゲートはあくまでオブジェクト指向の補助でしかない
基本的にはちゃんとオブジェクト指向で設計しないと
0942デフォルトの名無しさん2011/10/21(金) 21:29:32.27
C#は関数型を取り入れているというなら尚更staticフィールドを変更するのはいかん
オブジェクト指向より関数型の方がずっとそういうのに厳しい
0943デフォルトの名無しさん2011/10/21(金) 22:01:44.55
>>939
>public なメンバーにしかアクセスしないようなものは

ではなく、「メンバを使用しないメソッドの場合」 (=内部状態変更されない)ですよね。

実際、VS で メソッドスタブ作らせたり、リファクタで メソッドの抽出をすると
上記の場合には static が付与されたメソッドが生成されるし
FXCop でも そういうメソッドの場合 "static なメソッドに変更しましょう"という警告を出してくる。
ReShaerper や CodeRush もソレに倣ってるので 同様の注意勧告をしてくる。
0944デフォルトの名無しさん2011/10/21(金) 23:41:13.34
通信関係の処理で、

非同期関数を用意して
AsyncFunction( delegate() {
//hogehoge
});
みたいにするか
スレッドを用意して同期関数を呼ぶか で迷ってる

javascriptの経験から言うと前者で気持ち悪くないんだけど
C#だとスレッド用意するのが普通なの?
0945デフォルトの名無しさん2011/10/21(金) 23:49:17.78
前者が今風
Taskとか最近追加されたAPIはほとんど継続使うようになってる
次のバージョンのC#では非同期関数を同期関数のように呼べる機能が追加される
0946デフォルトの名無しさん2011/10/22(土) 00:32:11.29
>>943
それはもちろんのこと、追加で。

LINQ がらみの操作なんかがまさにそうだけど、
全部インターフェイスに対する静的メソッドで実装されてる。
ああいうのは、静的メソッド使うほうが向いてる。
0947デフォルトの名無しさん2011/10/22(土) 00:33:50.98
>>944
JavaScript 的な感覚で言うと、
Promise に相当するもの(Task クラス)を返すメソッド書いて、
こいつ使って継続処理するのが今後の主流。
0948デフォルトの名無しさん2011/10/22(土) 11:36:40.51
質問です。
ラベルのBackColorをTransparentにしたのに、
ラベルに隠れた部分が隠れたままです。
どうすればラベルの下が透けて見えるのでしょうか?
0949デフォルトの名無しさん2011/10/22(土) 11:43:07.24
Parentを下にあるコントロールに設定する
WinFormsの背景透過は無理矢理それっぽく見せてるだけで、どうしてもおかしくなるところはある
本当に透過させたいならWPFへ
0950デフォルトの名無しさん2011/10/22(土) 12:22:48.00
>>949
ありがとうございます。でも駄目だった。
Parent設定したほうのコントロールが消えちゃう。
やり方悪いのかな?コンテナつーのもよく分からないし・・・
重ならないように、デザイン考えたほうが速そうだwww
0951デフォルトの名無しさん2011/10/22(土) 14:12:25.85
winformならあなたの所望することはたぶん無理と思いますよ
winformそこまで考えられてないので
やるとすればgraphicsを駆使して自分で書くしかないかも

でどういうことをしようとしてたの?
0952デフォルトの名無しさん2011/10/22(土) 15:19:08.99
何をするかわからないのに無理とか言っちゃうおまえの脳みそが・・・w
0953デフォルトの名無しさん2011/10/22(土) 16:14:04.34
>>951
pictureBoxの画の上にラベルを重ねて動的に文字を出したかったんだけど、
画を隠さずフォントだけ重ねたかったんだけど。
WPF勉強してみるかなあ。
WPFってデザイナ部分がXAMLになっただけ?
C#のプログラム的にはWindowsフォームと同じですか?
0954デフォルトの名無しさん2011/10/22(土) 16:21:50.87
これをConsoleじゃなくて、System.Windows.Forms.Textbox.Textに書きたいんですが
http://ideone.com/XWFmK

これそのまま移植した感じで大丈夫でしょうか
それともStrategyがFormクラスから直接見えるのは不味いですか?
0955デフォルトの名無しさん2011/10/22(土) 16:24:54.66
>>953
それならPaintで画像に文字だけ書くことをやるだけで十分じゃね?
まぁ、WPFの方がスマートに出来るけど。

WPFはレイアウトの仕方の考え方など様々な考え方が違うから気をつけて。
なれると、Windowsフォームで作りたくなくなるよ。Windowsフォームは自由度が低いので。
0956デフォルトの名無しさん2011/10/22(土) 16:24:59.63
>>953
GUI周りはかなり違う
pictureboxならなんとかなるかも
0957デフォルトの名無しさん2011/10/22(土) 16:26:30.76
>>954
何がしたいのかよく分からん設計
AddedLogかMethodのどっちかだけでよくね
イベント使うならストラテジの差し替えは要らんし
0958デフォルトの名無しさん2011/10/22(土) 16:47:11.70
>>953
どうぞ
http://ideone.com/C6yNB
0959デフォルトの名無しさん2011/10/22(土) 16:47:18.36
>>954
Textbox.Textに書きに行くのはいいけれど、たぶんやりたいはずの、
異なるスレッドからアクセスだと、動かなくなる。
こんな感じするといい。

TaskScheduler UISyncContext = TaskScheduler.FromCurrentSynchronizationContext();

void AddMessage(string text)
{
Task reportTask = Task.Factory.StartNew(() =>
{
textBox2.Text += text;
},
CancellationToken.None,
TaskCreationOptions.None,
UISyncContext);
reportTask.Wait();
}

0960デフォルトの名無しさん2011/10/22(土) 18:16:35.12
ちょっと宣伝するよー
http://studiokingyo.fc2web.com/
0961デフォルトの名無しさん2011/10/22(土) 19:09:04.80
コピペマン参上!まで読んだ。
0962デフォルトの名無しさん2011/10/22(土) 20:06:55.27
C#関係ないし・・・
0963デフォルトの名無しさん2011/10/22(土) 21:57:55.89
正規表現について質問します
C#の正規表現を使うには
Regex r = new Regex(@"正規表現");
Match m = r.Match(検索対象);
という風にインスタンス化してヒットさせる方法と
Match m = Regex.Match(検索対象, @"正規表現");
と2つあるみたいなんですが、
前者と後者の違いってなんでしょう?スタティックであるかないかだけですか?
0964デフォルトの名無しさん2011/10/22(土) 22:03:45.17
>>963
http://smdn.jp/programming/netfx/regex/1_operations/
0965デフォルトの名無しさん2011/10/22(土) 23:46:49.12
>>963
正規表現って、与えられたパターン文字列をコンパイルして、
内部的な状態遷移マシンに変換してるんだけど、
インスタンスだとそのコンパイルは1回きり(インスタンスを保持し続ける限り)だけど、
static な方だと毎回コンパイル必要になるんじゃないかな。
内部的にキャッシュとかしてくれてるかもしれないけども。
0966デフォルトの名無しさん2011/10/23(日) 01:49:13.28
>>953
http://dobon.net/vb/dotnet/control/labelonpicturebox.html
の方法で重ねられないの?
デザイナだとpictureboxには子コントロールを追加できない
直接コード書かないと
0967デフォルトの名無しさん2011/10/23(日) 03:26:11.30
>>953
普通にできるじゃん

http://www.dotup.org/uploda/www.dotup.org2171289.png
http://www.dotup.org/uploda/www.dotup.org2171290.png
0968デフォルトの名無しさん2011/10/23(日) 10:53:41.65
画像のチョイスが渋い
0969デフォルトの名無しさん2011/10/23(日) 11:31:38.54
>>967
2010 Expressなんだけど、ドキュメントアウトラインってどうやって表示するの?
表示−その他のウィンドウ にないし、カスタマイズでも見当たらない
0970デフォルトの名無しさん2011/10/23(日) 12:20:57.50
>>966
ほう
そんなのでいいのか

>>967
後だしよくない
0971デフォルトの名無しさん2011/10/23(日) 13:12:52.95
センスないやつはほんとセンスないよな
何年経ってもくっそみたいなUIwwww
0972デフォルトの名無しさん2011/10/23(日) 13:16:23.11
WinFormsは見た目にこだわらず一切余計なことしないのが一番綺麗だよね
背景に画像入れたりしたときの醜さといったら
0973デフォルトの名無しさん2011/10/23(日) 13:20:45.97
美的感覚も重要だよな
ホームページとかで背景に鮮やかな柄にしている奴とか
文字がチカチカして見えにくい
色盲なのかといいたくなる
0974デフォルトの名無しさん2011/10/23(日) 13:23:41.59
WinFormsって背景色ちょっと変えただけでひっどい見た目になるよな
0975デフォルトの名無しさん2011/10/23(日) 15:39:26.46
なんだってそうだろ
0976デフォルトの名無しさん2011/10/23(日) 15:46:38.36
お前らの見た目も性格もひっどいよな
0977デフォルトの名無しさん2011/10/23(日) 18:00:07.22
おうよ
0978デフォルトの名無しさん2011/10/23(日) 18:43:12.47
WPFはスマホのUI真似ればいい感じ。
0979デフォルトの名無しさん2011/10/23(日) 19:10:31.33
WebBrowserコントロールについて疑問なんですが、これってInternetExplorerベースで動いてるの?
もしかしてInternetExplorerが入ってないと動かないの?

0980デフォルトの名無しさん2011/10/23(日) 19:14:12.03
IEというかTrident
Monoで動かすってんでもない限り入ってないことはないだろ
0981デフォルトの名無しさん2011/10/23(日) 19:22:42.90
ふらっとC#,C♯,C#(初心者用) Part80
http://hibari.2ch.net/test/read.cgi/tech/1319365302/
0982デフォルトの名無しさん2011/10/23(日) 19:45:03.67
>>978
そうだな糞重いのもアイコンでっかくして
一度に表示するデータ量を減らせば
重いのも誤魔化せるな

逆に数万行のデータを表示するようなアプリはこれでは無理
0983デフォルトの名無しさん2011/10/23(日) 19:48:15.86
数万行のデータを一度に目に入れられる能力者なんてこの世におりませんので本来は気にしなくていい部分
Googleの検索に何件表示されてる?
プレゼンする時に何行データ出す?
よ〜く考えた方がいいぞ

それでも「10万件表示できること」って押し通されたこともあるが
0984デフォルトの名無しさん2011/10/23(日) 19:48:32.19
>>982
数万行表示させるのは、設計的に問題有るだろw
0985デフォルトの名無しさん2011/10/23(日) 19:51:26.99
自分用だけどマルチディスプレイで表は平面ではなく奥行きのある立体で表示しているから
余裕で10万超えてるわ
0986デフォルトの名無しさん2011/10/23(日) 19:57:49.78
グラフは縮小すりゃいいだけだし比較にならねえな
0987デフォルトの名無しさん2011/10/23(日) 20:02:22.25
アスペだからリストやグリッドの話をしているって分からないの…。
0988デフォルトの名無しさん2011/10/23(日) 21:28:26.07
>>981
おつうめ
0989デフォルトの名無しさん2011/10/23(日) 22:49:28.02
>>969
お金払えば使えるよ^^
0990デフォルトの名無しさん2011/10/23(日) 22:50:39.00
最近の学生は金払わんでも使えるんだよなあ
0991デフォルトの名無しさん2011/10/23(日) 22:51:24.21
if (_socket == null || ar == null)
return;
else
len = this._socket.EndReceive(ar);

これでぬるぽ言われるんだけど、どうやったら回避できますか、
アドバイスください@ReceiveCallbackメソッドです
0992デフォルトの名無しさん2011/10/23(日) 22:52:30.84
学生ならVL版借りてきてインスコすりゃあるてぃめっとだと思うんです
0993デフォルトの名無しさん2011/10/23(日) 22:53:08.72
>>991
orだと両方チェックするから右側がnullの時アクセスできない代物なんじゃない?
普通は&&すべき
0994デフォルトの名無しさん2011/10/23(日) 23:00:02.02
>>993
ちょっと何言ってるか分からない

>>991
ブレイクポイントで止めて自動変数ウィンドウ辺りで何がnullなのか確認
0995デフォルトの名無しさん2011/10/23(日) 23:01:57.01
>>994
Close()した後なので_soketがnullなんですが、
_soket == nullがfalseを返すのかどうなのか、
else側が実行されちゃうんです
0996デフォルトの名無しさん2011/10/23(日) 23:04:52.40
if (list == null || list.Count == 0) return; これだとエラー
if (list == null && list.Count == 0l) return; これだとノーエラー
0997デフォルトの名無しさん2011/10/23(日) 23:08:34.66
Close() で null になるのを確認してる?
中身がなくなるのと、参照元変数が初期化されるのとは別のお話じゃなかったっけ。
それなら Close() というかインスタンスを破棄した後で自分で null 入れなきゃならないんだけど。
0998デフォルトの名無しさん2011/10/23(日) 23:08:38.51
||を|にすればおk
0999デフォルトの名無しさん2011/10/23(日) 23:18:24.64
>>996
今回は二つ目の条件判断で一つ目で判断したオブジェクトのメンバ見てるわけじゃないだろ…
1000デフォルトの名無しさん2011/10/23(日) 23:20:03.51
||と&&使いこなせないやつはif文分けて書け
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。