C#, C♯, C#相談室 Part49

このエントリーをはてなブックマークに追加
1名無しぃ♯
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part48
http://pc11.2ch.net/test/read.cgi/tech/1219481054/


Visual C# 2008 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/

その他テンプレ>>2-5くらい
2名無しぃ♯:2008/10/23(木) 18:38:33
関連スレ

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

Visual Studio 2008 Part 12
http://pc11.2ch.net/test/read.cgi/tech/1221265969/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1211453941/

【VB.NET】LINQ友の会【C#, C♯, C#】
http://pc11.2ch.net/test/read.cgi/tech/1202568694/
3名無しぃ♯:2008/10/23(木) 18:39:29
参考リンク

MSDN2
ttp://msdn2.microsoft.com/ja-jp/library/default.aspx

@IT Insider.NET
ttp://www.atmarkit.co.jp/fdotnet/index.html
Insider.NET 会議室 ディレクトリ
ttp://www.atmarkit.co.jp/fdotnet/index/bbs/index.html
MSDN フォーラム
ttp://forums.microsoft.com/MSDN-JA/default.aspx?SiteID=7

pinvoke.net: the interop wiki!
ttp://pinvoke.net/
宇宙仮面の C# プログラミング / C# Programming
ttp://ukamen.hp.infoseek.co.jp/
WisdomSoft C#入門
ttp://wisdom.sakura.ne.jp/programming/cs/index.html
WisdomSoft Microsoft .NET入門
ttp://black.sakura.ne.jp/~third/system/msnet/msnet.html
どっとねっとふぁん
ttp://dotnetfan.org/
緑のバイク 初めてのC# 〜 覚え書き 〜
ttp://homepage3.nifty.com/midori_no_bike/CS/
どぼん!の .NET Tips
ttp://dobon.net/vb/dotnet/
4デフォルトの名無しさん:2008/10/23(木) 18:42:03
Part50を前に関連スレとか追加したりしてみた
他にもあったらよろ
いらんとなったら次スレ立てるとき適当に消しといてくれ
5デフォルトの名無しさん:2008/10/23(木) 18:47:17
このスレがいらなくね?なんで立てたの?空気よんで誰も立てないようにしてたのに
6デフォルトの名無しさん:2008/10/23(木) 18:48:16
>>4
お前がいらな
7デフォルトの名無しさん:2008/10/23(木) 18:53:34
>>4
乙です
8デフォルトの名無しさん:2008/10/23(木) 18:58:29
たいした知識量もないのに全知全能にでもなっている人が居るからな
このスレに限らず暴れまわっているみたいだが・・・
昔はこの板はもっと活性的だったんだか、こういう人がいるとバカバカしくなってみんな何処かへ行ってしまった。
ある種の中二病なんだろうが、いい加減治療されろよと。
9デフォルトの名無しさん:2008/10/23(木) 19:00:55
C#にかぎらないけどさ、スレ複数に分けるなんて意味ないよね。
どうせ答える人間は同じなのに。
10デフォルトの名無しさん:2008/10/23(木) 19:40:34
>>1
11デフォルトの名無しさん:2008/10/23(木) 20:21:26
ところで、C#と他の言語でマルチリンガルしてる人って、どういう組み合わせが多いのかな?
似て非なるJavaと二刀流、VBとの二刀流、いやいやC/C++も合わせてちゃんぽん状態?

どうしてもDelphiだけは咀嚼に難儀して飲み込めない俺。
12デフォルトの名無しさん:2008/10/23(木) 20:31:43
C#できるならVBとJavaはやらないともったいない
13デフォルトの名無しさん:2008/10/23(木) 20:43:22
C++からC#に来たが、Javaは体が受け付けなかった。
14デフォルトの名無しさん:2008/10/23(木) 22:53:34
Javaは言語体系も記述も似ているからC#より先に学んだけど、インターフェースのところが
スッキリしなく、あまり使いたくなくなった。
それでASP.NETやVBを弄ってたら.NETつながりでメインをC#に転向しちゃった。

昔はFortran、アセンブラ、C言語を骨の髄まで極めたけど、C++の言語仕様はイヤだったな。
C言語以上に人によるコーディングスタイルとポリシーと俺様スタイルが多くて疲れた。。。
15デフォルトの名無しさん:2008/10/24(金) 00:15:58
>>13
C++→C# or Javaだと
仮想関数の扱いがJavaは全く違うもんな…
16デフォルトの名無しさん:2008/10/24(金) 00:44:52
VB→C++→Delphi→C#と来た
C++は3回くらいで辞めた
DelphiとC#って何か似てる
17デフォルトの名無しさん:2008/10/24(金) 00:58:50
C++ → C# に来た。
趣味で書くコードは全部 C# になったけど、
仕事は C++ が多い。

Java というか、Sun のクソっぷりに嫌気さしてたところに C# が出て、
一気にそっちに移った。
18デフォルトの名無しさん:2008/10/24(金) 03:44:13
C→VB→Java→C#
Cは用途が違いすぎる(俺的に)から比較できない。
Javaは、ちょろっと囓って拒絶反応起こした。
外資系エリートサラリーマン臭がする。
19デフォルトの名無しさん:2008/10/24(金) 03:59:38
覚えた順
C# -> C -> C++ -> Java -> Python -> PHP -> Perl
以前はJavaの仕事が多かったけど最近はC++をやってる
20デフォルトの名無しさん:2008/10/24(金) 10:31:32
業務はjavaとc++。
ちょっとしたツール作成でC#。
そういえば、Cはめっきり触らなくなったなぁ。
21デフォルトの名無しさん:2008/10/24(金) 17:56:28
俺の遍歴w

1985    1988  1990   1994  2005    2008
BASIC─COBOL┬─ C.─┬C++…Java┬C#─ 今ここ
          .├.ASM─┤       └VB─ …
          .└Fortran┘ …Delphi…

C++を使い始めた時点で迷走を始め、その時のプロジェクトを終えた後は
しばらくソフトウェアから遠ざかったてた。
Delphiは外資系の知育教材言語、Javaも外資の金融・証券系の知的好奇心教材に
感じてしまい放置プレーw
22デフォルトの名無しさん:2008/10/24(金) 20:40:02
>>16
設計者が一緒だからね。
C→Delphi→Java(すぐやめた)→C#だなあ
2321:2008/10/24(金) 20:51:50
>>22
昔はワケワカメだったDelphiコード、今の俺なら見て分かるかな。
24デフォルトの名無しさん:2008/10/24(金) 20:59:59
カミングアウト相談室はこちらですか?
25デフォルトの名無しさん:2008/10/24(金) 21:01:59
邪悪なBSDで邪悪なDephiを用いて邪悪な.NETアプリ
http://pc11.2ch.net/test/read.cgi/mac/1224839401/
消しゴムじゃないMONOを使ってみるスレ 2個目
http://pc11.2ch.net/test/read.cgi/tech/1100616350/
26デフォルトの名無しさん:2008/10/24(金) 21:26:20
コピペ君って馬鹿だな、まで読んだ。
27デフォルトの名無しさん:2008/10/24(金) 23:07:45
俺は
幼稚園->小学校->中学校->高校->大学->C#
28デフォルトの名無しさん:2008/10/25(土) 00:09:08
質問です。
クラス内で変数を宣言する場合、その初期化はどこで行うべきでしょうか?

Class Test
{
//変数
private List<int> _listInt = new List<int>();

}

とするべきなのか

Class Test
{
//変数
private List<int> _listInt = null;

public Test{
_listInt = new List<int>();
}
}

ググってみたのですが、いまいちよくわかりませんでした。
よろしくお願いいたします。
29デフォルトの名無しさん:2008/10/25(土) 00:16:15
どっちでもいいけどコンストラクタで代入するなら 宣言=null 書かない方が誤解されないと思う
30デフォルトの名無しさん:2008/10/25(土) 00:23:47
>>28
そのコードでどうなるかは知らんけど、コンストラクタ外で変数を初期化してる
似たようなコードを逆アセしたときは、変数がコンストラクタ内で初期化されてた。
コンストラクタが複数あっても全部の中で初期化されてた。
31デフォルトの名無しさん:2008/10/25(土) 00:26:53
おっと結論を書いてなかった。つまり分かりやすいところに書け。
外側に書いとけばコンストラクタが多くても安心。
32デフォルトの名無しさん:2008/10/25(土) 00:39:02
>>29-31
なるほど。
外側に書いておいた方が個人的にはわかりやすい(コンストラクタの行数が減ってくれる)ので、外側で初期化しようと思います。
皆様ありがとうございました。
33デフォルトの名無しさん:2008/10/25(土) 08:50:13
Windowsのようにアイコンをダブルクリックで実行、ドラッグできるようなコントロールってありますか?

フォーム上に位置などの情報を持ったアイコンオブジェクトが点在し、
例えば、あるアイコンをクリックすると、フォームの右側にある数値などのプロパティ表示部がそのアイコンの情報になり、
それを変更することによってアイコンオブジェクトの操作ができると。
アイコンはマウスによって視覚的に操作できる、みたいなツールを作ろうとしているのでが、
指針を教えていただければ幸いです。表現がわかりにくくてすいません。
34デフォルトの名無しさん:2008/10/25(土) 09:20:15
> Windowsのようにアイコンをダブルクリックで実行、ドラッグできるようなコントロールってありますか?

殆どのコントロールで出来ます
35デフォルトの名無しさん:2008/10/25(土) 09:23:25
>>34
開発時ではなくアプリケーション実行時です。
36デフォルトの名無しさん:2008/10/25(土) 10:27:19
できます
37デフォルトの名無しさん:2008/10/25(土) 10:34:30
アイデアプロセッサみたいなプログラムだろ?
38デフォルトの名無しさん:2008/10/25(土) 11:17:05
>>37
たぶんそうであります。
39デフォルトの名無しさん:2008/10/25(土) 11:18:53
そういうのは自分で管理・描画するもんだよ
40デフォルトの名無しさん:2008/10/25(土) 11:21:36
http://images.google.co.jp/images?q=アイデアプロセッサ
↑こういうのですね
グラフィカルでダイナミックなUIか
.NETのFormはそういうの向いてない、のかな
41デフォルトの名無しさん:2008/10/25(土) 11:22:23
何使っても面倒
コントロールに頼らずに,一枚のキャンバスに全部自前で描画する
42デフォルトの名無しさん:2008/10/25(土) 11:22:48
Flash
43デフォルトの名無しさん:2008/10/25(土) 11:23:53
WPF使えば割と簡単に綺麗にできるかも
44デフォルトの名無しさん:2008/10/25(土) 12:00:41
Managed DirectX 2.0ですね!わかります!
45デフォルトの名無しさん:2008/10/25(土) 12:23:03
>>44
気持ち悪い奴。
わかります、だとさw
こういう奴のアイデンティティーって本気で「2チャンネラー」なんじゃないの?
46デフォルトの名無しさん:2008/10/25(土) 12:35:40
で?
47デフォルトの名無しさん:2008/10/25(土) 12:42:18
C→C++→C#

javaもやるかな
48デフォルトの名無しさん:2008/10/25(土) 12:48:08
>>47
誤爆乙
49デフォルトの名無しさん:2008/10/25(土) 13:26:59
>>45
おまえ生粋のねらーだな
俺は釣られない「クマー」
50デフォルトの名無しさん:2008/10/25(土) 13:39:33
誤爆というより話題に乗り遅れただけだな
51デフォルトの名無しさん:2008/10/25(土) 15:36:42
大半を占めるVBから移動したなんちゃってC#厨が出てこなかったな
52デフォルトの名無しさん:2008/10/25(土) 16:13:52
SQLite使ってるんだが、using (SQLiteConnection
ってな感じでnamespace作って、
connection取れなかった時に〜と思って、try-catchも入れたら、
入れ子が大変なことになってしまうんだが、
そんなこと気にしてるの俺だけ?
C#+SQLiteのサンプル公開してるサイトとかでは、
そこらへんのエラー処理をやってるの見たこと無いし、
connection取れないハズがない的性善説がデフォ?
53デフォルトの名無しさん:2008/10/25(土) 16:25:49
接続できなかった場合にユーザに通知するとか何かやることがあるならキャッチすればいいが、
接続できなくてどうしようもない場合はキャッチする必要がある。
5453:2008/10/25(土) 16:26:23
s/必要がある。$/必要がない。/
55デフォルトの名無しさん:2008/10/25(土) 17:09:12
>>16の「3回」って何が3回なんだろう・・・
56デフォルトの名無しさん:2008/10/25(土) 17:19:53
>>53
俺専用アプリだから通知不要といえば不要なんだが、
通知するのが当たり前と思ってたから、なんか気持ち悪くてな。
かといって入れ子が激しいのも気持ち悪いし。
入れ子回避ならusing使わなきゃいいけど、それだとC#の便利さが損なわれるし。
悩ましいなぁ。
57デフォルトの名無しさん:2008/10/25(土) 17:20:10
ちなみに、それは namespace ではない。
58モモ:2008/10/25(土) 17:21:08
static class Util {
  public static string ToHex(byte value)
  {
     return String.Format("0x{0:X2}", value);
  }
  public static string ToHex(ushort value)
  {
     return String.Format("0x{0:X4}", value);
  }
  public static void TextSetHex(TextBox text, byte value)
  {
    text.Text = ToHex(value);
  }
  public static void TextSetHex(TextBox text, ushort value)
  {
    text.Text = ToHex(value);
  }
}

この TextSetHex メソッドをテンプレート化することはできないでしょうか?
59デフォルトの名無しさん:2008/10/25(土) 17:28:25
ジェネリックのことか?
静的には無理でしょ
if (typeof(T)==typeof(byte)) else if (
みたいなのなら可能だけど記述量が増えるだけ
60デフォルトの名無しさん:2008/10/25(土) 17:39:53
いやis使えばいいのか
if (value is byte) text.Text = ToHex((byte)value);
else if (value is ushort) text.Text = ToHex((ushort)value);
61デフォルトの名無しさん:2008/10/25(土) 17:40:51
>>52
SQLiteでもDBに接続できないなんてことは普通にあるから、try-catchで囲むべき
サンプルは例外処理を入れるとごちゃごちゃするので省いているだけだろう

もしかしたらSQLiteっていうより例外処理一般の書き方の問題かもしれない
62デフォルトの名無しさん:2008/10/25(土) 18:07:33
catchで囲んで何するの?
63デフォルトの名無しさん:2008/10/25(土) 19:27:09
>>57
なにぃぃぃ!ディレクティブ?

>>61
そうなのか>SQLiteでもDBに接続できない
じゃあ実装することにするよ。
つっても、connection, command, transactionの3ヶ所で必要ってのは、
悲しくなるな・・・

>>62
connectionが取れるまで頑張る
64デフォルトの名無しさん:2008/10/25(土) 19:46:13
>>61は死ね
6561:2008/10/25(土) 20:00:37
>>64
俺は死んでも構わないから
困ってる>>63に適切なレスをしてやってくれ
66デフォルトの名無しさん:2008/10/25(土) 20:50:19
あれ、もしかして、try-catchで括るのは、
一番外側だけでいいのかも?かも?
で、connection以下の処理を別のメソッドに分ければスキーリ?
67デフォルトの名無しさん:2008/10/25(土) 21:10:27
ふつう、try-catch って、Main内の一番外側に1つ書けば済むもんだろ?
一元化できるし。
68デフォルトの名無しさん:2008/10/25(土) 21:21:33
>>67
普通ではないな
69デフォルトの名無しさん:2008/10/25(土) 21:32:44
投げっぱなしの例外をまとめて処理できるイベントがあるじゃん。
それを使うのが普通だよな。
70デフォルトの名無しさん:2008/10/25(土) 21:55:04
まったくリカバーしない場合はそれでいいよな
71デフォルトの名無しさん:2008/10/25(土) 22:09:59
おまいらネタとはいえ恐ろしいこと言うな
72デフォルトの名無しさん:2008/10/25(土) 22:46:13
文字列を辞書順で比較する方法を探しています。
なにか簡単な方法があれば教えてください。
よろしくお願いいたします。
73デフォルトの名無しさん:2008/10/25(土) 22:53:03
何語辞書?
74デフォルトの名無しさん:2008/10/25(土) 23:14:06
>>73
いえ、単純に英語のアルファベット順です
abcとabxを比較したらabcが辞書的に先に出ることを判定したいです
75デフォルトの名無しさん:2008/10/25(土) 23:25:05
このサンプルでも見てみたら
http://msdn.microsoft.com/ja-jp/library/system.globalization.compareoptions(VS.80).aspx
76デフォルトの名無しさん:2008/10/25(土) 23:33:19
>>75
ありがとうございました
かなり参考になりそうです
77モモ:2008/10/25(土) 23:33:28
フォームのサイズを変更できなくするには、どうしたらよいでしょうか?
78モモ:2008/10/25(土) 23:37:12
>>77
解決しました。FormBorderStyle = FixedSingle ですね。
79デフォルトの名無しさん:2008/10/25(土) 23:39:39
コテハンで質問する意味がわからない
やめろとは言わないけど,うざがられる可能性があるだけで何のメリットもないだろ
80デフォルトの名無しさん:2008/10/25(土) 23:58:57
ギャル語辞書です!
81デフォルトの名無しさん:2008/10/26(日) 03:13:04
>>58-60
こんな感じかねぇ

static class Util {
  private static void ValidateTypeParameter<T>(T dummy) {
    var typeCode = Type.GetTypeCode(typeof(T));
    switch(typeCode) {
      case TypeCode.SByte: case TypeCode.Byte: case TypeCode.Int16: case TypeCode.UInt16:
      case TypeCode.Int32: case TypeCode.UInt32: case TypeCode.Int64: case TypeCode.UInt64:
        return;
      default:
        throw new NotSupportedException();
    }
  }

  public static string ToHexString<T>(T value) where T : struct {
    ValidateTypeParameter(value);

    string fmt = "0x{0:X" + Marshal.SizeOf(value) * 2+ "}";
    return String.Format(fmt, value);
  }
}
82デフォルトの名無しさん:2008/10/26(日) 05:20:47
あほだな
83デフォルトの名無しさん:2008/10/26(日) 05:48:29
GUIをC#で作って、エンジン部分をCで作ったdllで呼んだ場合
全部C#で作った場合よりも一般に高速になりますか?
84デフォルトの名無しさん:2008/10/26(日) 06:33:10
一般ってなんだよ
85デフォルトの名無しさん:2008/10/26(日) 06:40:53
一般には速くはならないだろ。
86デフォルトの名無しさん:2008/10/26(日) 08:23:04
頻繁に呼ぶと確実に遅くなるね
87デフォルトの名無しさん:2008/10/26(日) 08:31:27
>>86
速くはならんが、頻繁によんでも遅くはならんよ。そこがJITの不思議。
88デフォルトの名無しさん:2008/10/26(日) 08:36:36
よっぽどくだらない関数をループの中とかで呼びまくったら遅くなるよ
89デフォルトの名無しさん:2008/10/26(日) 09:56:49
>>87

interopのマーシャリングのオーバーヘッドとかって 遅くなる要因にはならないのかな

.netが遅いのは起動時とwindows formsのGUIで、単なるロジック計算なら
普通に書いてもネイティブの90%ぐらいは出るって読んだことがあるが。
90デフォルトの名無しさん:2008/10/26(日) 10:02:46
よっぽど時間のかかる数値計算でもやるんだろうなw
91デフォルトの名無しさん:2008/10/26(日) 10:10:50
関数は初回実行時にコンパイルされるけど
二回目以降はコンパイル済みのコードを呼ぶので早いぞ

・・・サーバ向きだな
92デフォルトの名無しさん:2008/10/26(日) 11:30:10
ああすまんCのDLLとあるね。それなら遅くなる。
遅くならないといったのはCLIのDLLを読んだ場合。
93デフォルトの名無しさん:2008/10/26(日) 11:36:54
CLIからネイティブコードをよんだ場合そこで最適化が中断されるから遅くなる。
マネージド・アンマネージド間の呼び出しのコストも大きい。
さらにデフォルトのP/Invokeの場合呼出しごとにアンマネージド呼び出しのセキュリティチェックも入る。

一方CLIのアセンブリ同士ならたとえDLLで分離されていてもJITでDLLを越えて最適化される。
94デフォルトの名無しさん:2008/10/26(日) 13:02:06
結論としてはCのDLLを呼ぶと遅くなるということですね
95デフォルトの名無しさん:2008/10/26(日) 15:31:45
黙れアホ
96デフォルトの名無しさん:2008/10/26(日) 16:46:09
と、申すものです。
97デフォルトの名無しさん:2008/10/26(日) 16:56:31
__declspecってなんて読むの?
98デフォルトの名無しさん:2008/10/26(日) 17:05:38
ダブルアンダバデクラスペク
99デフォルトの名無しさん:2008/10/26(日) 17:07:17
でっくるすぺっく
100デフォルトの名無しさん:2008/10/26(日) 17:17:07
へぇー
元々の意味は何なの?
101デフォルトの名無しさん:2008/10/26(日) 17:46:49
秦の時代まで遡ってお話しいたそう
そう、あれは・・・
102デフォルトの名無しさん:2008/10/26(日) 18:45:00
「'decl'aration 'spec'ifier」かなぁ。

正確なことは決めた中の人に聞いてという感じ
103デフォルトの名無しさん:2008/10/26(日) 18:50:15
declaration specifiers
104モモ:2008/10/26(日) 19:40:52
あのね、C# 2.0 の partial class を使っているんだけど、
デフォルトで作られる Form1 というフォームに、さらに、
Form1.Hoge.cs というファイルを作成して、
partial class Form1 と書いたらね、うまく動いたんだけど、
それをダブルクリックすると、空の正方形のフォームが表示されるの。
これって変くないですか?
105デフォルトの名無しさん:2008/10/26(日) 19:46:06
変なのはおまえだ↑
106デフォルトの名無しさん:2008/10/26(日) 19:46:09
ピンクの熊?
107デフォルトの名無しさん:2008/10/26(日) 19:46:17
MSに言ってください
108デフォルトの名無しさん:2008/10/26(日) 19:48:19
いいことをおもいついた。メインフォームのダブルクリックイベントで
Form1.Hoge.csを閉じるようにすればいい。
109デフォルトの名無しさん:2008/10/26(日) 19:52:41
感じ的はこんなかんじだな。
Form1のダブルクリックイベントのメソッド内で
if(Form1.Hoge.csが開いていたら)
Form1.Hoge.csをとじる。

Form1.Hoge.csって言う名前がへんだなあ。変なフォームの作り方とかしてないか?
110デフォルトの名無しさん:2008/10/26(日) 19:55:37
Form1.Hoge.csを開いたらForm1.csやForm1.Designer.csの内容にかかわらず
デザイナに初期状態のフォームが表示されるんだろ
うちでもそうなった
111デフォルトの名無しさん:2008/10/26(日) 22:46:35
別の名前空間内に定義した列挙体を使うには、どーしたらいいですか?
112デフォルトの名無しさん:2008/10/26(日) 22:54:23
using 別の名前空間;
とするか、
使う時に、列挙体の前にその名前空間を付けてやればいいんじゃない?
113デフォルトの名無しさん:2008/10/26(日) 23:22:05
>>112
Σ(´ω`*)インスタンス化ばっか気にしてましたorz
無事usingで出てきやした。ありがとん。
114デフォルトの名無しさん:2008/10/27(月) 18:22:36
msdn2おもてえええええええええ
115デフォルトの名無しさん:2008/10/27(月) 18:36:03
AdBlock+で統計業者のリソースGETしないようにすると
場合によっては早くなるかもしれないぞ
116デフォルトの名無しさん:2008/10/27(月) 22:50:43
すみません。DataSetオブジェクトだかDataGridオブジェクトをフォームに貼り付けたとき
MyDocumentフォルダのAccessのmdbファイルをプロジェクト内にコピーしますか?っていわれまして
コピーしたんですが、プロジェクトのフォルダとプロジェクトのフォルダ\bin\Debugの両方にコピーされています。
これは、正式にインストーラを作る段階で問題にならなく、うまくインストーラが作ってくれるのでしょうか?
117デフォルトの名無しさん:2008/10/27(月) 22:53:27
自分でやってから言えやドアホが
118デフォルトの名無しさん:2008/10/28(火) 17:25:52
本格的にC#はじめたんだけど、慣れないことが多い
Chr関数使えなかったり、違うクラスのコントロールにアクセスするのに
プロテクションレベルがあったり、VBからだと初学くらいの気持ちじゃないとだめだあ
119デフォルトの名無しさん:2008/10/28(火) 17:39:04
その辺はCよりだからなあ
120デフォルトの名無しさん:2008/10/28(火) 17:39:26
C/C++より、か
121デフォルトの名無しさん:2008/10/28(火) 17:42:14
CとかC++とかJavaから移民ならすんなり入れるんだろうけど
VBからだとめんどくさいだけであんまりメリットないかな?
122デフォルトの名無しさん:2008/10/28(火) 17:47:13
意味不明な理屈だな
123デフォルトの名無しさん:2008/10/28(火) 18:52:48
VBやったことない人には、あのゆるさはわからないかも
124デフォルトの名無しさん:2008/10/28(火) 19:17:15
>>118
わんくまの誰かもブログで書いてたけど、
そんな風に思うならそれは君がVBすらろくに使いこなせてなかったんだよきっと。
125118:2008/10/28(火) 19:20:12
>>124
もうちょっと詳しくお願いします
126デフォルトの名無しさん:2008/10/28(火) 19:23:00
127デフォルトの名無しさん:2008/10/28(火) 19:24:38
ttp://smdn.invisiblefulmoon.net/works/tools/Sylpheen/

ここのSylpheenとかソース公開してるけど、VBでもちゃんと
やればC#とそんなに変わらないんだなぁと思う。
128118:2008/10/28(火) 19:25:01
>>126
すみません。VBって書いてましたが正しくはVB.NETです。
VB6はやったことがありません。
129デフォルトの名無しさん:2008/10/28(火) 19:28:38
なら余計にそうだろw
130デフォルトの名無しさん:2008/10/28(火) 19:29:46
>>128
VB.NET から C# へ移行できない人たち に置き換えて読めばいいよ。
131デフォルトの名無しさん:2008/10/28(火) 19:33:33
VB.NETから始めたなら,勉強に使った本や先生が悪かったね
132118:2008/10/28(火) 19:34:14
別にVBすら使いこなせてないと思われるのはしょうがないですが
型変換の強制の有無や>>118みたいなことって使い方の違う道具であって
「VBでC#と同じ使い方をしないのは間違えてる」という主張はおかしいですよね?
.NETで困っているわけでもないですし、VBのゆるさは実感してるし。
133デフォルトの名無しさん:2008/10/28(火) 19:36:42
>>132
だから、もしVB.NETとC#の間にそんなに違和感を感じるのなら、
VB.NETもまともに使えてないんだって。間違いなく。

>「VBでC#と同じ使い方をしないのは間違えてる」
むしろこう考えるべきだ。

134デフォルトの名無しさん:2008/10/28(火) 19:36:57
ちゃんと理解してるならそれでいいよ
わかってなくてなんとなく使ってなんとなく動いちゃってるのが問題
>>126で言われてるのはそういうことだろ
135118:2008/10/28(火) 19:39:08
>>133
ようするにVB.NETを使ってるのに型変換を強制しない人は
みんなVBすら使いこなせてないってことになるんですか?
136118:2008/10/28(火) 19:43:56
>>134
全くその通りだと思います。
>>126で言われてることと自分が感じたギャップは方向性が違うし
今まで気にしなかったけどVBプログラマに対する偏見や差別みたいなものを
ちょっと感じました。
「初学のつもりで」って書いたのが原因かもしれませんが。
137デフォルトの名無しさん:2008/10/28(火) 19:47:42
だからちゃんと理解してる奴が>>118みたいな事書くかよってw
そんなに人に承認されたいと思ってることが逆説的に君がダメな奴であることを
証明してるんじゃないかと俺は思うけど。
138デフォルトの名無しさん:2008/10/28(火) 19:48:22
まあMSも似たような見方なのは事実だけどね
VBのルーズさは,それが売りなんじゃなくて
どちらかというと分かってない人でも使えるようにするためだから
139118:2008/10/28(火) 19:53:00
>>138
どちらかというと暗黙の型変換はVB6移行組みのためじゃないでしょうか?
140デフォルトの名無しさん:2008/10/28(火) 19:54:04
VBの方が先にコード出てくるし慣れないのも仕方がない
141デフォルトの名無しさん:2008/10/28(火) 19:59:08
>>139
それは“何の”暗黙の型変換を言ってるんだ?
142デフォルトの名無しさん:2008/10/28(火) 20:02:45
初学者向けのVB.NETの情報ではVB固有の互換用関数の使用は慎むべきだよね
たいがい手間は変わらないんだから,.NETで一般的なやり方を紹介するべき
143118:2008/10/28(火) 20:06:23
>>141
OptionStrictで指定する型変換のことですが、”何の”ってすごく変な質問ですね。
何を言いたいのかは察しが付きますが。
144デフォルトの名無しさん:2008/10/28(火) 20:18:55
C#スレでVB.NETの暗黙の型変換の話を唐突にされたら、突っ込みたくもなるだろうさ
145118:2008/10/28(火) 20:26:49
>>144
ルーズさの代表選手として例を挙げてみただけですが
突っ込みって見下したような質問のことでしょうか?
歓迎されていないようなので退散します。失礼しました。
146デフォルトの名無しさん:2008/10/28(火) 20:37:20
自分で自分を卑下してどうする
147デフォルトの名無しさん:2008/10/28(火) 20:50:26
なるほどこれがVB厨と揶揄される理由か・・・
148デフォルトの名無しさん:2008/10/28(火) 20:53:28
つうか、ダメグラマ認定して初心者叩きしてるの一人だろ
149デフォルトの名無しさん:2008/10/28(火) 21:06:24
>>148
少なくとも一人じゃないよ。
まあ小学校の学級会じゃねえんだから人数の問題じゃないと思うが。

それに初心者が初心者であるという理由で「叩いて」るわけじゃない。
ダメなくせに自分がダメだという自覚がないさまを嘲笑してるんだよ。
150デフォルトの名無しさん:2008/10/28(火) 21:08:43
性格わりぃ・・・
151デフォルトの名無しさん:2008/10/28(火) 21:22:30
C#の方が崇高であると勘違いしてるやつもいるな
152デフォルトの名無しさん:2008/10/28(火) 21:30:23
>>151
被害妄想激しいね。

ちなみに、件の彼を非難してた人間の一人である俺は仕事ではメインでVBの方使ってるし、
そんな下らない偏見など持ってない。

VBがダメなんじゃなくて彼がダメなの。
ダメな奴をダメだといってるだけだから。
153デフォルトの名無しさん:2008/10/28(火) 21:39:07
VB固有関数は知らなきゃわからないだろうし
プロテクションレベルにしたってコントロールのプロパティが
VBはデフォルトでFriendだけどC#はPrivateって話だろ
>>126のリンク先の内容とはぜんぜん違うよな
単に叩いて優越感に浸るのが趣味の人にしか見えない
154デフォルトの名無しさん:2008/10/28(火) 21:43:48
>>153
防衛機制激しいな。
まあ俺が仮に「単に叩いて優越感に浸るのが趣味の人」だとしても
言ってることは間違ってないと思うけどね。

一つ聞くが、コントロールのアクセスレベルが仮にC#もFriend(internal)だとして、
お前さんは外からフィールドであるコントロールにアクセスするようなコード
書きたいと思う?

普通思わないでしょ。
155デフォルトの名無しさん:2008/10/28(火) 22:12:07
これがVB厨・・
おまえらスレタイ読めよ
156デフォルトの名無しさん:2008/10/28(火) 22:37:11
C#もVB.NETも使うけど、Chrが無いことに関してはC#のほうが好きだなあ。
157デフォルトの名無しさん:2008/10/28(火) 22:49:44
VBの場合いろんな書き方ができてしまうので
C#ぽく書くこともできるしVB6のような書き方もできる。
人の書いたVBのコードを見ると他にどういう言語をやってきたのかだいたいわかるよ。
158デフォルトの名無しさん:2008/10/28(火) 23:32:12
おまいら、ちょっとくらい 4.0 の話題で盛り上がれよ。
159デフォルトの名無しさん:2008/10/28(火) 23:35:15
まだそんな時期ではない
160デフォルトの名無しさん:2008/10/28(火) 23:40:42
PDCの資料出てるよ?
161デフォルトの名無しさん:2008/10/28(火) 23:41:58
162デフォルトの名無しさん:2008/10/28(火) 23:46:18
バルーンツールチップを速攻で消す方法ってありませんか?
Leaveイベントとかないですよね^^;
163デフォルトの名無しさん:2008/10/28(火) 23:56:33
ついに動的型か…
164デフォルトの名無しさん:2008/10/29(水) 00:12:52
今年の1月には既に出てた話だしね。
http://blogs.msdn.com/charlie/archive/2008/01/25/future-focus.aspx

むしろ、やっと動的型。
165デフォルトの名無しさん:2008/10/29(水) 00:20:04
変数宣言で型名の代わりにdynamicと書くだけでいいのか
VBのStrict Offより手軽だねえ
166デフォルトの名無しさん:2008/10/29(水) 00:30:17
というか、Strict Off と違って、dynamic と var 使い分けられるのがいい。
あと、VB みたいに Variant ではないし。
167デフォルトの名無しさん:2008/10/29(水) 02:02:42
ファイルが更新されたらOpenしてちょこっと弄って別ファイルへ出力 ってやる時って
FileSytemWatcherよりFindFirstの方がいいのかな
余計なイベント拾いすぎて更新完了されたかどうかの判定が思いつかない
168デフォルトの名無しさん:2008/10/29(水) 02:26:11
普通にFileSystemWatcher使えばいいじゃないか。
169デフォルトの名無しさん:2008/10/29(水) 03:14:31
それだと、ファイルを更新しようと開いた瞬間LastWriteTimeが変わるのよね
んで、Changeイベント発生しちゃう。上書き保存したらまた同じくイベント発生
最悪なのがアンチウイルスソフト入れてるとその監査で1回多くイベント発生したりで
170デフォルトの名無しさん:2008/10/29(水) 04:19:58
あぁ、なるほど把握
具体的な仕様が分からんと何とも言えんけど

ファイルの更新をSizeで判断するのが許されるのであれば、
NotifyFilterにNotifyFilters.Sizeを指定してやる手もある(分けて書き込まれた場合複数回発生する)

直近のイベントを一時的に自前のバッファに蓄えて(重複を無くす為)、定期的/一定時間経過したら/一定数溜まったら処理を行うようにしては?
171デフォルトの名無しさん:2008/10/29(水) 19:23:07
>>169
ラップするっていう発想がない人?
172デフォルトの名無しさん:2008/10/29(水) 20:02:17
>>167の想定だと、更新対象と出力先が別なんでしょ
そのアプリは監視対象を読むだけで変更しないなら LastWrite で何も問題ないじゃないか

あとは更新完了の判定?
監視対象を(書き込み用に)開いているプロセスが無くなったら更新完了でしょ
(ただし、更新する側がファイル開きっぱなしのクソ設計だったらしらね)

実装としては排他ロックしてしまうのが手っ取り早い
ロック出来なきゃまだ開いているファイルがあるので保留
173デフォルトの名無しさん:2008/10/29(水) 23:18:34
アプリっちゅうかサービスですな。
Sizeで見るって手も浮かんだけどSizeが必ず変わるか?というの考えたら
排他処理がわからんので、LastTime来た時点でOpenさせてみて
失敗したら待機後また挑戦というアレな方法しか思いつかなかった。
174デフォルトの名無しさん:2008/10/30(木) 00:01:15
更新するほうのアプリをいじれるならいくらでもやり方は考えられる。
その更新というのは単に上書きなのか、追記なのか、部分更新をしているかで
扱いが変わるかもしれない。
175デフォルトの名無しさん:2008/10/30(木) 18:33:15
http://qb5.2ch.net/test/read.cgi/operate/1206636885/657
強制ID実装を駄目元で頼み込んでみた。
もし賛同してくれる人がいたら同意のレスつけてください。
176デフォルトの名無しさん:2008/10/30(木) 19:35:51
コピペ君って馬鹿だな、まで読んだ。
177デフォルトの名無しさん:2008/10/30(木) 19:45:52
まあ、そこで議論して変更されたことはかつて一度もないけどな。
178デフォルトの名無しさん:2008/10/30(木) 21:02:02
それ隔離スレだから
179デフォルトの名無しさん:2008/10/31(金) 00:02:58
列の要素としてBitmapを含むDataTableのシリアライズをしたいんだが、
どうすればよい?
↓こんなページはみつけたが、どう適用すればいいかわからなくて行き詰った。
http://d.hatena.ne.jp/sixpetals/20060516/p1

ヒントちょうらい
180179:2008/10/31(金) 00:06:26
http://209.85.175.104/search?q=cache:ruPUvYArBWcJ:pc11.2ch.net/test/read.cgi/tech/1200911737/659-758+Bitmap+%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA+C%23&hl=ja&ct=clnk&cd=5&gl=jp&client=firefox-a
こんなんもあった。
Streamから得たBitmapはStreamを閉じなきゃシリアライズ出来るらしい。
けど閉じちゃってるデス。
引き続きヒント求ム
181179:2008/10/31(金) 00:08:59
http://bbs.wankuma.com/index.cgi?mode=al2&namber=3464&KLOG=12
こんなのもあった。
MemoryStreamをシリアライズしろ!ってな話なんだけど、
俺がやりたいのは
Formatter.Serialize(fstream, datatable)
で一発シリアライズしたいのだ。
引き続きヒント求ム。
182179:2008/10/31(金) 00:37:16
そもそも何がしたかったかの背景を言うと・・
 ・DataGridView にネットワークストリームでひっぱってきた画像やらなんやらいろいろ表示させている
 ・データの管理はDataTableでやってる
 ・DataGridViewとDataTableはバインドさせてる
 ・アプリ終了時に、DataGridViewの内容をそのまま復帰させたい。
 →DataTableをシリアライズすりゃいいんじゃね?
ってことでDataTableのシリアライズにこだわってますた。

解決方法として思いついたのは(試してないけど)

・DataTableにはMemorySteamを持たせ、CellFormattingイベントで毎度セルに描画させる。
・バイナリでDataTableに突っ込むのはあきらめて画像はファイルとして保持
 DataTableには画像のパスを持たせて、CellFormattingで毎度セルに描画
・ネットワークストリームを一旦MemoryStreamにかませて、MemoryStreamはクローズしない。

てくらいっす。
183デフォルトの名無しさん:2008/10/31(金) 01:21:07
ウワッ。キモっ!こんなヤツに付きまとわれるとかなわん。俺はパスな〜 って思った香具師・・・挙手 ノシ
184デフォルトの名無しさん:2008/10/31(金) 07:09:47
>>180
StreamはBitmap(Stream)で作ったBitmapがDisposeされるまで閉じちゃいかんよ。
185デフォルトの名無しさん:2008/10/31(金) 13:07:43
Genericを使ったコードを書くと、「using System.Collections.Generic;」の行で

error CS0234: 型、または名前空間名 'Generic'
は、クラスまたは名前空間 'System.Collections'
に存在しません。アセンブリ参照があるか確認してください。

とエラーが出てしまうんですが、何が原因なのでしょうか?
(Genericを利用しないコードは、問題なくコンパイルできます)
パスを通すために、sdkbars.batを実行してから再起動もしたんですが、何も変わりません。
186デフォルトの名無しさん:2008/10/31(金) 13:55:03
C#からCSVファイルを扱うにはどうすればいいですか?
187デフォルトの名無しさん:2008/10/31(金) 14:00:21
csvreader C#でぐぐるといろいろ出てくる
188デフォルトの名無しさん:2008/10/31(金) 15:08:24
>sdkbars.batを実行してから再起動もしたんですが
なにを再起動したのかね?きみ
189デフォルトの名無しさん:2008/10/31(金) 15:20:01
ワロタ
再起動したらまたbat実行しなくちゃな
190185:2008/10/31(金) 16:13:36
バージョンが古くGenericに対応していなかったせいのようで、
バージョンを3.5にしたら解決しました。お手数おかけしました。
191デフォルトの名無しさん:2008/10/31(金) 19:48:42
0xffffffffをunsigned取る関数を渡すにはどーすればいいの?
192デフォルトの名無しさん:2008/10/31(金) 20:04:39
もうちょっと分かりやすい日本語を
193デフォルトの名無しさん:2008/10/31(金) 20:16:58
-1
194デフォルトの名無しさん:2008/10/31(金) 20:20:32
>>191
エスパーすると、Uint32.Parse()のオーバーロードに目的のがあるだろ
195デフォルトの名無しさん:2008/10/31(金) 20:23:28
英語でもおk
196デフォルトの名無しさん:2008/10/31(金) 21:01:21
寧ろ、C#で書いてもらった方が
197デフォルトの名無しさん:2008/10/31(金) 21:03:17
unchecked
198デフォルトの名無しさん:2008/10/31(金) 21:18:15
signedじゃねーか
199179:2008/11/01(土) 02:37:58
>>184
そうだったのか。
じゃあ解決したのかな。dクス!
200デフォルトの名無しさん:2008/11/02(日) 08:01:16
Managed DirectXとWPFとXNAって何が違うの?
なんでこんなショボイことやってんのMS
筋通せごるああああああああああああああ
201デフォルトの名無しさん:2008/11/02(日) 08:41:09
MDXは過渡技術だけど、
WPFとXNAはそもそも用途が違う。
202デフォルトの名無しさん:2008/11/02(日) 08:49:52
MDXは単なるDirctXのManagedなラッパー。

XNAはゲーム用フレームワーク。
UpdateとかDrawが最初からあって、その中書くだけでゲームになる。

WPFはデスクトップ用。
HTML+JavaScriptのノリで、XAML+C#を書いてプログラムを作る。
ボタンとかテキストボックスとかのコントロールが多彩。
203デフォルトの名無しさん:2008/11/02(日) 08:54:07
それを統一できなかったのかって話でしょ
204デフォルトの名無しさん:2008/11/02(日) 09:12:39
MDXはTom Millerの個人プロジェクト
XNAはチームで作っているプロジェクト
WPFは巨大なチームで作っているプロジェクト
205デフォルトの名無しさん:2008/11/02(日) 09:14:53
>>203
要求されるものがかなり違うから。
それでも統一できるほど今のハードウェアは十分じゃない。
206デフォルトの名無しさん:2008/11/02(日) 09:31:59
XNAは箱の都合
207デフォルトの名無しさん:2008/11/02(日) 09:48:53
用途に応じて使い分けることを無駄に強いられたわけだ
208デフォルトの名無しさん:2008/11/02(日) 10:10:02
根底がDirectXなんだからMDXの上に構築するのは可能だったろ
209デフォルトの名無しさん:2008/11/02(日) 10:31:59
確かにWPFは低レベルなレイヤを公開してその上に構築してほしかった
210デフォルトの名無しさん:2008/11/02(日) 10:45:56
低レベル層を公開するデメリットも有るからね。
極力、ハードウェアに依存するようなところを隠蔽して、
抽象化しておきたかったんだろう。
211デフォルトの名無しさん:2008/11/02(日) 10:50:47
Silverlight触ってると、かなり深いところまでC#で書かれてるWPFの良さが分かった
Silverlightはガチガチすぎる
212デフォルトの名無しさん:2008/11/02(日) 11:33:40
FormにGraphicオブジェクトのDrawLine()メソッドで
矢印を描画しました。
 これをマウスでドラッグ&ドロップをしたい場合、
簡単な方法はありますか?

 というかGraphicsオブジェクトは
FormのControlsプロパティのAddメソッドに
追加できないのですね・・・とほほ。

すみませんが教えてください。
213デフォルトの名無しさん:2008/11/02(日) 11:35:26
簡単な方法はありません
ヒットテストして移動させる処理を自分で書きます
214デフォルトの名無しさん:2008/11/02(日) 11:40:00
補足
移動させるというのはあくまで抽象的な話で、実際はコントロールのような仕組みに一切頼らず
自分で位置を決めてDrawLineで毎回描画する必要があります
Lineクラスとか自分で定義して線を描画する位置を管理することになります
215デフォルトの名無しさん:2008/11/02(日) 11:55:39
WPFマジ最高ってことですね
PathとかもFrameworkElementだもんな
216デフォルトの名無しさん:2008/11/02(日) 11:59:50
どっちみちドラッグで移動させるのは自前で書かないといけないけど
217デフォルトの名無しさん:2008/11/02(日) 14:04:32
>>213
普通にLabelあたりを継承したコントロールとして実装した方が
ずっと簡単に思うんだけど・・・
218デフォルトの名無しさん:2008/11/02(日) 14:07:32
線を移動する目的を想像すると、そういう方法で足りる場合って考えにくいと思う
219デフォルトの名無しさん:2008/11/02(日) 14:13:53
単純な平行移動だけじゃなく、MS Officeの描画オブジェクトみたいに
図形そのものの形状も編集できるようにしたいってこと?

それにしてもマウスポインタの当たり判定を自動でやってくれる分、
何らかのコントロールから派生した方が簡単じゃないのかな。
220デフォルトの名無しさん:2008/11/02(日) 14:13:58
コントロールは透過の扱いがめんどいからねー
221デフォルトの名無しさん:2008/11/02(日) 14:14:45
>>220
いやそれはリージョンを設定するだけでしょ
222デフォルトの名無しさん:2008/11/02(日) 14:18:38
いろいろ工夫してごにょごにょするよりは自前でやっちゃった方が早かったりする
223デフォルトの名無しさん:2008/11/02(日) 14:20:44
それなりに複雑な形状の当たり判定なんて本当に「ごにょごにょ(気持ち悪い言葉づかいだよこのヲタグラマ)」
できるのかよ。
224デフォルトの名無しさん:2008/11/02(日) 14:22:22
質問者が言ってない前提を持ち出して何いってんだ?
225デフォルトの名無しさん:2008/11/02(日) 14:22:25
できるよ
226デフォルトの名無しさん:2008/11/02(日) 14:23:47
>>224
つまり図形の編集までは言ってないってことだよね?
俺もそう思うんだが、ならばなおさらコントロール派生した方が簡単でしょ。
227デフォルトの名無しさん:2008/11/02(日) 14:29:47
矢印というのが微妙だな
矢印移動して何するんだろう
228212:2008/11/03(月) 10:23:07
みなさん回答ありがとうございます。

 私としては、コモンコントロールのどれかを
継承して実装を行うのが一番楽かなということに
まとまりそうです。

ご意見ありがとうございました。
229デフォルトの名無しさん:2008/11/03(月) 10:29:25
typedefってどうやるんですか?

class A<T>
{
public typedef T typ;
}

見たいな事したいんです。
230デフォルトの名無しさん:2008/11/03(月) 10:31:39
ない
ファイル単位でならusingディレクティブで似たようなことはできる
231デフォルトの名無しさん:2008/11/03(月) 11:56:27
退化かよ
232デフォルトの名無しさん:2008/11/03(月) 12:00:49
型のエイリアスはリフレクションと相性悪そうな予感
233デフォルトの名無しさん:2008/11/03(月) 12:01:52
>>231
クラスなら偽装で派生させれば一応可能だね。
あまり誉められたやり方じゃないかもしれないけど。。。
234デフォルトの名無しさん:2008/11/03(月) 12:02:40
どうしてもほしかったらプリプロセッサ書けばよろし。
235デフォルトの名無しさん:2008/11/03(月) 12:05:00
>>231
冷静に考えればCだってファイル単位じゃん。
236デフォルトの名無しさん:2008/11/03(月) 12:29:16
>>229
A<string> a = new A();
var item = a.GetItem();
でいいでしょ
237236:2008/11/03(月) 12:32:06
訂正
A<string> a = new A<T>();
var item = a.GetItem();//GetItemの戻り値はT型
238デフォルトの名無しさん:2008/11/03(月) 13:07:12
つか using ディレクティブ挙がってるのにやり方書いてないな
using ディレクティブは 2 つの機能があって

using System;



using HANDLE = System.IntPtr;

があるので後者で済ませという話。typedef はあってもよかった説が
あるけどどっちにしろ「すでに遅い」。
239デフォルトの名無しさん:2008/11/03(月) 13:09:26
typedefというより、本質的には他のファイルをインクルードできない問題でしょ。
typedefなんていらん。
240デフォルトの名無しさん:2008/11/03(月) 13:21:59
extern aliasみたいな感じで、global alias HANDLE;とすべてのファイルに書いて
AssemblyInfoで宣言するみたいなのはできてもいい気はする
241デフォルトの名無しさん:2008/11/03(月) 13:25:14
>>237
A<string> a = new A<T>();
a.type item = a.GetItem();//GetItemの戻り値はT型
見たいな感じでitemの型をTに限定できないかな。
242デフォルトの名無しさん:2008/11/03(月) 13:25:21
>>239
インクルードと typedef は何の関係もない
型に別名を付けるだけだからな。スコープもきちんと持つし、
気になるのはトークンの判別だけどネストクラスが出来る
んだから大丈夫だろ。

要らないとかについてはたとえば MouseEventHandler とかは
typedef MouseEventHandler EventHandler<MouseEventArgs>;
とかの方がきれいなんだよ確かに。
243242:2008/11/03(月) 13:26:56
ごめんなさい
typedef EventHandler<MouseEventArgs> MouseEventHandler;
ですた
244デフォルトの名無しさん:2008/11/03(月) 13:27:21
245デフォルトの名無しさん:2008/11/03(月) 13:27:44
ごめ。リロードしなかった。
246236:2008/11/03(月) 13:28:36
>>241
何度も悪いけどTじゃなくてstringね
varと何が違う?
itemの型はちゃんと型パラメータに指定したstringになるよ
247デフォルトの名無しさん:2008/11/03(月) 13:31:03
>>242
だから別名の機能そのものはC#にもあるから新たにtypedefなんかいらんでしょ。

もし問題があるとすれば、その別名定義がCと同じようにファイルスコープなのに、
別名定義したファイルをインクルードする機能がC#にはない点だけだ。
248デフォルトの名無しさん:2008/11/03(月) 17:04:03
stringとString
Int32とint
この関係をC#の文法で書くとどうなってんの

using int=System.Int32?
249デフォルトの名無しさん:2008/11/03(月) 17:07:10
C#では書けない
「C#となのるいじょうりょうしゃはまったくおなじ」
250デフォルトの名無しさん:2008/11/03(月) 17:08:06
それも二つの書きかたがあるんだから
typedefがあってもいいだろ
251デフォルトの名無しさん:2008/11/03(月) 17:14:05
CLRと言語の仕様は違います
252デフォルトの名無しさん:2008/11/03(月) 17:15:47
int≡System.Int32はC#の言語仕様です
嘘だと思うなら読んでみ
253251:2008/11/03(月) 17:19:29
>>251>>250に対してなのかな
すまん
254デフォルトの名無しさん:2008/11/03(月) 17:27:25
255デフォルトの名無しさん:2008/11/03(月) 18:35:11
>>253の名前欄は252の間違い
ごめんなさいごめんなさい
256デフォルトの名無しさん:2008/11/03(月) 19:31:12
>>247
そんなレベルの話ではなくてだな、CLI レベルの話
ヘジの答え抜粋

■C++から移行した多くの開発者が「typedef」(=型の別名を定義するキーワード)
を欲しがっているが、C#では組み込まれないのか?

この要望も以前からあったが、typedefキーワードの問題点としては、型の別名を自由に
定義できてしまうので、プログラマーにとって混乱を引き起こしやすいことが挙げられる(
型の名前を見ただけでは、本当の型の種類が何か分からない)。

また.NET Frameworkでは、それぞれの型には1つの名前しか定義できない仕様になって
いる。従ってtypedefを効果的に使うには、.NET Frameworkレベルでの対応が必要になり、
それが全言語へ反映されなければ意味がないだろう。
しかしこの規模の対応を行うには、もう現時点では「ときすでに遅し」だ。ただ一応、今後も
引き続き検討は続ける予定である。
257デフォルトの名無しさん:2008/11/03(月) 19:43:36
へジたんはtypedef嫌いなのか
そういえばLinuxのカーネルだったかGNUだったか忘れたけど
typedefはやめたほうがいいって主張してる人いたね

へジたんのインタビューは結構面白いんだけど
英語を訳しきれずに間違って解釈してそうで怖いんだよなー
どこかで和訳してないだろうか
258デフォルトの名無しさん:2008/11/03(月) 19:50:31
>>256
どんなレベルの話だろうと>>242はおかしい。
typedefがないことなど問題の本質ではない。

>>257
だからヲタは気色悪いんだよ。
そういうの面白いと思ってるのか知らんけど。
259デフォルトの名無しさん:2008/11/03(月) 19:56:45
>>258
意味がわからんのだけど
お前がいう「問題の本質」ってなに?
260デフォルトの名無しさん:2008/11/03(月) 20:05:11
そっとしておけ
261デフォルトの名無しさん:2008/11/03(月) 20:12:51
>>258
うーむ。なんかこう、typedef の機能「自体」が伝わってない気がする
C++ 屋が typedef ほしいってのは「エイリアス」がほしいんじゃないん
だよぶっちゃけると。識別するためにそりゃ名前付けるのがやってる
ことだけども本質は静的に型を「組み合わせて」「伝えて」いきたいの。
型でプログラミングしたいのよ。

だから型システムに組み込まれてないと困るの。そして using は
せいぜい機能が補間だから役者不足。ファイルスコープがどうとかで
はなく。インクルード追加されたところで同じ。モジュール(スコープ)
単位が型じゃなくなるから一緒。

もっともシンプルな STL の例なら、vector<T> が iterator を内部に
もってそれをさらに参照してみたいなことがしたいのようするに。
型に型持たせてメタメタりたいの。
262261:2008/11/03(月) 20:15:29
ああ追記。「良い」「悪い」の話ではないぞ。そういう「要望」って話だぞ。
俺はむしろ微妙に否定派だし。
263デフォルトの名無しさん:2008/11/03(月) 22:14:58
>>261
.NET全体として実行時メタプログラミングが大ブームなので(LISP回帰とも言うが)
その要望自体がもはやニッチすぎるんだと思う。
Expression Trees v2とか見てみるといい。
264デフォルトの名無しさん:2008/11/03(月) 22:29:48
例えば.NETのTypeConverterAttributeは、C++ならtypedef使うんだろうなぁ。
昔から属性でメタメタやってるし。

逆に属性でメタメタやれてないC++屋の方が哀れに見えることもある。
265デフォルトの名無しさん:2008/11/03(月) 22:35:12
まぁC++も属性付く様になるんだけどね
まだまだ先だけど
266デフォルトの名無しさん:2008/11/04(火) 21:30:25
参照されなくなった時点で通常のクラスのインスタンスと同じようにGCの対象になるか、
あるいはもう一ひねりして自動的にCloseするFormを作ることは可能?

可能だとしたらどうしたらいいんだろう。
267デフォルトの名無しさん:2008/11/04(火) 21:47:42
ダミーのオブジェクトにFormの参照持たせとけば
268デフォルトの名無しさん:2008/11/04(火) 21:57:07
フォームを閉じるのをGCに任せるのはちょっとw…
参照カウンタ付けてタイマで見張る方がまだマシだと思うよ
269デフォルトの名無しさん:2008/11/05(水) 08:33:56
MessageBox.Show("フォーム閉じて!!!")
270デフォルトの名無しさん:2008/11/05(水) 12:13:08
フォーム管理用のオブジェクト作るに1票
271デフォルトの名無しさん:2008/11/05(水) 13:43:17
きまぐれなファジイタイマーで閉じるに100バルサミコス
272モモ:2008/11/05(水) 19:23:52
あのね、
function Format(string format, params object[] args)
{
}
という関数で受け取った args を、可変個引数として
String.Format に渡すには、どうしたらよいですか?

String.Format(format, args)
では、args が引数の1つになってしまうよね?
273デフォルトの名無しさん:2008/11/05(水) 19:25:41
String.Format (String, Object[]) が呼ばれりゃいいんじゃないの?
274デフォルトの名無しさん:2008/11/05(水) 20:22:21
jscript.netなテイストがほのかに
275デフォルトの名無しさん:2008/11/05(水) 20:48:03
C#4.0のジェネリクス共変・反変で in, out をつけたのって何か属性とかつかないの?
デフォルトパラメータは属性がつくみたいだけど
276デフォルトの名無しさん:2008/11/05(水) 20:54:11
>>268
参照カウンタなんて実装可能?
277デフォルトの名無しさん:2008/11/05(水) 21:06:32
>>275
言語レベルの実装なら間違いなく付くでしょ
もしかしたらCLRに組み込まれるのかもしれないけど

>>276
自分でAddRef/ReleaseRefとか定義して呼び出せばいい
WPFなんかだとDisposeを排除した代わりに内部にそれっぽいのが結構出てくるよ
278デフォルトの名無しさん:2008/11/05(水) 21:22:13
>>277
CLIは2.0の段階で既にcovariance/contravarianceをサポートしてるよ。
あとは標準ライブラリとC#の文法を変えるだけ。
279デフォルトの名無しさん:2008/11/05(水) 21:27:46
結論 GC(゚听)イラネ
280デフォルトの名無しさん:2008/11/05(水) 21:38:26
>>275
ジェネリックパラメータが共変/反変を許すかどうかは、
既にメタデータとして持ってるから、属性はつかないと思うよ。
281デフォルトの名無しさん:2008/11/05(水) 21:46:58
inかoutかはわからないよ
使われ方から逆に推論することは可能だろうけど、そんな気持ち悪いことするより
どうせBCLに手を入れないといけないんだからついでに属性付けるだろ
282デフォルトの名無しさん:2008/11/05(水) 21:51:20
いや共変/反変のフラグは別なのか
じゃあいらないね
283デフォルトの名無しさん:2008/11/05(水) 22:06:53
すまん、Formの上に半透明なFormが乗っかってるとして、上のFormにマウスイベントが来た時に内容を判断して不必要なものだったらそのまま下にスルーしたいんだが何かエレガントな方法はありますか?
284デフォルトの名無しさん:2008/11/05(水) 22:19:24
同じアプリケーションのフォームならマウスの位置から
下のフォームインスタンスを取得してイベントを送る。
285デフォルトの名無しさん:2008/11/05(水) 22:33:11
in, out によって属性がつかないのなら
別アセンブリの場合にコンパイラはどうやって判断してるんだ
286デフォルトの名無しさん:2008/11/05(水) 22:39:36
>>284
イベントを送るの部分を詳しく・・・・
287デフォルトの名無しさん:2008/11/05(水) 22:41:22
>>285
いや、だから、2.0でジェネリックスが導入されたときから、
型のメタデータとしてゲネリックパラメータがco-/contravariantであることを示す
フィールドが用意されてるの。今更、属性を追加する必要なんてないの。
288デフォルトの名無しさん:2008/11/05(水) 22:41:29
>>285
だからメタデータにもうあるの。

リフレクションで見たいなら
Type.GenericParameterAttributesプロパティ経由で最初から公開されてる。
ttp://msdn.microsoft.com/ja-jp/library/system.type.genericparameterattributes.aspx
289デフォルトの名無しさん:2008/11/05(水) 23:25:15
>>285

public delegate T MyFunc<out T>();
と定義しておいて、
Console.WriteLine(typeof(MyFunc<>).GetGenericArguments()[0].GenericParameterAttributes);

結果
Covariant

コンパイルさえしてしまえば.NET 2.0環境でも動く。
290デフォルトの名無しさん:2008/11/05(水) 23:29:17
例が悪いよ
デリゲートの共変反変は2.0から使える
291290:2008/11/05(水) 23:30:19
意味が違うな
上は間違い
292デフォルトの名無しさん:2008/11/06(木) 04:13:02
>>286
単に下のフォームのMouseHogeイベントを呼びたいだけなら、OnMouseHoge()を呼べばいいだけだが、
下のフォームの該当する場所にボタンがあった場合はボタンクリックイベントを呼びたいとか、
datagridviewがあった場合は適切なイベントを呼びたいとかであればかなり泥沼になると思う。
自力でいろいろ用意してMouseHogeイベント時の座標から適切なOnHoge()を呼び出す必要がある。
そのために下のフォームに配置されているコントロール全てをカスタムコントロールにして、
OnHoge()を全てPublicメソッドで公開する必要があるし、そんなことするくらいなら
俺だったら設計自体を考え直す
293デフォルトの名無しさん:2008/11/06(木) 07:06:20
共変反変の機能はCLR2.0から持ってた
しかしC#は使っていなかった
294デフォルトの名無しさん:2008/11/06(木) 07:41:16
in や out を明示しなければいけないのは何でなの
295デフォルトの名無しさん:2008/11/06(木) 09:27:34
>>293
OnMouseHogeをよぶとMouseHogeイベントに突っ込んどいたデリゲートまでよばれるの?まぁみてきます。
とりあえずコントロールとか一切使ってないんでいわれてる問題はないんだけれど、そこら辺も回避する何かエレガントなイベントスルー方がないかと思ってた・・・

>>294 勘違いをなくすため
296デフォルトの名無しさん:2008/11/06(木) 16:26:15
>>294
関数の戻り値の型にverが使えないのと同じ理由だろうね

推論の結果が広範囲に影響を及ぼすってのはC#流じゃないんだろう
297デフォルトの名無しさん:2008/11/06(木) 16:30:06
inだと親方向
outだと子方向に伸ばせるわけだろ
全然意味が違うんだから明示するのが普通なんじゃないの
298デフォルトの名無しさん:2008/11/06(木) 17:13:55
Hoge<object> x = new Hoge<string>() // 1
Hoge<string> x = new Hoge<object>() // 2
現状は1, 2ともコンパイルエラーになって代入できない。
Hoge<out T> や Hoge<in T>で1か2の代入が可能になる。
前者が1だと思うがちと自信がない。
299295:2008/11/06(木) 18:44:50
>>292
レス番間違いです・・・
300デフォルトの名無しさん:2008/11/06(木) 19:24:08
二つ質問があるんですが、

[Q1]
FormをHideすると、システムからトップレベルのウィンドウに来るメッセージが
来なくなるようなんだけど、何かこういうメッセージを拾うことが可能なまま
非表示にする方法ってないだろうか?
Opacity を0にするとかはない方向で一つ。

[Q2]
メインフォームの参照を取得するにはどうしたらいい?
Application.OpenFormsで全部のフォームの参照が取得できるようだから、
後はフォームがメインフォームかどうか判定する方法があればいいように思うんだが…。
301デフォルトの名無しさん:2008/11/06(木) 19:26:12
メインフォームって何よ
302デフォルトの名無しさん:2008/11/06(木) 19:29:20
Application.Run()にぶち込んである奴のこと。
早い話、閉じるとアプリが終了するフォームのこと。
別に俺様用語じゃないと思うんだけど、俺の思い違い?
303デフォルトの名無しさん:2008/11/06(木) 19:37:14
閉じるとアプリケーションが終了するかどうかは
そのアプリにしかわからない
304デフォルトの名無しさん:2008/11/06(木) 19:44:14
>>300
[1]
this.FormBorderStyle = FormBorderStyle.None;
this.Size = Size.Empty;
でどうよ
305デフォルトの名無しさん:2008/11/06(木) 19:45:32
メインを管理したいならApplicationContext使え
でHideだからってメッセージ取れないってことは無いと思うが
とりあえずWM_TIMECHANGEは来てるし
306デフォルトの名無しさん:2008/11/06(木) 20:16:39
>>304
微妙な感じですね。
2X2ピクセルぐらいの大きさでどうしても表示されてしまう。
(XPのクラシック表示で)

>>305
前半はごめん意味が分からない。

後半は、たしかにおっしゃるとおりでどうやら俺の勘違いみたいだね。
来ないのはフォームのインスタンスを作成後一度も表示してない場合だけで、
一旦表示後Hideした場合はちゃんと受け取れるみたい。
307デフォルトの名無しさん:2008/11/06(木) 20:25:52
>>294
タイプセーフのためだよ
そういうルールにしとけば実行時に型エラーが出ない
308デフォルトの名無しさん:2008/11/06(木) 21:28:00
> 来ないのはフォームのインスタンスを作成後一度も表示してない場合だけで、
そりゃインスタンス作っただけじゃハンドルは作られてないしな

つか意味分からんとか言う前にまず検索しろよGoogleでもMSDNでも
309デフォルトの名無しさん:2008/11/06(木) 21:49:25
Form.Visible = false;
310デフォルトの名無しさん:2008/11/06(木) 21:53:31
>>308
もう命令口調クンは答えてくれなくていいよ。
前から指摘してるけど、キミって人格的にちょっとおかしいと思うよw
命令口調クンが一人なのかどうか知らないけど。

ちなみに一応反論めいたことも言っておくと、
そもそもApplicationContextに触れる側のコードならメインフォームを
直接取得するのも普通は困らないはずで、だとしたら質問として成立しないはずだよね。

main()のある側のコードに触れないか、触れても触りたくない事情があるから
聞いてるんだよ当然。

端的にはmain()のある側から依存されても依存はしたくない
ユーティリティクラスのメソッドとして欲しいんだけど。
311デフォルトの名無しさん:2008/11/06(木) 22:05:13
メインホームの名前憶えとけよ
312デフォルトの名無しさん:2008/11/06(木) 22:21:32
>>310
じゃあApplicationContext.AddMessageFilterはどうだろうか?

> 取得するのも普通は困らないはずで、だとしたら質問として成立しないはずだよね
それがなぜかそのことに気づいていない人のほうが多いもんで、
答えるほうもまずそっちを想定してしまう。
313デフォルトの名無しさん:2008/11/06(木) 22:22:36
VS2005 で、C# で書いたソースのコメントから、
ドキュメントを生成することはできないのですか?
Doxygen みたいに。
314デフォルトの名無しさん:2008/11/06(木) 23:07:35
>>312
なるほど、ダミーのフィルターを作ってそれに食わせてみたけど
確かにそれでも拾えるね。
馬鹿みたいな数同じメッセージを拾っちゃうのをなんとかする必要はあるみたいだけど。
ありがとう勉強になった。
315デフォルトの名無しさん:2008/11/06(木) 23:08:10
>>313
Sandcastle
316デフォルトの名無しさん:2008/11/06(木) 23:11:51
>>310
横レス失礼するよ
最初に前提述べないほうが悪いと思う
君の同僚との会話じゃないんだから
317デフォルトの名無しさん:2008/11/06(木) 23:25:59
>>316
確かにそうかもしれない。
実際>>300を投稿する前にその辺りの事情を詳細に書くべきか迷った。
ただ、相手はこんなスレにいる人たちだし、「Application.OpenFormsで〜」
のくだりとかからだいたいの事情は斟酌してもらえるだろうと最終的には判断した。

あまり長い文章だとそもそも読んでもらえない可能性もあるし。
318デフォルトの名無しさん:2008/11/07(金) 00:03:22
うぜぇぇぇ
319デフォルトの名無しさん:2008/11/07(金) 01:01:14
>もう命令口調クンは答えてくれなくていいよ。
>前から指摘してるけど、キミって人格的にちょっとおかしいと思うよw
>命令口調クンが一人なのかどうか知らないけど

ここらへんの時点で既に排除されても文句は言えない
320デフォルトの名無しさん:2008/11/07(金) 09:12:39
思い込みによる間違った前提とオレ用語
相手にしたくない質問者の一人だな
321デフォルトの名無しさん:2008/11/07(金) 16:49:03
命令口調って何かまずいわけ?
見てくださいってお願いすればいいの??
322デフォルトの名無しさん:2008/11/07(金) 17:24:32
かまうなよ
323デフォルトの名無しさん:2008/11/07(金) 20:04:04
>>313
騙されたと思ってDoxygenに通してみそ。言語設定をC#にするのを忘れずにね
324デフォルトの名無しさん:2008/11/07(金) 21:55:23
思わずふいたwww
325デフォルトの名無しさん:2008/11/08(土) 02:37:25
ああああああ
[END]
いいいいいい
[END]
うううううううう

↑のように書いてあるテキストをdata.txtとして保存して、
sr_init = new System.IO.StreamReader("data.txt", Encoding.GetEncoding("Shift-Jis"));
string raw_str = sr_init.ReadToEnd();
string[] arr_str = raw_str.Split("\r\n[END]\r\n".ToCharArray());

としたらarr_strの中に空のstringがいくつか有ったんですが、これって何が原因なんでしょうか?
誰か分かる人教えてください
326デフォルトの名無しさん:2008/11/08(土) 02:52:13
"\r\n[END]\r\n"全体でひとつのセパレータとして使うわけじゃなく
その文字列に含まれる各文字をセパレータとして使うってことだろう
なので最初の\rに出会ったら分割、次の\nに出会ったら分割・・・となる
327デフォルトの名無しさん:2008/11/08(土) 02:52:42
>>325
2 つの区切り記号が隣接している場合、
または、区切り記号がこのインスタンスの先頭か末尾に見つかった場合、
対応する配列の要素には Empty が格納されます。
328デフォルトの名無しさん:2008/11/08(土) 03:02:25
>>326-327
ありがとうございます、MSDNよく読めば載ってそうな感じですねごめんなさい。
ちなみに、>>325が想定しているような動作をしてくれるメソッドってあったりしますか?
329デフォルトの名無しさん:2008/11/08(土) 03:19:44
StringSplitOptions.RemoveEmptyEntriesを指定すれば
330デフォルトの名無しさん:2008/11/08(土) 03:23:28
string[] seps = new string[]{"\r\n[END]\r\n"};
raw_str.Split(seps, StringSplitOptions.None);
331デフォルトの名無しさん:2008/11/08(土) 03:30:39
>>329
それだけだと>>326がクリアできないので…

>>330
ありがとうございます。解決しました!
332デフォルトの名無しさん:2008/11/08(土) 16:14:28
Visual Studio 2008 Service Pack 1 および .NET Framework 3.5 SP1
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/vs2008/sp1/default.aspx

>MSDN Library の技術情報は現在日本語化を行っており、翻訳が完了次第公開されます。
>公開後、このページよりリンクします。翻訳の完了は 9 月中を予定しています。

この翻訳ってまだなんですよね?
333デフォルトの名無しさん:2008/11/08(土) 18:13:53
システムディレクトリ(XP以降ならWindows\Sytem32)に特定のネイティブdllが
存在しているかどうかを確認するにはどうしたらいい?

そこに対するアクセス権限がないユーザーで実行した場合でも動作する方法でないと困る。

もちろん中の適当な関数を呼び出して例外が発生するかどうか見ればいいんだろうけど、
もう少しきれいな方法はないもんだろうか。
334デフォルトの名無しさん:2008/11/08(土) 18:31:15
System32の読み取り権限がないユーザじゃWindows動かないと思うが
335デフォルトの名無しさん:2008/11/08(土) 18:39:31
どうせ読み取り権限ないとだめだが、Win32APIのLoadLibrary/FreeLibraryでうまくいくかどうかというのはどう。
336デフォルトの名無しさん:2008/11/08(土) 19:48:34
>>332
MSDN Libraryならとっくの昔に終わってる
翻訳ができてないのはインテリセンス
337デフォルトの名無しさん:2008/11/08(土) 22:51:26
>>334
実際やってみた。
Windowsが動かないということはないみたいだけど、
なるほどいろいろ不都合なことが起こるみたいだ。
ということは、少なくとも全てのユーザーがSystem32の読み取り権限を持っていると
仮定していいって事なのかな。
Windowsのこの辺りの知識ってどこで仕入れればいいんだろう。

>>335
なるほどそれいいかもしれない。
338デフォルトの名無しさん:2008/11/09(日) 10:47:03
.net4.0って clrのバージョン変わるの?
339デフォルトの名無しさん:2008/11/09(日) 10:53:07
変わるよ
340デフォルトの名無しさん:2008/11/09(日) 10:55:30
ttp://mag.autumn.org/Content.modf?id=20081107135641
>過去には6万個ぐらい(だったと思うが記憶は定かではない)のXMLファイルを1つのフォルダに入れて扱ったことがありますが、これは公的に定められた手続き上必須の要件でした。
ほんとかよ。
公的に必須てどういうことだ?

言いたいことの本質はもちろん理解できる話なのだが、
Windowsで1フォルダに大量ファイルはできるだけ避けるのが当たり前だと思ってた。
※サブディレクトリに分けるなどしてとにかくできるだけ避ける方向で検討する
341デフォルトの名無しさん:2008/11/09(日) 10:56:16
>>339まじすか!
まあそんな気はしてたけど。
342デフォルトの名無しさん:2008/11/09(日) 11:00:12
かわるらしい。
343デフォルトの名無しさん:2008/11/09(日) 11:01:38
でもこんどのCLRはCLRSXSでCLR2.0をつかうものと4.0を使うものを同じプロセスで混在できる。
344デフォルトの名無しさん:2008/11/09(日) 11:25:55
>>340
クライアントとの取り決めでそうなった、という事では?
無茶な設計でも、既に稼働してるシステムだと、受け入れざるを得なかったりするし。
345デフォルトの名無しさん:2008/11/09(日) 11:30:19
あり得ない話ではないけど、普通その前にできるだけ避けるよねって話なんじゃ
346デフォルトの名無しさん:2008/11/09(日) 12:25:09
C#関係ないよねって話です
347デフォルトの名無しさん:2008/11/09(日) 16:04:28
3.0と3.5は4.0に統合されるの?
1.0や1,1が2.0になったように
348デフォルトの名無しさん:2008/11/09(日) 16:37:32
1.0は1.1になったけど、1.1は2.0になってないよ。
349デフォルトの名無しさん:2008/11/09(日) 16:54:30
1.0も1.1にはなってない。
基本的に下位バージョンアセンブリが上位のバージョンでも動くかどうかだろ?
350デフォルトの名無しさん:2008/11/09(日) 19:19:16
>>611
医者が「脳味噌にスタンガンでも当てたのか?」とか言ってたからね。
医者の視点から見て、そのくらいのダメージを受けたのは確かな筈。

>>614
全体的に演出は充分過ぎる。今季アニメの中でも、平均以上の出来だよ。
「部分部分で出来が良い所もある」というより、「部分部分で出来が悪い所もある」程度のレベル。
走ってる所も各キャラに視点を当てたりして、なんとかごまかそうとしてるし。
元の話が悪い、としか言えない。
あのシーンのインデックスのセリフを心の声にするなら、
これまでの「インデックスが魔術使うシーン」を全部、インデックスの心の声にしなきゃ不自然だろ?
でもそうしたらロリ先生との時間の会話とか必要なくなる。
そうやって不必要な部分を削っていくと、最終的に「このアニメ自体不必要」という結論が出かねないよw
どうやっても原作が問題だらけなんだよ。
351デフォルトの名無しさん:2008/11/09(日) 19:25:09
>>350
                               ___
                             /ー-ヾ
                  うっせー禿>   /・ ・  ヽ___
                 ____           | ゚   ●/ ̄
   ヾニ=_ ‐―-、 ,.-‐-、V⌒  /        ゝ ̄  ,ノ___   〃⌒ヽ
  ツト、__\〈〈ノ(・)  ヽ -‐=====ニニニ> /i!  \ヾ 「ヨニl ! @ )
  / ヽ、ヽヽヽヽ   (・)_i  -‐=====ニニニ>/ヽ__l \  ヾ、__ノ
  ヽ、、、、ノー、     _ノ  > > > > __\ l__-、ヽノ―――-----、
       ̄  ̄―  ̄ヽ  > > > > ヽ_____〈 /′___   ̄ ̄
              ヽヽヽヽヽヽヽヽヽヽトト!  / / .ン  / / /
                            ̄ ̄ ̄ `^ー―-------
352デフォルトの名無しさん:2008/11/09(日) 19:25:31
ど、どこの誤爆だ?
353デフォルトの名無しさん:2008/11/09(日) 19:29:50
とある魔術の禁止目録 のアニメの話題だと言うのは分かる
原作もアニメも見たことないが
354デフォルトの名無しさん:2008/11/09(日) 19:39:22
やっぱりプログラマってキモヲタがいかに多いかってことなのかね。
こんな奴らがいることがプログラマの社会的評価を下げているわけで、
正直個人的にはキモヲタプログラマは殲滅してやりたいと常々思ってる。
355デフォルトの名無しさん:2008/11/09(日) 19:42:44
おっとLarry Wallの悪口はそこまでだ
356デフォルトの名無しさん:2008/11/09(日) 19:50:42
このスレを見ている人はこんなスレも見ています。(ver 0.20)
会社で使えない奴、それはワタシ/アイツ [プログラマー]

おまえら・・・
357デフォルトの名無しさん:2008/11/09(日) 23:16:42
C# + 2008環境で、
独自のコントロールを作ろうと思っています。(なるべくWindows標準っぽく見せたくないので)

ツリーやリストコントロールのスクロールバーを独自のデザインに変更したいと
思っているのですが、可能でしょうか?
358デフォルトの名無しさん:2008/11/09(日) 23:21:42
可能だけど面倒だよ
WPFなら標準的にそういうのがサポートされてるから簡単にできるんだけど
359デフォルトの名無しさん:2008/11/09(日) 23:25:07
というかWPFでは見た目変えるだけならカスタムコントロールを作る必要すらない
360デフォルトの名無しさん:2008/11/09(日) 23:29:34
「なるべくWindows標準っぽく見せたくない」というのはどうなんだろう

デバイスのコントロールパネルなどで無駄に独自っぽいコントロールとかウィンドウとかマウスカーソルとか
使われると腹立つんですけど……
361357:2008/11/10(月) 00:08:40
返信ありがとうございます。

WPFを使う予定は今の所ないです。

面倒と言うのは、Windowsコントロールを継承せずに、
Controlクラスを継承してすべて独自で描画するとかでしょうか?
362デフォルトの名無しさん:2008/11/10(月) 00:11:45
継承して見た目を変えられるものもあれば変えられないものもある
統一できないとかえって見苦しいと思う
363デフォルトの名無しさん:2008/11/10(月) 00:36:12
>>360
機能に違いが無いのに色や形だけ独自のコントロールは要らないし余計だよなー
364デフォルトの名無しさん:2008/11/10(月) 01:09:13
そのような存在が許されるとしたら、ゲームだな。
まあ頑張って書いて下さいとしか言いようがないけど。
365デフォルトの名無しさん:2008/11/10(月) 02:54:33
独自描画とか柔軟性を突き詰めていくと結局 WPF そのもの
か似たものになるがな

とそういや。デザイン方面の知識は「きちんと」あるよな?
コントロールのデザインって素人が出来るほど「甘く」ないぞ。
366デフォルトの名無しさん:2008/11/10(月) 08:57:00
何言ってるのこの人
こわい
367デフォルトの名無しさん:2008/11/10(月) 09:02:22
>>365
Form上でのフレームワーク作ったんだが、結局WPFにニタ部分が結構出てきた。
いまのところWPFより速く重何に使えて満足。
368デフォルトの名無しさん:2008/11/10(月) 09:03:51
あたま「おかしい」だけで
「こわく」はないぞ?
369デフォルトの名無しさん:2008/11/10(月) 22:19:05
ああ、ごめん。いやキモいのはあやまるけど、デザインなめんなって
だけだよ
370デフォルトの名無しさん:2008/11/11(火) 00:36:49
.NETの4.0はいつごろ出るんだろう
371デフォルトの名無しさん:2008/11/11(火) 01:22:27
>>370
2010年
372デフォルトの名無しさん:2008/11/11(火) 01:23:40
英語版は2009じゃ?
373デフォルトの名無しさん:2008/11/11(火) 01:52:43
2009年末ぐらいには出るのかのう・・・
374デフォルトの名無しさん:2008/11/11(火) 07:06:52
じゃあ Windows 7 にのるのは .NET 3.5 までか
375デフォルトの名無しさん:2008/11/11(火) 08:09:05
VS 2008のときは、英語版のMSDN会員向けダウンロードが2007年11月頭とかだったよな、確か。
376デフォルトの名無しさん:2008/11/11(火) 08:09:40
>>374
それは確定。すでに明言されてる。
377デフォルトの名無しさん:2008/11/12(水) 09:44:28
抽象的な質問で申し訳ありません。

現在C#で作成中のプログラムでネットワークを利用したアップデート機能を作成したいと思っているのですが
プログラム側で特定の文字列データ(バージョンや設定の情報)を自身のホームページへと送り
ホームページ側でどれが相応しいかを返してあげたいと思います。

この様な処理を行うにはCGIを利用するのが適当かと思ったのですが
あいにくCGIはさわりしか知らないので軽く調べてみたところ
ホームページ内にフォームを設置しそれを読み取る方法ばかり当たってしまいました。

他のプログラムからの受け取りなどの処理は初心者向けのページでは取り扱っていないだけなのでしょうか
それとも、こういったことはCGIではできないのでしょうか?

C#の質問とは言えなくなってしまい申し訳ありませんがお教えいただけないでしょうか。
378デフォルトの名無しさん:2008/11/12(水) 10:21:34
ClickOnceは使わないの?
379デフォルトの名無しさん:2008/11/12(水) 13:41:42
>>377
サイト側じゃなくてプログラム側で解析すれば?
最初は普通のtxtとかxmlでバージョン情報が記載されたのを落として
プログラム側で解析、それをもとにもう一回ダウンロード、とか。

あと、C#ならASP.NET……
380デフォルトの名無しさん:2008/11/12(水) 13:49:51
CGIでもできると思うが
それをやるにはCGI側だけじゃなくて
ブラウザなんかがウェブサーバに送ってるリクエストを理解する必要があると思われ
HTTP GET POSTとかも混ぜてググれば使えそうな情報が出てくるかも、出てこないかも
381デフォルトの名無しさん:2008/11/12(水) 13:55:10
ClickOnce使えよ
382デフォルトの名無しさん:2008/11/12(水) 15:41:45
>>377
結論から言うと簡単に出来るが完全なスレ違い
ttp://ja.wikipedia.org/wiki/Common_Gateway_Interface
383デフォルトの名無しさん:2008/11/13(木) 05:05:31
cgiの代わりにC#では何を使えばいいって質問なんじゃない?
XML-WebService、WCFあたりでどうよ。

384デフォルトの名無しさん:2008/11/13(木) 11:24:11
ImageListとかImageList.ImageCollectionはなんでsealedなん?
継承してアイコンの遅延取得してみたかったのに
385デフォルトの名無しさん:2008/11/13(木) 19:43:41
アンマネージリソースのラッパーにすぎないからどうせ継承しても何もできない
386デフォルトの名無しさん:2008/11/13(木) 23:14:59
ジェネリクスの共変と反変は今すぐにでも欲しいお
387デフォルトの名無しさん:2008/11/13(木) 23:30:57
ゲネリックはプロパテーに使えないの?
388デフォルトの名無しさん:2008/11/13(木) 23:31:50
out付けたら引数限定、in付けたら戻り値限定でしょ
List<T>なんかには使えないよね
せいぜいIEnumerable<string>がIEnumerable<object>として使えるくらいで、
そんなにむちゃくちゃ便利にはならないと思うよ
389388:2008/11/13(木) 23:36:18
すまん逆だ
out付けたら戻り値限定、in付けたら引数限定
390デフォルトの名無しさん:2008/11/14(金) 07:10:14
>>389
あのin out はそういう風に理解したらいいのか。
VS10のCTPはでか過ぎて試せてない。
391デフォルトの名無しさん:2008/11/14(金) 08:31:08
>>388
その極めて限定的な機能を今すぐ欲しがる人は結構多いと思うよ。
392デフォルトの名無しさん:2008/11/14(金) 10:21:27
もし無理やり共変と反変ができるコレクションを作るなら
Collection<in TIn, out TOut> where TIn : TOut か
393デフォルトの名無しさん:2008/11/14(金) 13:27:03
インターフェイスを分けろって

class Queue<T> : IQueueIn<T> , IQueueOut<T> {}

interface IQueueIn<in T>{}
interface IQueueOut<out T>{}
394デフォルトの名無しさん:2008/11/14(金) 13:31:33
どうせinとoutが違うようなコレクションは作らないんだから意味ないだろ
WriteOnlyCollectionはありえないからReadOnlyCollectionがout Tをとれるようにすりゃ十分
395デフォルトの名無しさん:2008/11/14(金) 16:01:05
たとえばcompositとかで
親や子のオブジェクトを型指定で得たいとか。
396デフォルトの名無しさん:2008/11/14(金) 16:03:21
キャストすりゃええやん
397デフォルトの名無しさん:2008/11/14(金) 16:35:14
キャストしたら型安全性が崩れるっちゅーの
398デフォルトの名無しさん:2008/11/14(金) 20:11:44
ReadOnlyCollectionをoutにするのは無理じゃね?
ICollection<T>以下が実装できないからIEnumerable<out T>からの派生になって超不便になるな
399デフォルトの名無しさん:2008/11/14(金) 20:19:18
IReadOnlyDictionaryとかIReadOnlyListとかあった方が良かった気がするな
400デフォルトの名無しさん:2008/11/14(金) 20:24:31
そしてC++的constの再来
401デフォルトの名無しさん:2008/11/14(金) 20:43:27
なんでjavaはジェネリックの共変と反変のかわりにワイルドカードなんていう糞なものを持ち込んだんだろう
C#のやり方のほうがどう考えてもわかりやすいよな
402デフォルトの名無しさん:2008/11/14(金) 20:48:25
>>401
そりゃ単純に、作ってるやつがクソなんじゃね?
403デフォルトの名無しさん:2008/11/14(金) 20:48:38
>>401
ランタイムに大改造を施すのが嫌だったんでしょ。
404デフォルトの名無しさん:2008/11/14(金) 21:14:27
javaのジェネリクスで共変と反変をサポートするならランタイムの改造はいらないだろ
どうせコンパイル後は全部非ジェネリック型になるんだから
405デフォルトの名無しさん:2008/11/14(金) 21:31:05
最終話「JavaとC++の狭間で」
406デフォルトの名無しさん:2008/11/15(土) 00:33:28
Java「僕はここに居てもいいんだ!!!」
周り「おめでとう。パチパチパチパチ」
407デフォルトの名無しさん:2008/11/15(土) 02:12:16
そして、全ての言語達に
おめでとう
408デフォルトの名無しさん:2008/11/15(土) 02:29:30
でもぶっちゃけJavaはいなくていいだろ・・・
409デフォルトの名無しさん:2008/11/15(土) 03:06:01
何を言うか、Javaにも美点はある
普及率とか、普及率とか、普及率とか
410デフォルトの名無しさん:2008/11/15(土) 03:30:13
家電製品ってJavaじゃなかったっけ?
411デフォルトの名無しさん:2008/11/15(土) 09:01:16
携帯にはJava程度の言語にしないと死者が続出するのでC++とかは禁止になった
412デフォルトの名無しさん:2008/11/15(土) 09:01:20
海外製家電はどんどんWindows Mobileに置き換わって
Java が減っていく気がするけど、
i mode のせいで日本だけ Java が生き残りそうな気もする。
413デフォルトの名無しさん:2008/11/15(土) 09:14:38
どっかの調査では企業向けの環境で.NETがJ2EEを若干上回ってる。
この2つが他のものを大きく引き離して、あとはホストとかウニックスとか。CORBAもあったな。その分類の仕方に若干違和感を覚えたが。
414デフォルトの名無しさん:2008/11/15(土) 15:23:12
構造体のメンバにstringを加えると何か問題ってありますか?

その構造体の配列を作ったとき、メンバに参照型を含めない場合と違って
配列のひとつひとつの要素がGCの回収対象になったりしますよね?
415デフォルトの名無しさん:2008/11/15(土) 15:34:58
別に問題ない
少なくともその配列への参照が残ってる限りは要素がGCに回収されることはない
構造体とか関係ない
416デフォルトの名無しさん:2008/11/15(土) 15:50:47
>>414
>その構造体の配列を作ったとき、メンバに参照型を含めない場合と違って
>配列のひとつひとつの要素がGCの回収対象になったりしますよね?

GCで問題になるのは、回収対象の数が純粋に増えて困るというケースと、
オブジェクトの参照関係のグラフが複雑になって困るケースの主に2通り。

前者の方を心配してるみたいだけど、
後者を避けるためにメンバから参照型を排除するというのは実際ある。

ただ、デスクトップCLRのGCは優秀だよ。
XNAで作られたゲームすら、PC実行でGCが問題になったケースは聞いたことがない。

漠然とGCを気にしてるだけなら、そこまで気にする必要はないと思う。
417416:2008/11/15(土) 15:54:03
あと「配列のひとつひとつの要素がGCの回収対象になったり」は(構造体配列の場合)誤り。

構造体配列なら、メンバに参照型を持っていようが持っていまいが
配列全体でまとめて寿命管理が行われる。
要素単位で回収されたり回収されなかったりはない。
418デフォルトの名無しさん:2008/11/15(土) 15:59:32
>>416-417
一応Compact Frameworkの話なのですが
問題ないようですね
どうもありがとうございました
419デフォルトの名無しさん:2008/11/15(土) 16:08:03
Compact Frameworkの話なのか……

Compact FrameworkのGCは未だに世代を導入していないので
参照グラフの複雑化がコンスタントに性能に響くことはある。
(どんどんGCの待ち時間が増えていく)

パフォーマンスカウンタの"GC Latency Time"の数字を
まず確認してみるといいんじゃなかろうか。
ttp://msdn.microsoft.com/en-us/library/ms172525.aspx#gc

あとはもう実際試してみて遅くなってるか報告してもらうしか。
420デフォルトの名無しさん:2008/11/15(土) 16:21:28
Mobile機かぁ。

Silverlight 2 for Mobileが正式リリースされたら、
Compact CLRで実行するより
Silverlight 2 (CoreCLR)の方が速かったりしてw
421デフォルトの名無しさん:2008/11/15(土) 23:29:48
javaもc# (dot net)も実際はあんまり差はないと思う。実用的なところでは、どのあたりに差があるの?
422デフォルトの名無しさん:2008/11/15(土) 23:33:21
MSか否か
423デフォルトの名無しさん:2008/11/15(土) 23:34:38
.NET
デスクトップアプリケーションでもそこそこ使われている感じがする。
実質Windows専用。
P/InvokeやCOM相互運用であっという間にネイティブコードを呼び出せる。
ジェネリックがJavaよりまともという評判。
424デフォルトの名無しさん:2008/11/15(土) 23:54:21
LINQとかでちょっとC#の方が先んじてる感じはあるけど、
言語の差なんてのは時間の問題でそのうち追いつかれる。

>>422 がすべて。
正直、SUNじゃ話にならん。
425デフォルトの名無しさん:2008/11/16(日) 00:27:48
だまれ小僧!お前にサンが救えるか!
426デフォルトの名無しさん:2008/11/16(日) 00:28:50
スンとか既に死んでるだろ。
鯖屋は鯖だけ売っとけよ
427デフォルトの名無しさん:2008/11/16(日) 00:29:35
それじゃdot netからjvmを呼べれば好きな方使えるね(もしくは逆にjvmからclrとか)。
すると両方の膨大なクラスを使えるようになるけど、そういうブリッジ用途のライブラリはないの?
428デフォルトの名無しさん:2008/11/16(日) 00:31:52
ライブラリじゃなくて言語だけどJ#……。使ったことないが。
429デフォルトの名無しさん:2008/11/16(日) 00:34:28
>>427
後者はJNIとC++/CLIを使えば容易に実現できる。Eclipseのwin32-wpf版とか。
430429:2008/11/16(日) 00:37:03
あや、JNIってJavaコードのエクスポートも出来るんだっけか。忘れた。
431デフォルトの名無しさん:2008/11/16(日) 01:14:17
>>425
あれ?君・・・何か勘違いしてないか!?
432デフォルトの名無しさん:2008/11/16(日) 01:18:59
いやいや。そういうC++を思い出すような低レベルのじゃなくて、もっと普通に使いやすくしたライブラリなんですけど。
ネイティブへのアクセスAPI使えばそりゃ誰でも作れますがなw
なんかP/Invokeの延長みたいですけど、その発想だとMSっぽいのが出来るような出来ないような・・・・
433デフォルトの名無しさん:2008/11/16(日) 01:25:06
J#ですけど、かなりMSに侵食されましたがまあまあの出来ですよ。
ISO C++のMSプラットフォーム専用がVisual C++と同じだと考えればいいんじゃないでしょうか。
gccとちがってVC++はISO C++にdot netまで組み込んじゃってMS独自の進化をしてますけどそれと同じなんでしょう。

それと、J#は既に作ったバイトコードをどうこうするのではなくて、java言語の文法でms windows native
のクラスファイル(バイトコード)を作るコンパイラなので、橋渡しの用途では全く使えません。
434デフォルトの名無しさん:2008/11/16(日) 01:27:35
J#が出力するのはCILだろうが
435デフォルトの名無しさん:2008/11/16(日) 02:01:05
洋物見てるとおもうんたせけどさ
白人ってあそこの毛は生えないの?
436デフォルトの名無しさん:2008/11/16(日) 02:04:27
生えるよ
437デフォルトの名無しさん:2008/11/16(日) 03:05:07
毛深い白人が現れた
君は鼻くそをほじっている
438デフォルトの名無しさん:2008/11/16(日) 03:14:05
CIL出力して、ブリッジ用途のライブラリが作れるんですか?
439デフォルトの名無しさん:2008/11/16(日) 04:36:02
いまどきJAVAなんか使ってる奴はマヌケw
440デフォルトの名無しさん:2008/11/16(日) 06:38:40
.NETとJavaの相互運用はいまのところXML WebServiceを使ったものが一番まともかな。
441デフォルトの名無しさん:2008/11/16(日) 08:46:59
J#はオプソ化してくれないかな。ライブラリの互換はほどほどでいいから、
JDK5以降の文法をサポートして欲しい。
442デフォルトの名無しさん:2008/11/16(日) 08:53:34
J#のオプ化はありえるんじゃないかな。MSは関わらなくていいけどw
ところでJSript#の方はJ#と同じくもう.Netではサポートされなくなるの?
443デフォルトの名無しさん:2008/11/16(日) 09:12:30
オープンソースやSUNがどうあがいたってMS帝国には勝てません。どうもありがとうございました。
444デフォルトの名無しさん:2008/11/16(日) 09:14:15
JSript#ってなに?

JScript.NETなら.NET対応からこっちほとんど進化しとらんね
ジェネリックすら未サポートだしなー
DLR上で動くJScriptはまた別に用意するらしいが今後はそっちをメインにすんのかね
445デフォルトの名無しさん:2008/11/16(日) 09:37:54
ブロンドなら剃っても目立たないからだろ
446デフォルトの名無しさん:2008/11/16(日) 09:54:12
JScriptはMSがサポートする唯一の動的スクリプトだから結構期待してるんだけど。
未だにVBの方に投資してるけど、ゲイツの影に怯えてんのかな。
447デフォルトの名無しさん:2008/11/16(日) 09:59:33
VB.NETすくりぷと
IronPython
448デフォルトの名無しさん:2008/11/16(日) 10:00:55
> 未だにVBの方に投資してるけど、

VBの主要アーキテクトがM言語に異動しただろ・・・
449デフォルトの名無しさん:2008/11/16(日) 10:03:39
PowerShell
450デフォルトの名無しさん:2008/11/16(日) 10:26:10
ネイティブ用のコンパイラがあればJavaとの差を鮮明にできるのになあ
Windowsというものがあるわけだから
451デフォルトの名無しさん:2008/11/16(日) 10:48:32
C# 、RichTextBoxでの改行の幅?高さ?
を変更することはできますか?
SendMessageを使えばできるのでしょうか??
452デフォルトの名無しさん:2008/11/16(日) 11:02:22
447 名前: デフォルトの名無しさん [sage] 投稿日: 2008/11/16(日) 09:59:33
VB.NETすくりぷと
IronPython
448 名前: デフォルトの名無しさん [sage] 投稿日: 2008/11/16(日) 10:00:55
> 未だにVBの方に投資してるけど、

VBの主要アーキテクトがM言語に異動しただろ・・・
449 名前: デフォルトの名無しさん [sage] 投稿日: 2008/11/16(日) 10:03:39
PowerShell





これらの言語はMS帝国でしか通じないような田舎言語の感じがするんだが・・・
453デフォルトの名無しさん:2008/11/16(日) 11:06:44
>>451
PARAFORMAT2を調べてみて
454デフォルトの名無しさん:2008/11/16(日) 12:11:26
ネイティブコンパイラって意味無くない?

どっちにしてもランタイムが必要になるんだし、
JITで実行時にネイティブコンパイルされるし、
なんならngenで予めネイティブにコンパイルしとけばいいし。
455デフォルトの名無しさん:2008/11/16(日) 12:13:37
っ gcj
456デフォルトの名無しさん:2008/11/16(日) 13:01:59
>>454
ネイティブコンパイラなんて意味ないと俺も思うけども、
アンチは意味とかどうとか関係なくディスりたいだけ。
論理的な思考なんてしてないから。
457デフォルトの名無しさん:2008/11/16(日) 13:22:11
だれがガムをかんでたって?
458デフォルトの名無しさん:2008/11/16(日) 14:36:11
>>456
おまえみたいな文型はとっとと消えろw
459デフォルトの名無しさん:2008/11/16(日) 15:11:39
>>456
論理的じゃないやつとはディスりたくない
自分の言いたいこと条件反射で言うだけでディスにならない
460デフォルトの名無しさん:2008/11/16(日) 15:14:39
>>459
ディスる
の意味わかってるか?

ディスカッションするの略じゃないぞ
461デフォルトの名無しさん:2008/11/16(日) 15:16:15
> 論理的じゃないやつとはディスりたくない
わろちw
462デフォルトの名無しさん:2008/11/16(日) 16:14:31
ディスるとは - はてなキーワード
ディスる - 軽蔑し、攻撃すること。 英語で反意語を意味する接頭辞「dis」、もしくは「disrespect」(軽蔑する)に由来。 ヒップホップシーンでは大小さまざまなbeef( 論争)が発生し...
463デフォルトの名無しさん:2008/11/16(日) 16:19:26
464デフォルトの名無しさん:2008/11/16(日) 17:31:14
リヴァイアスか
465デフォルトの名無しさん:2008/11/16(日) 18:09:25
暗号モジュールの置き換えやっているのですが、PKCS5とPKCS7て、
互換があると考えてよいのですかね?
前のモジュールではパディングにPKCS5を利用していて、
C#へ置き換えしようとしたら、PaddingMode.PKCS7しかないという。。。
同じ暗号文字列作れたから大丈夫だとは思っているのですが、
埋め込みのしかたに何か違いがあるかなと。。。
なかなかその辺を記載しているページもないので、質問させてもらいました。
466デフォルトの名無しさん:2008/11/16(日) 18:30:46
つ RFC2898とRFC3852
PKCS#5はブロック長64bitしか考慮してない
PKCS#7では任意のブロック長に対してパディングできるように記述されてる
どっちもパディングの考え方は同じ、余ったオクテットは余ったオクテット数の値で埋める
467デフォルトの名無しさん:2008/11/16(日) 18:31:31
何の組織だよ
468デフォルトの名無しさん:2008/11/16(日) 19:31:47
クラウザーさんディスってんのか?
469デフォルトの名無しさん:2008/11/16(日) 19:48:36
そうディス!
470デフォルトの名無しさん:2008/11/16(日) 19:49:32
論理的じゃないやつとはディスりたくないディス。
自分の言いたいこと条件反射で言うだけでディスにならないディス。
471デフォルトの名無しさん:2008/11/16(日) 19:51:27
おまえらC#の話題でディスろうぜ
472デフォルトの名無しさん:2008/11/16(日) 20:20:09
C#スレでまでわざわざJava厨乙ディス
473デフォルトの名無しさん:2008/11/16(日) 20:28:32
では、IL Dis - assembler のネタを少々。
using System;
class TestG {
 static int ft(int i, int sum) {
   return i == 0 ? sum : ft(i - 1, sum + i);
 }
 static void Main() {
   int cnt = 1001;
   Console.WriteLine("{0} : {1}", cnt, ft(cnt, 0));
   cnt = 1000001;
   Console.WriteLine("{0} : {1}", cnt, ft(cnt, 0)); // ここでStackOverflow
 }
}
csc /o testg.cs でコンパイル
ildasm /OUT=testg.il testg.exe ディス・アセンブル
testg.il を修正
    IL_0008:  add
              tail.      // 追加
    IL_0009:  call       int32 TestG::ft(int32,
                                         int32)
ilasm testg.ilでアセンブル
今度はStackOverflowが起きない。
474デフォルトの名無しさん:2008/11/16(日) 20:35:23
末尾再帰って、x64版のCLRだと.tailフラグつけなくても自動でやられるって聞いた。
今日、Vista x64入れたんで、試してみようかなぁ。
475デフォルトの名無しさん:2008/11/16(日) 20:36:54
俺その書き方気に入らないッス!{
}
括弧の位置がおかしいッス!{
}
476デフォルトの名無しさん:2008/11/16(日) 20:37:45
>>474
報告よろしくディス
477デフォルトの名無しさん:2008/11/16(日) 20:39:22
>>475
うp用に行数減らしたいのでそういう書き方にしてますディッス!
478デフォルトの名無しさん:2008/11/16(日) 20:45:50
新しい行にやる奴ってただ行を浪費するだけじゃん。
479デフォルトの名無しさん:2008/11/16(日) 20:52:20
見やすさが違うんディス
480デフォルトの名無しさん:2008/11/16(日) 20:56:14
if (dis){
}else{
dis();
}
481デフォルトの名無しさん:2008/11/16(日) 21:00:24
なんディスかこのスレは!
482デフォルトの名無しさん:2008/11/16(日) 21:00:50
public Form GetDis()
{
return this;
}
483デフォルトの名無しさん:2008/11/16(日) 21:05:18
/// <summary>
/// C#, C♯, C#相談室では随時相談を受け付けています
/// </summary>
class Dis : IDispose
{
  public void Dispose(bool)
  {
    Dis();
  }
}
484デフォルトの名無しさん:2008/11/16(日) 21:08:00
ディスマーチが行われていると聞いて
485デフォルトの名無しさん:2008/11/16(日) 21:11:45
C#ばかりもなんだし、ディスカウントショップにでも行くか。
486デフォルトの名無しさん:2008/11/16(日) 21:12:25
MSべったりのリッチャーたんがK&Rスタイルでインデントしていた
なんかうれしかったのでぃす
487デフォルトの名無しさん:2008/11/16(日) 21:15:29
今時ハンガリアン記法とか
488デフォルトの名無しさん:2008/11/16(日) 21:26:34
as
is
typeof
の使い方を教えて下さい
489デフォルトの名無しさん:2008/11/16(日) 21:36:30
おい早く教えろ
C#は新しいキーワードが多いぞ
490デフォルトの名無しさん:2008/11/16(日) 21:39:36
T t = obj as T;
objがTにキャストできればキャストし、できなければnullが返るのディス。

bool bl = obj is T;
objがTと互換性があればtrueが返るのディス。

Type type = typeOf( obj );
Type型の変数が返るのディス。
491デフォルトの名無しさん:2008/11/16(日) 21:41:43
× Type type = typeOf( obj );
○ Type type = typeof( obj );

ディス。

492デフォルトの名無しさん:2008/11/16(日) 21:43:17
>>490
typeof は違うのディス。
typeof(T) の形でオペランドは型なのディス。
実行時の型がほしい場合は obj.GetType() を使うのディス。
493デフォルトの名無しさん:2008/11/16(日) 21:44:18
ここでVBの解説をして混乱させるのでぃす
If TypeOf オブジェクト Is 型 Then  はC#のisと同じ
If オブジェクト1 Is オブジェクト2 Then は == と同じ (除くOverride)
494デフォルトの名無しさん:2008/11/16(日) 21:44:45
まちがえたディス。みたび訂正しようとしたら>>492に先越されたのディス
495デフォルトの名無しさん:2008/11/16(日) 21:48:29
面白いと思ってるかもしれんが、そんなのがウケるのはヲタ体質の君みたいな奴にだけだから。
正直いって大多数の非ヲタグラマにとっては気色悪いんだけなんだよそういうの。
496デフォルトの名無しさん:2008/11/16(日) 21:51:18
よう、>>459
497デフォルトの名無しさん:2008/11/16(日) 21:54:44
>objがTにキャストできればキャストし、できなければnullが返るのディス。
(T)objとどう違うんだ?

>objがTと互換性があればtrueが返るのディス。
互換性とは?class継承しているかinterface実装しているということか?
498デフォルトの名無しさん:2008/11/16(日) 21:56:54
ディスディス言ってる粘着気質で鬱憤の治まらない奴
リアルでは関わりたくないディスね
499デフォルトの名無しさん:2008/11/16(日) 21:58:58
>>497
> (T)objとどう違うんだ?
キャストは失敗した場合例外が投げられる。

> 互換性とは?class継承しているかinterface実装しているということか?
概ねそういうこと。
参照変換、ボクシング・アンボクシングができるか。
500デフォルトの名無しさん:2008/11/16(日) 21:59:32
>>497
(T)objはキャストできなければ例外を投げる。
obj is Tは(obj as T) != nullと同じ。
501デフォルトの名無しさん:2008/11/16(日) 22:03:21
気になってMSDNライブラリを見たら、
asでは参照変換とボックス化変換しかできないって書いてあった。
http://msdn.microsoft.com/ja-jp/library/cscsdfbt.aspx
502デフォルトの名無しさん:2008/11/16(日) 22:07:26
ありがとう
503デフォルトの名無しさん:2008/11/16(日) 22:13:12
>>473-476
だめだった。普通にStackOverflow。
504デフォルトの名無しさん:2008/11/16(日) 22:15:04
あっ、>>503 のやつ、リリース実行だとオーバーフローしない。
505451:2008/11/17(月) 12:00:51
PARAFORMAT2をしらべてみて、
private const uint CFM_SIZE = 2147483648; //0x80000000
private const int EM_SETCHARFORMAT = 1092;
[StructLayout(LayoutKind.Sequential)]
private struct CHARFORMAT{
public int cbSize;
public uint dwMask;
public uint dwEffects;
public int yHeight;
public int yOffset;
public int crTextColor;
public byte bCharSet;
public byte bPitchAndFamily;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public char[] szFaceName;
public short wWeight;
public short sSpacing;
public int crBackColor;
public int LCID;
public uint dwReserved;
public short sStyle;
public short wKerning;
public byte bUnderlineType;
public byte bAnimation;
public byte bRevAuthor;
}
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern int SendMessage(HandleRef hWnd, int msg,int wParam, ref CHARFORMAT lp);
つづきます
506451:2008/11/17(月) 12:01:27
private void SetCharFormat()
{
richTextBox1.SelectAll();
CHARFORMAT fmt = new CHARFORMAT();
fmt.cbSize = Marshal.SizeOf(fmt);
Debug.WriteLine(String.Format("size = {0,0:D0}",fmt.cbSize));
fmt.dwMask = CFM_SIZE;
fmt.yHeight = 40; // ←これが改行幅?
int ret = SendMessage(new HandleRef(richTextBox1.Handle, Handle), EM_SETCHARFORMAT, SCF_SELECTION, ref fmt);
Debug.WriteLine(String.Format("ret = {0,0:D0}",ret));
richTextBox1.SelectionStart = 0;
Invalidate();
という感じにやってみたのですが、うまくいきません。教えてくれませんか??
507デフォルトの名無しさん:2008/11/17(月) 13:08:16
改行幅ってのはフォント固有なんじゃね
yHeightって、ようするにフォントサイズだと思うけど

あと関係ないと思うけどCHARFORMAT2の最後に
BYTE bReserved1
ってメンバが足りてないね
508デフォルトの名無しさん:2008/11/17(月) 19:25:13
ところで改行幅って行間と段落間どっち?
509デフォルトの名無しさん:2008/11/17(月) 22:15:55
VisualStudio2008でExcelの共有アドインを作成したのですが、
ExcelファイルをダブルクリックしてExcelを開いたとき、
アドインがExcelに表示されません。
共有アドインのConnectクラスのOnConnectionメソッドが
呼び出されていないようです。
どうしてかわかる方いますでしょうか?
ちゃんと表示される方法をご存知のかたお教えください。
ちなみにスタートメニューからExcelを開いたときはアドインは
ちゃんと表示されます。
510デフォルトの名無しさん:2008/11/17(月) 23:54:54
古いファイルじゃなく、新しいファイルを保存してから開いても無理?
511451:2008/11/18(火) 00:17:46
richTextBoxを配置して、フォントをMS UI Gothic, 9ptに設定して、
AppendTextでテキストをたして、AppendText(System.Environment.NewLine);で
改行しているのですが、かなり行間があくのです。
これを狭くしたいだけなんですよね・・・
512デフォルトの名無しさん:2008/11/18(火) 00:25:19
ファイルを新規作成して保存して、Excelを閉じて、
先ほど作成したファイルをダブルクリックして開いた
場合でしょうか?
試せる環境が会社にしかないのでわからないです。ごめんなさい。
ファイルの新しい、古いで違いがあるのでしょうか?
513デフォルトの名無しさん:2008/11/18(火) 02:21:27
PARAFORMAT2を調べろと言われて、何故CHARFORMATが出てくるのかと(ry

PARAFORMAT2 用意し
cbSiz dwMask(PFM_LINESPACING) bLineSpacingRule dyLineSpacing を設定し
SendMessage

後はググれ
514451:2008/11/18(火) 10:39:53
構造体を以下のように定義して、
private const int MAX_TAB_STOPS = 32;
[StructLayout(LayoutKind.Sequential)]
public struct PARAFORMAT2
{
public uint cbSize;
public uint dwMask;
public ushort wNumbering;
public ushort wEffects;
public int dxStartIndent;
public int dxRightIndent;
public int dxOffset;
public ushort wAlignment;
public short cTabCount;
unsafe public fixed int rgxTabs[MAX_TAB_STOPS];
public int dySpaceBefore;
public int dySpaceAfter;
public int dyLineSpacing;
public short sStyle;
public byte bLineSpacingRule;
public byte bOutlineLevel;
public ushort wShadingWeight;
public ushort wShadingStyle;
public ushort wNumberingStart;
public ushort wNumberingStyle;
public ushort wNumberingTab;
public ushort wBorderSpace;
public ushort wBorderWidth;
public ushort wBorders;
}
const int EM_SETPARAFORMAT = 0x0447;
const uint PFM_LINESPACING = 0x00000100u;
515451:2008/11/18(火) 10:41:41
SendMessageはこれ
[DllImport("user32", SetLastError = true)]
static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, ref PARAFORMAT2 lParam);
で、
PARAFORMAT2 pf = new PARAFORMAT2();
pf.cbSize = (uint)Marshal.SizeOf(typeof(PARAFORMAT2));
pf.dwMask = PFM_LINESPACING;
pf.bLineSpacingRule = 4;
pf.dyLineSpacing = 190;
richTextBox1.SelectAll();
SendMessage(richTextBox1.Handle, EM_SETPARAFORMAT, IntPtr.Zero, ref pf);
これで、行間がつまりました。
pf.dyLineSpacing を190以下にするとフォントがかけていきますが(笑
ありがとうございました。
516451:2008/11/18(火) 10:42:22
でもこれ、AppendTextするたびに設定しないといけないのかな・・・
517509:2008/11/18(火) 19:35:01
510さんへ:
> ファイルを新規作成して保存して、Excelを閉じて、
> 先ほど作成したファイルをダブルクリックして開いた
> 場合でしょうか?
試してみたところ、大体だめでしたが、珠にファイルの新古
に関わらずアドインが表示されることがあったので、
タイミングの問題かもしれません。
518465:2008/11/18(火) 20:02:49
>>466
おお
ありがとうございます!
519デフォルトの名無しさん:2008/11/19(水) 23:44:10
string型の変数の中身をStreamにするのってできる?
Schemeで言うとcall-with-input-stringみたい感じなヤツ
520デフォルトの名無しさん:2008/11/19(水) 23:47:02
StringReaderならあるけど
521デフォルトの名無しさん:2008/11/20(木) 00:05:09
うーんそれってSystem.IO.Streamのサブクラスじゃないよね?
あるライブラリを使いたくて、それがinput用のStreamとoutput用のStreamを要求してくるんだけど手元にはstring型のデータしかないです…みたいな状況なんだけど…

ちなみに最終的にやりたいことは
http://sourceforge.net/projects/tidynet
↑これ使って"<title>犬好き集まれ<body>だが猫のほうが好きだ<br>ですよね?</body>"みたいな文字列をキレイなXHTMLに変換してほしいとかそういう感じ
522デフォルトの名無しさん:2008/11/20(木) 00:08:14
>>521
MemoryStream使えばいいんじゃない?
自分でMemoryStreamの同等物を作ってもいいと思うけど。
523デフォルトの名無しさん:2008/11/20(木) 00:12:22
Encodingでstringからbyte[]に変換してMemoryStreamに渡す
524デフォルトの名無しさん:2008/11/20(木) 00:20:12
>>522-523
あ、なんとなくわかったかも そーゆーのがあるんだねありがと!やってみる!
525521:2008/11/20(木) 01:11:34
事後報告
なんかがんばったり調べなおしたりしたらできました
ヒントくれたお二方どもアリガト!

参考サイト
ttp://www.nextdesigns.ca/articles/tidy.aspx
526デフォルトの名無しさん:2008/11/20(木) 17:55:10
文字列"0xffffff"をnew byte[]{0xff,0xff,0xff}
に変換してくれるメソッドはありますか
527デフォルトの名無しさん:2008/11/20(木) 18:10:52
そんな限定的なのは標準ライブラリにはない
int.TryParseとかBitConverterとか
エンディアンをどうするつもりか知らないけど
528デフォルトの名無しさん:2008/11/20(木) 18:15:35
一発で、となるとちょっとな。
System.Convert.ToInt32とかSystem.Drawing.ColorTranslator.FromHtmlも状況によっては使うかな。
529デフォルトの名無しさん:2008/11/20(木) 18:54:06
bool TryParse( string str, out byte[] bytes )
{
    int i;
    bytes = null;
    if( !String.IsNullOrEmpty( str ) )
    {
        if( str.StartsWith( "0x", StringComparison.OrdinalIgnoreCase ) )
            str = str.Substring( 2 );

        if( Int32.TryParse( str, System.Globalization.NumberStyles.HexNumber, null, out i ) )
        {
            i &= 0xffffff;

            bytes = new byte[3];

            // 順番は知らん
            bytes[0] = (byte)( ( i >> 16 ) & 0xff );
            bytes[1] = (byte)( ( i >> 8 ) & 0xff );
            bytes[2] = (byte)( i & 0xff );

            return true;
        }
    }
    return false;
}
530デフォルトの名無しさん:2008/11/20(木) 20:00:13
ひどいコードだな
531デフォルトの名無しさん:2008/11/20(木) 20:50:24
よしではC#勉強中のVB厨の俺にまかせろ

byte[] ConvHexToByteArray(string hex, bool isLittleEndian)
{
  hex = hex.TrimStart('0');
  List<byte> bytes = new List<byte>();
  int readPtr = 0;
  int hexLen = hex.Length;
  if (hexLen % 2 == 1)
  {
    bytes.Add(byte.Parse(hex.Substring(readPtr, 1), NumberStyles.HexNumber));
    ++readPtr;
  }

  while(readPtr < hexLen)
  {
    bytes.Add(byte.Parse(hex.Substring(readPtr, 2), NumberStyles.HexNumber));
    readPtr += 2;
  }

  if (isLittleEndian) bytes.Reverse();
  return bytes.ToArray();
}
532デフォルトの名無しさん:2008/11/20(木) 20:56:52
先に要素数計算して配列に入れた方が効率的
533デフォルトの名無しさん:2008/11/20(木) 21:36:53
効率てw
100万桁のhexを処理するとかなら話もわかるが。
534デフォルトの名無しさん:2008/11/20(木) 21:41:33
毎回substringはかっこ悪いな
535デフォルトの名無しさん:2008/11/20(木) 21:46:07
ならもっとスマートでクールなコードをどうぞ。
536デフォルトの名無しさん:2008/11/20(木) 22:35:09
文句だけの奴が一番かっこわるい
537デフォルトの名無しさん:2008/11/20(木) 22:39:25
>>535
C Major 7th
538デフォルトの名無しさん:2008/11/22(土) 20:53:40
Linqのコードみてて気になったんだけどしたのこのthisの意味って何?
public static int Count<TSource>(this IEnumerable<TSource> source);
539デフォルトの名無しさん:2008/11/22(土) 20:56:38
拡張メソッド
540デフォルトの名無しさん:2008/11/22(土) 21:04:50
サンキュー、ぐぐったら何となく意味わかったわ
クラス定義とは関係なく別のクラスメソッドを拡張できるのか邪悪だな
541デフォルトの名無しさん:2008/11/23(日) 02:20:29
邪悪だが激しく便利でもある
542デフォルトの名無しさん:2008/11/23(日) 07:24:49
同意
便利なメソッドなんだが、クラス本体に入れるのがためらわれるようなヘルパー的なものを拡張メソッドにしてるがこれはどうしようか悩み中
543デフォルトの名無しさん:2008/11/23(日) 23:03:32
GPで2分木から3分木にする場合ってどうすればいいですか?
544デフォルトの名無しさん:2008/11/23(日) 23:22:56
>>543
GPって何?
545デフォルトの名無しさん:2008/11/23(日) 23:27:12
Grand Prix
546デフォルトの名無しさん:2008/11/24(月) 00:06:08
General Protection
547デフォルトの名無しさん:2008/11/24(月) 00:23:47
どれだよ。

>グランプリ (grand prix)。
>ジョージアパシフィック社 (Georgia Pacific)。アメリカ合衆国の製紙メーカー。
>ゴールドピーク(Gold Peak Group)電池メーカーなど。
>グラフィックパワー社 (Graphic Power corporation)。
>フランス海外県のグアドループの国名コードおよびccTLD。
>グラウンドプレーンアンテナ (groundplane antenna)
>特色ある大学教育支援プログラム(特色GP: Good Practice)。
>現代的教育ニーズ取組支援プログラム(現代GP: Good Practice)。
>ゲネラルプローベ(Generalprobe[独])。ゲネプロ。
>ゲネラル・パウゼ (General Pause)、全休止。音楽で、全てのパートが休止すること。
>遺伝的プログラミング (genetic programming)
>グリーンプリンティング (Green Printing)。印刷物の環境基準の一つ。
>汎用 (general purpose)
>グループ (group)
>ジープの語源と言われる。
>粗利益 (gross profit)のこと。
>ゲームポットポイント(Gamepot Point)

548デフォルトの名無しさん:2008/11/24(月) 00:25:20
なぜリストにGeneric Programmingがないのだ
549デフォルトの名無しさん:2008/11/24(月) 00:50:19
>>544
遺伝的プログラミングです。説明不足ですいません。
550デフォルトの名無しさん:2008/11/24(月) 01:11:15
インテリセンスの日本語化マダー?
551デフォルトの名無しさん:2008/11/24(月) 03:17:56
院照り扇子
552デフォルトの名無しさん:2008/11/24(月) 13:10:31
Turbo Pascal25年に寄せたヘジたんの回顧録。
ttp://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0811c.html#D20081123-6

この人生粋のハッカーだと改めて思た。
今でも気に入った仕様は自分で実装してるらしいね。
LINQベータ版についてきてたSequence.csはヘジたん自らが書いたとか。
553デフォルトの名無しさん:2008/11/24(月) 13:52:00
また気色悪いヲタグラマが出てきた。
554デフォルトの名無しさん:2008/11/24(月) 14:16:49
ヲタグラマ呼ばわりする方が気色悪いわ
555デフォルトの名無しさん:2008/11/24(月) 15:11:51
>>552
おまえはヘジたん波にキモイ
556デフォルトの名無しさん:2008/11/24(月) 18:09:03
この先生きのこだと改めて思た。
557デフォルトの名無しさん:2008/11/24(月) 18:58:47
558デフォルトの名無しさん:2008/11/24(月) 19:15:38
ふらっとと相談室一つにしようって奴まだ粘着してたのなwその粘着質は尊敬に値するよw
559デフォルトの名無しさん:2008/11/24(月) 19:48:58
CのソースからC#へ変換してくれるソフトってない?
560デフォルトの名無しさん:2008/11/24(月) 20:09:42
ふらっとの次スレはこちら。

ふらっとC#,C♯,C#(初心者用) Part34
http://pc11.2ch.net/test/read.cgi/tech/1227521785/
561デフォルトの名無しさん:2008/11/24(月) 20:19:46
>>559
VC++で/clr付けてコンパイル→C#へ逆コンパイル
562デフォルトの名無しさん:2008/11/24(月) 20:35:19
>>559
fputs( "using System;\n", fp );
   :
   :
563デフォルトの名無しさん:2008/11/24(月) 20:45:06
なるほど逆コンパイルか
564デフォルトの名無しさん:2008/11/24(月) 20:54:26
プログラム起動時にtmpフォルダ作って(中身1Mくらい)、
終了時に削除するんだけど、これ毎回やってたらゴミ箱すごいことになります。

削除する必要がなければ、やはり削除しないほうがいいでしょうか?
565デフォルトの名無しさん:2008/11/24(月) 20:58:23
削除する必要がないなら削除しなくてもいいんじゃないの
566デフォルトの名無しさん:2008/11/24(月) 20:59:35
削除してたらゴミ箱がすごいことにならないのでは
567デフォルトの名無しさん:2008/11/24(月) 21:01:04
ゴミ箱に入れずに削除すればいいじゃんw
568デフォルトの名無しさん:2008/11/24(月) 21:04:20
intと同じ構造体の別名が欲しいと思ったら、どうすればいいですかね?
aliasだとうまくいかなかった。
569デフォルトの名無しさん:2008/11/24(月) 21:05:29
intで我慢しろ
570デフォルトの名無しさん:2008/11/24(月) 21:05:30
>>568
無理
571デフォルトの名無しさん:2008/11/24(月) 21:12:48
>>568
System.Int32 をエイリアスするのだとだめなの?
572デフォルトの名無しさん:2008/11/24(月) 21:13:20
>>568
そんなことがしたい動機が理解できないけど、
implicitで暗黙的にintと相互に変換できる構造体を作るとか。
573デフォルトの名無しさん:2008/11/24(月) 21:15:21
using Warosu = System.Int32;
574568:2008/11/24(月) 21:23:30
やっぱムリなのか・・・d

実装的にはintそのままで全く問題ないんだけど
意味を持った値なんで、メソッド呼び出しの引数なんかで
明示的に"ただのintじゃないよ"って示したかったんだ。

Int32のaliasだと、VSの入力支援でintって表示されてダメだった
575デフォルトの名無しさん:2008/11/24(月) 21:28:00
そういうのは伝統的に仮引数で表現するんじゃね
アプリケーションハンガリアンとかさ
576デフォルトの名無しさん:2008/11/24(月) 21:29:20
>>574
言ってることがやはりよく分からん。
それってIntPtr的なものとも違うよね。

まあ多分根本的になにか考え違いをしてるんだろうな。
577デフォルトの名無しさん:2008/11/24(月) 21:32:03
>>574
単にenumで解決するとかって落ちじゃない?
578デフォルトの名無しさん:2008/11/24(月) 21:34:37
んでtypedefが欲しいと、ありがちな無いものねだりか。

C#にaliasというキーワードはちゃんとあるんだね。使いどころがめちゃくちゃニッチだ。
extern alias hogehoge;
579デフォルトの名無しさん:2008/11/24(月) 21:38:29
>>574
何がしたいのかわからんがラッパーみたいなことで良いのかな。
struct Hoge { public int Foo; } とかどうよ。
580デフォルトの名無しさん:2008/11/24(月) 21:41:16
>>576
思うに、おまいの方が根本的(ry
581デフォルトの名無しさん:2008/11/24(月) 21:41:59
そういえば::演算子とかあったな
usingで定義した名前空間エイリアスを使っていることを明示するだけの超ニッチな演算子
582デフォルトの名無しさん:2008/11/24(月) 21:49:32
>>580
具体的にどうぞ。
いや別に無理せんでもいいよ。

ただのintじゃない、意味を持っていることを示したいんだ、というが、
コード中のどのリテラルも変数も意味を持たないものなんてありえないだろう。
583デフォルトの名無しさん:2008/11/24(月) 21:52:53
ハンドル的なものなら>>572みたいにするべきだね
それをIntPtr的なものと表現してるんだろう
584586:2008/11/24(月) 22:03:08
あー、色々説明下手で申し訳ないです・・・

>>575
確かにメソッドだけなら引数名で問題ないですね。
ListとかDictionary使ったら、<int>や<int, int>が溢れて
なんだかわけがわからないコードになったので。

どっちかというと、出来あがったライブラリを使う時とかよりも
開発段階で自分が混乱したり煩雑になったりしたので
今後同じような状況になった時の為の回避策はあるのかなあ、と。

>>579
最終的にはとりあえずそんなかんじでInt32の劣化コピーみたいな構造体を作りました。
ただ演算子の再定義(というか複製)を作るだけで100行近くいったので
無駄が多いかなー、と。

>>582
あ、意味のある値じゃなくて、意味のある型・・・ってことでしたすいません
IntPtrとかハンドルはよく分からないですすいません後でぐぐっときます
585584:2008/11/24(月) 22:03:38
ちがった>>568です
586デフォルトの名無しさん:2008/11/24(月) 22:09:21
>>584
じゃあ struct + implicit でいいんじゃね?
587デフォルトの名無しさん:2008/11/24(月) 22:15:03
3連休で、C#はじめてみました。


顧客リストを永続化されたデータからメモリにロードします。
ロードされたリストは、複数の画面に共通で、Aという画面で変更されたら
B,C,D...の画面でもシンクロして変わります。

私では、うーん。いい方法がおもいつかね。。。
こういったスコープの広いデータは、どのようにもつべきなんだろう。。。

Cのときは、構造体の配列をグローバルにもたせていたのだが、C#では
どうしたらいいでしょうか?
588デフォルトの名無しさん:2008/11/24(月) 22:18:04
Application クラスのメンバーとか、
その画面を全部一括管理してるクラスのメンバーとか。

その用途だと、Notify パターン使って値の変更を通知するとかでもいい気がするけど。
589デフォルトの名無しさん:2008/11/24(月) 22:18:07
データソースとか使うからあんまりそういうレベルの話にはならないと思う
590デフォルトの名無しさん:2008/11/24(月) 22:20:20
Notifyパターンって初めて聞いた
Observerのことなら,変に気取らないで普通にイベント使うべき
591デフォルトの名無しさん:2008/11/24(月) 22:29:14
INotifyPropertyChangedじゃないか?
592デフォルトの名無しさん:2008/11/24(月) 22:29:43
皆様ありがとうございます。
Notifyってことは、Mediatorパターンかとおもうのですが、
あっていますでしょうか?

私は、本当に単にデータをメモリに読み込み、そこを簡単なコードで
登録、閲覧、変更、削除をしたいだけなんです。
Cなら create(a,b,c..), select(...), update(), delete()
みたいにストレートで書いていけてたんですが、C#だと588さんの
いわれてるように、画面一括管理するManagerクラスをつくって
それのメンバーにList<>をもたせて、それを子画面作成の度に
コンストラクタで渡す、のような方法が普通なのかな?

593デフォルトの名無しさん:2008/11/24(月) 22:33:26
データを管理するクラスを作って,そのインスタンスを各画面に渡せばいいんじゃね
List<>を渡すのはさすがにお粗末
594デフォルトの名無しさん:2008/11/24(月) 22:34:38
むしろマネージャーに各画面を渡して登録する
595デフォルトの名無しさん:2008/11/24(月) 22:38:30
データを保持するクラスAをつくってそのオブジェクトへの参照を
各画面にわたし、各画面では、その参照をいじるということですか?

やりたいことの簡単さから離れて、えらくたいそうなことをしている
ように感じるのですが。。。最初だけなのかなぁ
596デフォルトの名無しさん:2008/11/24(月) 22:41:23
いやいや
Listを直接渡しちゃったら変更の通知とかどうすんの
特別なクラスにしてれば,必要に応じて検索のためのメソッドを追加したりすることもできるでしょ
597デフォルトの名無しさん:2008/11/24(月) 22:46:27
なるほど。
Cでの貧乏くささよりも、富豪的発想で、自由度、可変性をひたすら追求
すると。。。そういう視点で作ってみます。
598デフォルトの名無しさん:2008/11/24(月) 22:52:49
なんだコイツ
599デフォルトの名無しさん:2008/11/24(月) 23:10:50
シングルトンでも使ってろ
600デフォルトの名無しさん:2008/11/24(月) 23:14:28
>>597
ポインタ本の人の言じゃないけど、データクラスを作るというC#っぽい今時の設計でも、
マルチプルインスタンスへの対応が容易ということ以外に違いはあまりないと思うけど。

ただハンドルを引数に取るselect()とかupdate()とかいう「関数」が
ハンドルの代わりにインスタンスで対象を指定する「インスタンスメソッド」に
変わるだけじゃん。
601デフォルトの名無しさん:2008/11/24(月) 23:15:10
>>599
そういう目的のシングルトンはグローバル変数と呼ぶ
602デフォルトの名無しさん:2008/11/24(月) 23:28:43
そういう意味で皮肉で書いたのだが
603デフォルトの名無しさん:2008/11/25(火) 08:37:12
猛解決してるかもしれんけど、
>>584はC++でいう
#define int HOGE
みたいなことがしたいんじゃね
604デフォルトの名無しさん:2008/11/25(火) 09:05:18
>>600
ハンドルはハンドルでしかないけど
インスタンスには型情報その他があるじゃんかよぉ
605デフォルトの名無しさん:2008/11/26(水) 11:55:17
FxCop等でDisposeメソッド内でGC.SuppressFinalize( this )を呼ぶよう警告がでるんですが、
そもそもファイナライザを実装していないクラスならば、
IDisposableを継承していてもSuppressFinalizeする必要はないですよね?

それとも呼ぶことで何かGCコストが下がったりするんでしょうか?
606デフォルトの名無しさん:2008/11/26(水) 12:14:15
必要ないね

ところでIDisposableを継承って違和感
インターフェイスに対してはIDisposableを実装って言わない?
InheritsとImplements
607デフォルトの名無しさん:2008/11/26(水) 12:33:31
あれ?ファイナライザなくても警告って出たっけ?
608デフォルトの名無しさん:2008/11/26(水) 14:34:32
http://dobon.net/vb/dotnet/file/xmlserializer.html
この方法を使ってXMLとしてデータを読み書きしているんですが、
データ件数が1600件ぐらいで、
XMLファイルの行数としては、18000行ぐらいのテキストファイルになるんですが、
読み込みのときに強制終了するようです。
やはりデータが大きすぎるのが原因だと思うのですが、どう解決したらいいのかさっぱりわからない状態です。
どなたか知恵を貸してください
609デフォルトの名無しさん:2008/11/26(水) 14:39:48
DOMパーサの代わりにSAXパーサを使えばおk。
ただSAXは使いにくいので、LINQ to XMLあたりを試してみるといいかも。
(あれは確かSAXの上にDOM風のインタフェースを構築してたはず)
610デフォルトの名無しさん:2008/11/26(水) 14:40:09
するようですってなんで伝聞形なんだ
例外メッセージぐらい書いてくれ
データ件数が少なければ問題ないのか
611デフォルトの名無しさん:2008/11/26(水) 14:41:17
>>608
追記です。
XMLから読み込んだデータは、List<Hoge>として受け取って、
すべて読み込んだ(変数に格納した)あとに、
その変数をforeachで回して DataGridViewに表示させています。
foreach (Product product in products)
{
   int index = dgv.Rows.Add();
   dgv[0, index].Value = product.Code;
   dgv[1, index].Value = product.Name;
         :
         :
     全部で9データ(カラム)
}
612デフォルトの名無しさん:2008/11/26(水) 14:45:31
>>609
SAX??既にXMLとしてデータがあるのですが大丈夫でしょうか?

>>610
System.InvalidOperationException
{"XML ドキュメント (4462,19) でエラーが発生しました。"}
{"EntityName を解析中にエラーが発生しました。 行 4462、位置 19 です。"}
こんな感じのエラーです。

データを20件ぐらいで読み込むとエラーが出なかったので、
データ量の問題だと思いました。
613デフォルトの名無しさん:2008/11/26(水) 14:47:33
エラーが出るのは何件なの?
何件までは大丈夫で何件以上は必ず落ちる、ってとこまで検証しないと
データ量と言い切ってしまうのはよくない。
まあ量の問題なのかもしれんけど
614デフォルトの名無しさん:2008/11/26(水) 14:53:26
多分該当個所がXMLとして変なことになってる
XMLの4462行をじっくり確認
615デフォルトの名無しさん:2008/11/26(水) 14:55:36
あ、データ件数の問題じゃないかもしれない!
>>612のエラーをもとに、
4462行を含んだデータの1つ前までを読み込むと成功、
4462行を含んだデータを含ませるとエラー、
4462行を含んだデータの次のデータを含ませると成功、、、

やはりこの行に問題があるみたいです。
エラーってちゃんと見るもんですね。。

もう1度検証してみます!ありがとうございました。
616デフォルトの名無しさん:2008/11/26(水) 14:57:13
4462行に半角の&があるんですが、これが原因のようです。
なんで&はだめなんだろう。。
617デフォルトの名無しさん:2008/11/26(水) 14:59:49
>>616
XMLの基礎から勉強してくれ
618デフォルトの名無しさん:2008/11/26(水) 14:59:56
特殊文字をエスケープしてないのかいな
619デフォルトの名無しさん:2008/11/26(水) 15:05:44
すいません。。お恥ずかしい、、、
&とかでおkですか?
620デフォルトの名無しさん:2008/11/26(水) 15:11:40
みなさんありがとうございました。
おかげでなんとかなりそうです。
621デフォルトの名無しさん:2008/11/26(水) 17:34:49
XmlSerializerはXmlReader/Writerを直接使ったコードを自動生成するから
下手に自分で書くより速かったりする
622デフォルトの名無しさん:2008/11/26(水) 18:15:09
VS2005&C#でwin2000用(framework2.0)のアプリケーションを開発しようとしています。
で、クエリビルダを組み込みたいのですが、どうすればいいでしょうか?
623デフォルトの名無しさん:2008/11/26(水) 19:02:23
部下に指示
624デフォルトの名無しさん:2008/11/26(水) 20:08:53
VC#2008 ExpressEditionを使ってWindowsアプリケーションを作成しています。

配布の際に.NET Framework2.0を必須コンポーネントとして指定していて、
必須コンポーネントのインストール場所を"アプリケーションと同じ場所から〜"に設定しているのですが、
うまくいかず↓のページへたどり着きました。
http://forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=276858&SiteID=7

上記URLのケースを真似ていろいろ試してみたのですがうまくいきません。
2005と2008だとどこか違うのでしょうか?

どなたかご教授願います。
625デフォルトの名無しさん:2008/11/26(水) 22:06:30
>> エラーってちゃんと見るもんですね。。


うどんふいたわ
626デフォルトの名無しさん:2008/11/26(水) 23:17:35
new XmlDocument().LoadXml("<test hoge=\"fuga\" hoge=\"hogera\"></test>")
みたいなことすると hogeが2つとかあるんですけど… って怒られるんだけどこれってなんとかならない?
最悪Regex.Replace(xml, "hoge=\"[^\"]*\", "")みたいな感じにすればナカッタコトにできるんだけどなるべく元の情報落としたくないのです
また、元の情報はWeb上から拾ってくるのでValidなデータを最初っから準備できないのも泣き所
hoge="fuga; hogera"だったかのようにして処理してくれたりとかってできないかな…?
627デフォルトの名無しさん:2008/11/26(水) 23:21:32
ご質問させてください。
VS.NET2005、SQLServer2005、の環境で
.NET上からストアドで一時テーブルを作ると、
そのストアド内でしか一時テーブルが使えません。

cmd.Transaction = tran;
cmd.CommandType = System.Data.CommandType.StoredProcedure;

cmd.CommandText = "sp_CreateTmpTable";←[CREATE TABLE #hoge(name varchar(10))]
cmd.ExecuteNonQuery();
cmd.CommandText = "sp_InsTmpTable";←[INSERT INTO #hoge (name) value ('ほげたほげお')]

cmd.ExecuteNonQuery();←ここで、オブジェクト名'#hoge'は無効ですと言われる

なお、ストアドではなく直接SQLを実行したら一時テーブルは使えました。
クエリアナライザで直接実行して、SQLのエラーでない事も確認しております。
年のため#hogeを##hoheにしてもだめだったのですが、
.NET上からストアドを実行するのに何か必要な事があるのでしょうか?
628デフォルトの名無しさん:2008/11/26(水) 23:32:09
>>626

そのドキュメントはそもそもXMLじゃないんだからどうしようもない
629デフォルトの名無しさん:2008/11/26(水) 23:38:30
>>626
XmlReaderなら読めない?
もしかしたらXLINQでもいけるかも
630デフォルトの名無しさん:2008/11/27(木) 00:00:55
ちらしの裏なんだけど
public static T CloneEx<T>(this T t) where T : ICloneable {return (T)t.Clone();}
とかやってみたらさんざんだったICloneable の使い勝手が随分良くなったと思った。
631デフォルトの名無しさん:2008/11/27(木) 00:05:35
たかがキャスト一個のために余計な依存増やすのか
632デフォルトの名無しさん:2008/11/27(木) 00:12:36
>>628
そーなんだけどXPathとか超便利じゃん…

>>629
ドキュメントさらっとみた感じ希望ありそうかも!ありがと
明日早いからすぐには試せないけどやってみるよ!
633デフォルトの名無しさん:2008/11/27(木) 19:52:10
VS2008 C#でWebサイトでXMLドキュメントを生成したいのですが
Webアプリケーションで作った場合にはビルドの項目にあるのですが
Webサイドの場合項目がみあたりません。
作り方をご存知の方はいらっしゃいますでしょうか?
634デフォルトの名無しさん:2008/11/27(木) 20:09:47
ぐあああ
NMHDR構造体のidFromがUINT_PTRになってるううううぅ
2005付属のMSDNだとUINTなのにぃぃぃぃぃ
64bitだとC#のコードがうごかなかったのはこれかああああをぁぁぁ


   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)   .netにも最新のヘッダファイルを使える仕組みが必要だろ……
  |     ` ⌒´ノ    常識的に考えて…
.  |         }
.  ヽ        }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \
635デフォルトの名無しさん:2008/11/27(木) 20:21:30
AAコピペ君って精神分析の対象だな、まで読んだ。
636デフォルトの名無しさん:2008/11/27(木) 20:34:16
>.netにも最新のヘッダファイルを使える仕組みが必要だろ…… 常識的に考えて…
っ C++/CLI
637デフォルトの名無しさん:2008/11/27(木) 20:46:34
ヘッダを読んでinteropなコードを吐いてくれるツールを使う
638デフォルトの名無しさん:2008/11/27(木) 21:11:15
NMHDRの定義が死ぬと
その他のNM系の構造体とかWM_NOTIFYで使う構造体が軒並みずれてくからなw
639デフォルトの名無しさん:2008/11/27(木) 23:00:02
ピクチャボックスを丸型に出来るか?
バックカラープロパティがある丸型のコントロールはあるか?
640デフォルトの名無しさん:2008/11/27(木) 23:01:24
>>639
英語でおk
641デフォルトの名無しさん:2008/11/27(木) 23:30:29
むしろ北京語でもOK。
まあこんな感じのことがしたいのかな?
private void SetElipseRegion(Control c)
{
  GraphicsPath path = new GraphicsPath();
  path.StartFigure();
  Rectangle rect = c.Bounds;
  rect.Offset(-c.Left, -c.Top);
  path.AddArc(rect, 0, 360);
  path.CloseFigure();
  Region r = new Region(path);
  c.Region = r;
}
642デフォルトの名無しさん:2008/11/27(木) 23:36:31
描画箱能円形口馬?
背景色的属性用没用円形的操作?
643デフォルトの名無しさん:2008/11/27(木) 23:38:34
本当で北京語で書かれたって読めるわけないだろw
644デフォルトの名無しさん:2008/11/27(木) 23:51:20
不好意思
645デフォルトの名無しさん:2008/11/27(木) 23:54:36
>>641
無理しやがって…。
646デフォルトの名無しさん:2008/11/28(金) 00:22:19
>>643
いや北京語じゃないから
647デフォルトの名無しさん:2008/11/28(金) 00:33:55
>>642
パンダすげぇ まで読んだ
648デフォルトの名無しさん:2008/11/28(金) 01:43:27
こういうのやりたいんですがどうすればできますか?


1.プログラム1(pro1.exe)からプログラム2(pro2.exe)を呼ぶ

2.pro2.exeの終了コードによってpro1.exeの動きを変える

pro1.exeからpro2.exeを呼ぶ方法と、
pro2.exeの終了コードの受け取り方がわかりません
649デフォルトの名無しさん:2008/11/28(金) 01:58:17
System.Diagnostics.Process.Start
650デフォルトの名無しさん:2008/11/28(金) 07:43:54
>>648
終了させるときにイベント飛ばせば?
651デフォルトの名無しさん:2008/11/28(金) 13:37:18
これは恥ずかしい…
652デフォルトの名無しさん:2008/11/28(金) 18:24:40
ホームページビルダーのVer13から、プラグイン昨日がついて
VC++で作るんだけど、C#も対応して欲しいな。

そもそも、ホームページビルダー使うような人たちの多数はVC++のネイティブビルドなんて
つかえないだろ(´・ω・`)

せめて、Pythonとかのスクリプトで対応してほしいな。
653デフォルトの名無しさん:2008/11/28(金) 18:35:35
VC++使うような人はホームページビルダー使わないだろうしな・・・
654デフォルトの名無しさん:2008/11/28(金) 18:39:31
ホームページビルダーってまだあったのか…。

ところで、ネイティブアプリから .NET のアセンブリって呼べるん?
655デフォルトの名無しさん:2008/11/28(金) 18:41:26
>>654
呼べる。方法はいくつかある。
656デフォルトの名無しさん:2008/11/28(金) 18:46:42
>>655
おお!
面白そうだから調べてみるわ。
657デフォルトの名無しさん:2008/11/28(金) 19:59:09
逆PInvoke
658デフォルトの名無しさん:2008/11/28(金) 22:02:59
C#でRaw Socketを使わずにIPヘッダを取得する方法はありますか?
(具体的にはIPヘッダのTTL値を取得したいです。)
659デフォルトの名無しさん:2008/11/29(土) 05:16:29
テストしてないけどGetSocketOption&IpTimeToLiveでとれないか
660デフォルトの名無しさん:2008/11/30(日) 18:28:17
>>659
それだと受信パケットのTTLが取れないんです。
やはり普通にRaw Socketでやってみます。
661デフォルトの名無しさん:2008/11/30(日) 23:28:30
>>641

フォームがデジモみたいになっちゃいました!
あとは自分で勉強してみます!どうもです!
662デフォルトの名無しさん:2008/12/01(月) 09:58:54
PInvokeで使うwin32のPOINT構造体とSystem.Drawing.Point構造体って
互換性ありますよね? そのまま突っ込んじゃっていいですか?
663デフォルトの名無しさん:2008/12/01(月) 10:32:59
別に構わないよ
RECTの方は別モンだけど
664デフォルトの名無しさん:2008/12/01(月) 13:54:23
通常の文字列のメタ文字をエスケープして正規表現として使えるように
したいのですが、Regex.Escape()はそういう用途には使えないようです。
ほかに方法はないでしょうか?
665デフォルトの名無しさん:2008/12/01(月) 14:24:08
>>664
何か誤解している感じがする。具体例を挙げてみて。
666デフォルトの名無しさん:2008/12/01(月) 19:51:25
C#のスレッドとネットワークの本をだれか寄付してくれ。おいら金がない。
667デフォルトの名無しさん:2008/12/01(月) 20:00:01
金がない奴ぁおれんとこ来い
おれもないけど心配するな
668デフォルトの名無しさん:2008/12/01(月) 20:03:58
青島乙
669デフォルトの名無しさん:2008/12/01(月) 23:10:13
室井乙
670デフォルトの名無しさん:2008/12/01(月) 23:36:39
和久さんに敬礼
671デフォルトの名無しさん:2008/12/02(火) 00:20:44
639です。C#初めて一か月くらい経ちますが、何となくGUIプログラムについて知ったつもりになりました。あるやりとりでGUIで電卓を作れ、に対して関数電卓までいきませんがそれなりに作ったつもりです。
まだ修行の身ですがこの先どのような展開があるのでしょうか?個人的にマウス操作でのI/Oにレスポンスがある事に衝撃を受けてますが、今後USB等外部装置とのやりとりまで発展していけるのでしょうか?
大学でC言語ちょっと勉強したくらいの小心者です。
672デフォルトの名無しさん:2008/12/02(火) 00:23:58
そうか
勇気出してもっと堂々とするんだ
673デフォルトの名無しさん:2008/12/02(火) 00:24:25
そんな雑誌の身の上相談みたいな質問されても
ほとんどの人は回答に困るんじゃないかと思うんだけど・・・

ソープ池みたいなのりで突っ込んで欲しいんだろうかw
674デフォルトの名無しさん:2008/12/02(火) 00:24:44
自分で作ってみたいものを作る。パクリでもいい。興味を伸ばす。
675デフォルトの名無しさん:2008/12/02(火) 00:24:46
>>671
この先か・・・。仕事でやるなら、DB 系かネット系か、機器系じゃないかな。
いろいろプログラムを作ってみるといいと思うよ。
676デフォルトの名無しさん:2008/12/02(火) 00:35:26
獄中から出所した、コムロの気持ちが分かりました。
これからガンガリます!
677デフォルトの名無しさん:2008/12/02(火) 00:38:06
いや、つまんないから
678デフォルトの名無しさん:2008/12/02(火) 03:04:31
いや、こいつはひょっとするとひょっとするかもしれんぞ
679デフォルトの名無しさん:2008/12/02(火) 07:59:44
しねーよw
680デフォルトの名無しさん:2008/12/02(火) 08:36:21
マジコムロ臭い
681デフォルトの名無しさん:2008/12/02(火) 13:06:55
KOMUROって誰よ?
682デフォルトの名無しさん:2008/12/02(火) 13:08:06
KOMUROといえばHITOSHIにきまってる
683デフォルトの名無しさん:2008/12/02(火) 14:16:57
オッサンハケーン
684デフォルトの名無しさん:2008/12/02(火) 19:26:01
Rectangleなプロパテーなんですが。
中身のをX++;とかしても反映されないんです。
どうすればいいですか?
685デフォルトの名無しさん:2008/12/02(火) 19:27:12
作り直せ
686デフォルトの名無しさん:2008/12/02(火) 19:29:33
なぜそうなるのか理解してないようだから作り直しても同じだろう
687デフォルトの名無しさん:2008/12/02(火) 19:36:51
プロパテーってなんか食欲をそそるな
688デフォルトの名無しさん:2008/12/02(火) 20:19:04
>>684
Rectangle rct = hage.RectPropate;
rct.X++;
hoge.RectPropate = rct;

値型だからね
hage.RectPropateで取得した時点でコピーされてhageが持ってる構造体とは
関係なくなってるのね
689デフォルトの名無しさん:2008/12/02(火) 20:20:56
>>688
Propateが地味にかっこよくてワロスwwww
690デフォルトの名無しさん:2008/12/02(火) 20:22:47
>>684
FormにもXとかYのプロパテーがあるだろ。
691デフォルトの名無しさん:2008/12/02(火) 20:27:45
C++ならハンドル返すのプロパティ作れるぞ。
692デフォルトの名無しさん:2008/12/02(火) 20:31:47
>>691
どゆこと?
693デフォルトの名無しさん:2008/12/02(火) 20:44:52
C#っぽく書くならこんなイメージ
public ref RectPropate { get { return ref this.rectPropateField; } }
フィールドへの参照を返せる
もちろんこんなことするとプロパテーの意味がなくなる
694デフォルトの名無しさん:2008/12/02(火) 20:45:42
え? ポインタを返すってこと?
695デフォルトの名無しさん:2008/12/02(火) 20:49:43
ただのポインタとはちょっと違うよ
GCで行方不明になったりしない「トラッキング参照」ってやつ
696デフォルトの名無しさん:2008/12/02(火) 21:22:00
実行中のワーカースレッドが全部終了するまで待機するときの簡単な書き方ないですか?
ThreadPool.QueueUserWorkItem()を使うとWaitHandleを返してくれないから、
自分でManualResetEventを用意しないといけなくてめんどくさい
697デフォルトの名無しさん:2008/12/02(火) 21:25:27
しょうゆこと
698デフォルトの名無しさん:2008/12/02(火) 22:10:41
>>693
戻値にrefは使えない。使えるのは引数だけだ。
699デフォルトの名無しさん:2008/12/02(火) 22:11:30
>>696
つ BackgroundWorker
700デフォルトの名無しさん:2008/12/02(火) 22:20:24
>>698
だから「っぽく」って書いてあるんだろうに。
701デフォルトの名無しさん:2008/12/02(火) 22:23:55
C++のはなしか、了解
702デフォルトの名無しさん:2008/12/02(火) 22:25:46
どうでもいいがC++じゃなくてC++/CLIな
703デフォルトの名無しさん:2008/12/02(火) 22:29:38
public:
 System::Rectangle^ RectPropate;
704デフォルトの名無しさん:2008/12/02(火) 22:31:51
>>699
サンクス
705デフォルトの名無しさん:2008/12/02(火) 23:40:17
const ref とか constメソッドがないことに非常にショックを受けた
706デフォルトの名無しさん:2008/12/02(火) 23:43:24
要らないから
707デフォルトの名無しさん:2008/12/02(火) 23:52:26
C++だって、fstreamやstringsreamにはほとんどconst使わなかっただろ。
それと同じさ。
708デフォルトの名無しさん:2008/12/03(水) 00:38:55
const char*みたいに欲しいけどなー
709デフォルトの名無しさん:2008/12/03(水) 15:54:27
>>703
それは>>693とは違うよ
値型に^付けるとボックス化された値型になる
C#と違って型付けされてるけど,値型のオブジェクトをobject型にキャストするのと同じ
>>693に対応するのはRectangle%
710デフォルトの名無しさん:2008/12/04(木) 00:44:47
流れを切って申し訳ないですが皆さんはどんな難読化ツールを利用されていますか?

フリーで難読化ツールというとNandokuが有名だと思うのですが文字列や外部参照などを隠すことができませんし
Dotfuscatorの製品版はすばらしい性能ですがとても手が届く値段じゃないですし…。
海外製などで良い難読化ツールはないものでしょうか、ご教授ください。
711デフォルトの名無しさん:2008/12/04(木) 00:52:15
使用してません
何故そんなに隠したいのかが分からない
はっきり申し上げてあなたのプログラムに興味ある人なんていないのです
712デフォルトの名無しさん:2008/12/04(木) 00:52:36
Dotfuscator使ってる
713デフォルトの名無しさん:2008/12/04(木) 01:18:37
714デフォルトの名無しさん:2008/12/04(木) 04:20:03
難読化ツールってなんなの?
逆コンパイルできないようにするとかか?
そんなもん突破しようとする奴は強引に突破するんじゃねえの?
715デフォルトの名無しさん :2008/12/04(木) 04:54:49
>>714
その通り、所詮難読化するだけだから。
716デフォルトの名無しさん:2008/12/04(木) 05:00:46
最大の対策は魅力の無いプログラムを作ること。
717デフォルトの名無しさん:2008/12/04(木) 05:05:22
難読化ツールは、パクリコード流用だとか色々と隠さなくてはならない事情を持った恥ずかしい
プログラムしか書けない人向けのツール。 普通は堂々としていればいい。
718デフォルトの名無しさん:2008/12/04(木) 07:11:35
自分のコードが恥ずかしいから難読化してる
719デフォルトの名無しさん:2008/12/04(木) 07:20:45
例えば体験版のような、日付やパスで認証するようなロジックがあると、最低でも難読化しないと使えないのだわ
720デフォルトの名無しさん:2008/12/04(木) 07:22:18
うちは客に渡すコードの特にコアのライブラリのとこは難読化していきますが( ゚Д゚)ナニカ?。
721デフォルトの名無しさん:2008/12/04(木) 07:25:55
そのコード渡された客が可哀想www
722デフォルトの名無しさん:2008/12/04(木) 07:26:59
パスの部分を他言語で作ればいいのでは
723デフォルトの名無しさん:2008/12/04(木) 07:32:40
難読化してなるべく解析に手間取って欲しくなる必要がないようなプライドのないコードばかりを量産しているコーダ-二集まるスレはここですか。
724デフォルトの名無しさん:2008/12/04(木) 07:37:13
1ライセンスくらいDotfuscatorついてるグレードのVS買えよ。
725デフォルトの名無しさん:2008/12/04(木) 08:36:46
Dotfuscatorってなんて読むの?
どっとふぁすけいたー?
どっとふゅーずけいたー?
726デフォルトの名無しさん:2008/12/04(木) 09:07:20
数独化してますが何か?
727デフォルトの名無しさん:2008/12/04(木) 10:13:06
認証系とか見られては困るコード部分だけネイティブのDLLにするとか?
728デフォルトの名無しさん:2008/12/04(木) 10:18:14
そんなけちっちゃいDLLなら逆アセンブラで読むのも大した苦労じゃないだろうな
729デフォルトの名無しさん:2008/12/04(木) 10:34:43
認証系のキーや生データは普通はソースになんて書かないでDBに持つだろ。
730デフォルトの名無しさん:2008/12/04(木) 11:00:03
難読化+Emit/Expression Treeで動的に作ると、追いかけるの困難だよ!
無駄に手間が掛かり保守性も悪いけど
731デフォルトの名無しさん:2008/12/04(木) 12:07:46
コア部分は高速化も兼ねてCで書いたりするからいい
732デフォルトの名無しさん:2008/12/04(木) 12:41:29
コアな所がフレームワークで全体に関わってることもあるんですよ
733デフォルトの名無しさん:2008/12/04(木) 13:00:50
>>725
どっとふぁすけいたーでないか?本当に正しいかどうかはわからんけど、
俺はそう読んでるw
734デフォルトの名無しさん:2008/12/04(木) 13:18:44
俺のコアな部分を低速化したい。
735デフォルトの名無しさん:2008/12/04(木) 14:27:46
Path.GetFileNameでファイル名だけ取り出せるのに、
Path.GetDirectoryNameでフォルダ名だけ取り出せないのって言語仕様的におかしくね?
736デフォルトの名無しさん:2008/12/04(木) 14:32:52
>>735
それは言語仕様とはなんの関係もない。
737デフォルトの名無しさん:2008/12/04(木) 14:36:38
(儲)
738デフォルトの名無しさん:2008/12/04(木) 15:10:32
.net frameworkとC#の言語仕様を分けて考えようネ
739デフォルトの名無しさん:2008/12/04(木) 15:22:10
.NETライブラリに限らず C:\foo\bar\baz.txt において dirname って言えば
C:\foo\bar を指すことが一般的じゃない?
でも bar だけ返して欲しいのもわからなくはない
740デフォルトの名無しさん:2008/12/04(木) 16:21:46
C:\foo\bar\baz.txtのbarだけ欲しいケースが少ないからじゃないか
741デフォルトの名無しさん:2008/12/04(木) 16:43:49
両方あるもんだと思ってた。
フルパスとbarだけの方
742デフォルトの名無しさん:2008/12/04(木) 17:01:23
c:\foo.txt
だと何返るんすかそれ
743デフォルトの名無しさん:2008/12/04(木) 17:42:41
""
744デフォルトの名無しさん:2008/12/04(木) 17:46:32
>>735
おかくしない。というかどちらでもいい。
便利さで言えば
Path.GetFileName(Path.GetDirectoryName(path))
みたいに一個ずつ消しながら全部取れる方が便利。
むしろGetFileNameという命名の方がおかしい。
745デフォルトの名無しさん:2008/12/04(木) 18:12:55
内部的にはファイルとフォルダの区別が無かった気がする。
デスクトップ以下のアイテムIDリストとかそういうの。
746デフォルトの名無しさん:2008/12/04(木) 18:50:32
>>744
同意
でも全部欲しいときはSplitか正規表現使うから現状で不便ではないな
747デフォルトの名無しさん:2008/12/04(木) 20:34:06
MacでいうところのCoreDataとかCocoaBindingとかに相当する機能はありますか?
748デフォルトの名無しさん:2008/12/04(木) 21:52:43
Mac使ったことないから全然わかんないや
749デフォルトの名無しさん:2008/12/04(木) 22:04:09
>>713
ありがとうございます。
パッカーを難読に利用するなんて思いつかなかったです。

ただ、使用してみたところURLを扱うメソッドで
「パスの形式が無効」という例外を吐いて落ちてしまいます。
URLを文字列として直接打っているのが原因なのかなとも思うのですが

オプション設定も見てみたのですがわかりませんでした
重ね重ね申し訳ありませんがご教授いただけないでしょうか
750デフォルトの名無しさん:2008/12/04(木) 23:11:23
>>747
永続化という意味ではEntityFrameWork。
Bindingでは依存プロパティとかかな。
Cocoaとちがって、基本オブジェクトの属性ではないが。
751デフォルトの名無しさん:2008/12/05(金) 00:24:38
>>749
自己解決しました。
URLとか文字列なんて全く関係なくReflectionを呼んでいたからでした。
ご指導頂きありがとうございました。
752デフォルトの名無しさん:2008/12/05(金) 16:29:23
#endregionの後ろにも説明を書けるの?
コンパイルしてもエラーとか出ないしMSDN見たけど触れられてなかった

#region 説明1
 ・
 ・
 ・
#endregion 説明2
753デフォルトの名無しさん:2008/12/05(金) 16:33:42
そういうのは言語仕様を見る
ttp://msdn.microsoft.com/ja-jp/library/aa691101(VS.71).aspx
754デフォルトの名無しさん:2008/12/05(金) 16:38:27
OH!! そっちか
Thanks!!
755デフォルトの名無しさん:2008/12/06(土) 22:30:28
GlobalAlloc, GlobalLockで取得したメモリポインタに
Marshal.StructureToPtr( Object structure, IntPtr ptr, bool fDeleteOld )
で構造体をコピーしました。
第3引数のfDeleteOld にtrue渡していても、アセンブリにngenをかけていない場合は
アプリケーションは正常動作しているように見えましたが、
ngenかけるとこの場所で落ちるようになりました。

これってどういうことですか偉い人?
とりあえずfDeleteOld にtrueを設定するとどこかのメモリを破壊することはナントナク理解しました。
>このメソッドの実行前に、ptr パラメータに対して Marshal.DestroyStructure メソッドを呼び出す場合は true
↑こいつがなんかやばいやつを解放しちゃった?

しかしネイティブイメージの有無で結果が変わるというのが分かりません
756デフォルトの名無しさん:2008/12/07(日) 00:25:36
A社のトイレットペーパーは半径12mmの芯に巻かれ、
トイレットペーパーの最も外側の半径が53mmである。
トイレットペーパーの紙厚が0.1mmのときに、この
トイレットペーパーの長さはおおよそ何mであるかを求めるプログラムを書け。
ただし、長さはm単位で小数第2位まで表示するものとする。
これをvisualstudioで作りたいのですがイマイチわかりません。
どなたか教えていただけないでしょうか?
757デフォルトの名無しさん:2008/12/07(日) 00:30:05
宿題スレ逝け
758デフォルトの名無しさん:2008/12/07(日) 00:31:10
>>756
それはVisual Studioの使い方が分からないのか
それともコードの書き方が分からないのか、はたまたロジックが思いつかないのか

あともし課題なら宿題スレにいけばいい。
759デフォルトの名無しさん:2008/12/07(日) 00:41:21
宿題スレに行きます。
スレ違いで本当にすみません。
760デフォルトの名無しさん:2008/12/07(日) 00:54:11
C++だったのかよwwwwwww
761デフォルトの名無しさん:2008/12/07(日) 00:57:19
83594.64?
なんか妙に長いトイレットペーパーだな。
762デフォルトの名無しさん:2008/12/07(日) 00:58:01
ミリじゃないか?
763デフォルトの名無しさん:2008/12/07(日) 00:58:38
ああ小数点第二ってm単位でか。
じゃあ83.59m
764デフォルトの名無しさん:2008/12/07(日) 01:23:18
なんかネタで意地悪してるのかもしれんけどC++宿題スレのコードもアレだなw
765デフォルトの名無しさん:2008/12/07(日) 04:29:54
http://www.microsoft.com/japan/msdn/vs05/visualc/VS05Cplus.aspx
^演算子の意味が分からなくてググったら
この記事ワロタw
C++使いって面白いな
766デフォルトの名無しさん:2008/12/07(日) 12:54:10
C#からExcelを操作する処理を頻繁に行うアプリケーションを今作ってるんだけども、
try〜finallyの入れ子やらの記述がすんごい面倒なんだねこれ

自作でクラス作って少しは本体側のごちゃごちゃ感を軽減したんだけどもまだイマイチな感じ
だれか似たようなことやろうとした人いたら経験談とか教えてください
767デフォルトの名無しさん:2008/12/07(日) 13:05:43
>>766
Marshal.ReleaseComObjectのことかな。まじめに漏れなく書くとめんどいね。
正常系はちゃんと書くが異常時の開放はあきらめてGCまかせにしてる。
768デフォルトの名無しさん:2008/12/07(日) 13:35:19
俺はメジャーなオブジェクト(Application, Workbook, Worksheet)以外
ReleaseComObjectなんて呼ばないけど、何も問題に遭遇してないけどな。
769デフォルトの名無しさん:2008/12/07(日) 13:45:03
4.0になれば楽になりますよ
770デフォルトの名無しさん:2008/12/07(日) 13:57:57
dynamic はこれと関係ないだろ
771デフォルトの名無しさん:2008/12/07(日) 14:18:32
http://code.msdn.microsoft.com/csharpfuture
このNew features in C# 4.0読むとdynamic lookupの他にも
COMのための機能拡張があるみたいだけどReleaseComObjectについては触れられてないな
でも一切リソースを気にせずにExcelやWordを操作してるサンプルコードが付いてる
どういうことなんだろうね
refだらけになるのを避けるためにrefパラメータに対する値渡しを許すとか
細かい使い勝手に気を配ってるくらいだから,さすがに一番の問題を放置するわけはないと思う
言語とは関係なく,CLR側で対処するのかな
772デフォルトの名無しさん:2008/12/07(日) 14:25:53
try〜finallyの入れ子にしないで、
使うCOMオブジェクトは全部nullで宣言〜
一番外のfinallyでnullじゃなかったらReleaseComObjectってやってるな

IDisposableなジェネリック再ラッパーとか作ったりしてみたけど
それでも結局usingの嵐になったりするんだよね
773766:2008/12/07(日) 16:08:01
レスありがとうございます。
丁寧に真面目に記述していくとごちゃっとするのはある程度仕方ないところもあるのね。
>>772の全部null宣言する形を取るのが一番すっきりしてそう、かなあ。

>>771のURLの内容読もうと思ったがすぐに挫折してしまったw
774デフォルトの名無しさん:2008/12/07(日) 16:19:34
違うインターフェイスにキャストした場合、内部でQueryInterfaceして参照数増えてんの?
775デフォルトの名無しさん:2008/12/07(日) 16:30:51
最後にまとめてやるならFinalReleaseComObjectだったかにした方がいいかも。
776デフォルトの名無しさん:2008/12/07(日) 18:10:34
>>775
ReleaseComObjectやFinalReleaseComObjectが減らしている参照カウンタは
COMの参照カウンタそのものではなくて、RCWの参照カウンタ。
FinalReleaseComObjectを呼んだほうが安全というのは都市伝説に近い。
777デフォルトの名無しさん:2008/12/07(日) 18:15:20
自分でCOMのサーバー側作って検証すればいいな
じゃまくさいからお前らやって
778デフォルトの名無しさん:2008/12/07(日) 18:19:23
C#の初心者です。
現在、独習C#を使っていますが、
次のステップには、どのような参考書を使えばよいでしょうか?
どなたか、ご教授いただければ幸いです。
779デフォルトの名無しさん:2008/12/07(日) 18:25:09
独習C#終えたら言語の勉強は終わり
あとは使う
780デフォルトの名無しさん:2008/12/07(日) 19:23:40
>>772
Excelではないが、IShellFolder関連の
ReleaseComObjectが不要なラッパーを作ったことがある。

usingの嵐にならないようにしたら、
第二のガベージコレクタみたいになってしまったよ。
781デフォルトの名無しさん:2008/12/07(日) 19:23:56
とりあえず作りたい物を決めて、作り始めちゃうのがいいよ。
先に理解しようなんて思わなくていい。知らないこといっぱいおっぱい。
何かをしようとする毎につまづくから、そしたらまた調べまくる。
デザイナが作ったコードもサンプルとして良い。
782デフォルトの名無しさん:2008/12/07(日) 20:23:04
>>776
最後に開放する場合でも?
COMの参照カウンタ減らすためにはまずRCWの開放が必要で
そのためにはRCWの参照カウンタを減らす必要があって、
とかそういう構造ではないのかな?

場合によってはReleaseComObjectを複数回呼ばなきゃならないことになって、
簡単のためにFinalReleaseComObjectを呼ぶってのは駄目?

まあ俺は良く分かってないから根本的に勘違いしてるかもしれんが。
783デフォルトの名無しさん:2008/12/07(日) 21:09:36
RCWの参照カウントが2以上になるケースを見たことがないな。
例えば、ComHoge ch1 = new ComHoge(); ComHoge ch2 = new ComHoge(); とした場合の
RCWはch1とch2で別になりカウントは両方1のまま。
また、ComHoge ch3 = ch1 で単に参照を代入しただけの場合も変わらない。
784デフォルトの名無しさん:2008/12/07(日) 21:13:53
MarshalのCOM系メソッド使えば増やし放題だよー
785デフォルトの名無しさん:2008/12/08(月) 03:26:53
あるドライブの中にある、txtファイルの一覧を取得したいのですが、
うまくいきません。

DirectoryInfo di = new DirectoryInfo(s調査Path);
foreach (FileInfo fi in di.GetFiles("*.txt", SearchOption.AllDirectories))
{〜〜}
結果はこんなエラーです。
'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました。
"パス 'X:\\System Volume Information' へのアクセスが拒否されました。"

これってサブディレクトリ検索するためにSearchOption.AllDirectories指定すると出てしまうのですが、
どうすればよいでしょうか?
アクセス権ないのが当たり前のフォルダなので、回避する方法があるような気がしたのですが
見つけられませんでした。
VBのOn Error Resume Nextみたいなのがあって、それを使うのでしょうか?
786デフォルトの名無しさん:2008/12/08(月) 04:18:18
vbしらないけどtry catchのことかな
foreach(){
try{ .../}catch(UnauthorizedAccessException){}
}
787デフォルトの名無しさん:2008/12/08(月) 04:20:04
順々にしらべないとおんなじ結果になる気がするけど
788デフォルトの名無しさん:2008/12/08(月) 12:17:00
.netのOLEまわりって腐ってない?
クリップボードやドラッグ&ドロップですぐリークするんで
結局API直呼びすることになる
789デフォルトの名無しさん:2008/12/08(月) 14:05:27
http://wiki.developer.mindtouch.com/SgmlReader
このライブラリ(添付されてるコンパイル済みDLL)を使いたいんだけど、どういうライセンスなのかわからなくて困ってます
https://svn.mindtouch.com/source/public/sgmlreader/trunk/eula.htm
らしいんだけど、DLLを自分が作ったソフトに添付して配布するのはOKなのかな?
あと、
http://code.msdn.microsoft.com/SgmlReader/Project/License.aspx
が元になってるライブラリのライセンスらしいんだけど上記2つのライセンスが同じものじゃないのはなんでなんだろ?そういうものなのかな?
GPLとは修正BSDライセンスとかはどういうものか最近わかったけど世の中にはいろいろなライセンスがありすぎるよ…

多分スレ違いなんだろうと思うけど適切なスレがどこかわからなかったのでそういうスレがあったら誘導してもらえると嬉しいです…
790デフォルトの名無しさん:2008/12/08(月) 15:52:32
【殺しの】ライセンス【道で拾った】
http://pc11.2ch.net/test/read.cgi/tech/1045006087/

一応あるけど過疎具合を見るとageで質問しないとたぶんレス返ってこない
791デフォルトの名無しさん:2008/12/08(月) 16:14:06
>>790
うわーありがとー
スレタイみてネタスレかと思って中身チェックしてなかったわ…
いってくるー
792デフォルトの名無しさん:2008/12/08(月) 19:34:35
ひょっとして==のオーバーロードが定義されてるクラスで参照の等値検査しようと思ったら
objectにキャストするしかない?

VBのIsみたいな演算子ってC#にはないんだっけ?
793デフォルトの名無しさん:2008/12/08(月) 19:42:16
Object.ReferenceEquals
794デフォルトの名無しさん:2008/12/08(月) 20:06:56
いや、そりゃそうなんだけど。。
795785:2008/12/09(火) 00:38:57
>>786
VBのOn Error Goto Resume Nextは
C#のtry catchとはまた別です。
On Error Goto Resume Nextはcatchに飛ばず、
そのまま処理を続行できますので。
ちなみにtry catchはやはりVBでもTry Catchです。
すみません。

>>787
こういう処理は基本ループでフォルダを下っていくものと私も思っていたのですが、
それを簡略化するために「SearchOption.AllDirectories」が指定できるようになった、
という風にヘルプを解釈したわけです。
でもやはりできなくて質問に至りました。
796デフォルトの名無しさん:2008/12/09(火) 00:43:41
try-catch-finally で表現できるように書き直すのが無難。

On Error Goto Resume Next なんて VB でも使わない方が良い。
デバッグしづらいバグを生み出す原因になってしまう。
797785:2008/12/09(火) 00:50:39
>>796
基本的にはそうだと思います。
私もダラダラ書いて要点絞れてないので書き直させてください。

1.C#にVBのOn Error Gotoに相当するものはあるか
  (今回はループに回る前にエラー投げるのでそもそも使えませんが)

2.これが↓
DirectoryInfo di = new DirectoryInfo(s調査Path);
foreach (FileInfo fi in di.GetFiles("*.txt", SearchOption.AllDirectories))
このエラーを返すのは
'System.UnauthorizedAccessException' の初回例外が mscorlib.dll で発生しました。
"パス 'X:\\System Volume Information' へのアクセスが拒否されました。"
使い方が間違ってますか?

というのが疑問です。
798デフォルトの名無しさん:2008/12/09(火) 01:24:42
>>797
たとえOn Error Resume Nextが出来たとしても、何も値は戻ってこないはずじゃなかったっけ。
別のメソッド内でエラーが起こったら、途中でも強制的に戻ってくる感じで。
(実際にテストしてないから間違ってたらスマソ。)

希望している処理をしたいのなら、再帰させてディレクトリ毎に例外処理しながらやれば良いと思う。
799785:2008/12/09(火) 01:37:17
>>798
1.について
>たとえOn Error Resume Nextが出来たとしても、何も値は戻ってこないはずじゃなかったっけ
いえ、そうでもないです。

Dim i As Integer = 0

On Error Resume Next
i /= 0
Console.WriteLine("ErrorNumber:" & Err.Number)
Console.WriteLine("Description:" & Err.Description)
--------------------------
2.について
>希望している処理をしたいのなら、再帰させてディレクトリ毎に例外処理しながらやれば良いと思う。
もちろんこれでも可能です。
が、今回質問させていただいてますのは
GetFiles("*.txt", SearchOption.AllDirectories)が使えない理由です。
再帰してくれるようなメソッドが既にあるようなら使いたいのですが
意図したように動かないので悩んでます。
800デフォルトの名無しさん:2008/12/09(火) 01:51:01
DirectoryInfo..::.Delete(true)が使えない理由です。
再帰してくれるようなメソッドが既にあるようなら使いたいのですが
意図したように動かないので悩んでます。

これとおんなじ
801デフォルトの名無しさん:2008/12/09(火) 02:08:30
1.
C# にはそのような機能はない。try-catch-finally でなんとかする。

http://msdn.microsoft.com/ja-jp/library/cc392473.aspx
> On Error Resume Next ステートメントは、別のプロシージャが呼び出されると非アクティブとなるため、

よって、DirectoryInfo.GetFiles(...) を用いるなら VB でも不可能。

2.
.NET Framework のライブラリには、そのような(アクセス権限による検索のスキップ)機能を持ったメソッドはない。
グダグダ言ってるヒマがあったらコードを書けばいい。
802デフォルトの名無しさん:2008/12/09(火) 02:11:39
ちなみに 1. のリンク先は VBA に関してだけど、.NET になっても同じだと思う。
呼び出し先のメソッドでも Resume Next されたらそれこそカオスな状況になるwww
803デフォルトの名無しさん:2008/12/09(火) 02:12:01
パーミッション無いディレクトリにアクセスしようとしておいて、使えないも何もって感じだな
804デフォルトの名無しさん:2008/12/09(火) 03:23:27
805デフォルトの名無しさん:2008/12/09(火) 09:37:26
スキップするオプションあってもいいと思うけどな。
全部読むオプションあるんなら。
でないと全部読むオプションの意味ないだろ?って話でしょ?
806デフォルトの名無しさん:2008/12/09(火) 09:48:50
コレクションを返す今の仕様だとスキップしたかどうか何をスキップしたかを判別できない
からそう言うオプションを用意してないんじゃないかな
807デフォルトの名無しさん:2008/12/09(火) 12:12:47
無いなら自分で作ればいいじゃない
そのためのプログラミング言語だろ
808デフォルトの名無しさん:2008/12/09(火) 12:16:53
ないから作れないなんて誰が言ってんだ?
809デフォルトの名無しさん:2008/12/09(火) 15:13:44
ProcessStartInfo psi = new ProcessStartInfo("http://www.yahoo.co.jp/");
psi.UseShellExecute = true;
psi.ErrorDialog = true;
Process.Start(psi);

この4行で Kaspersky が「コード侵入」と「他のプロセスを一時停止」の2つの警告を出してくるんですが
回避方法は何かありませんか?
810デフォルトの名無しさん:2008/12/09(火) 15:29:39
ソビエト代表カスペルスカヤ選手にご退場願う
811デフォルトの名無しさん:2008/12/09(火) 16:50:26
>>809
KGBに通報。
812デフォルトの名無しさん:2008/12/09(火) 17:08:55
>>804


   |  ____             ヽ lニ|ニl   | __Lヽ
 ─|─   /               _  ̄ ̄ ̄ /|ヽ| _ レ
   |  _∠ _.  、--|-、 ──,   | |ニニ|  | | 口 ヘ,
.  ノ|\|_| | ソ  /\/  |.   /  . | |ニニ|  | ノ
   |    、ノ 'ヽ  ヽノ  ノ   ヽ_  ./\/ ヽ   | /\ヽノヽ
   |  ────                ̄ ̄ ̄
813785:2008/12/09(火) 17:48:30
>>801>>802>>805-808
なるほど、無い、というのが結論のようですね。
サブディレクトリまで検索してくれるようになったのはよいですが
簡易的なものであり、各フォルダに対してアクセス権含め、なんらかの検査が必要な場合は
自分で再帰していかなくてはならないみたいですね。
System Volume Informationなんてアクセスできなくて当然のフォルダなので
回避方法がきっとあるんだろうと思ってましたが甘かったみたいです。
ありがとうございました。
814デフォルトの名無しさん:2008/12/10(水) 10:53:00
ないから作れないなんて誰も言ってないから
だから作れって話になるわけさ
815デフォルトの名無しさん:2008/12/10(水) 17:18:36
こういう処理って問題ないんでしたっけ?
if( data == null || data.num == 0)
{
816デフォルトの名無しさん:2008/12/10(水) 17:23:39
|| 演算子 (C# リファレンス)
を見れ
817デフォルトの名無しさん:2008/12/10(水) 17:37:20
順不同という記憶があったんだがあれは | 演算子のときか。
さんくす
818デフォルトの名無しさん:2008/12/10(水) 18:05:39
ショートカット演算だろ
819デフォルトの名無しさん:2008/12/10(水) 18:09:00
それを言うならショートサーキット
820デフォルトの名無しさん:2008/12/10(水) 21:58:47
短絡演算子?
821デフォルトの名無しさん:2008/12/10(水) 22:40:38
>>817
C#は順序は左から(代入演算除く)って決まってる。
| と || の違いは順序じゃなくて、右が必ずしも実行されないってところだけ。
822デフォルトの名無しさん:2008/12/11(木) 00:01:27
つまり
data = null
の場合は、右側の式は評価されない。
823815:2008/12/11(木) 00:11:15
いつまでもくどいぞ。カスども
824デフォルトの名無しさん:2008/12/11(木) 01:59:34
if( >>824 == カス || チョメチョメ() )
{
    ごにょごにょ();
}

orz
825815:2008/12/11(木) 08:46:49
>>823
なりすまし勘弁
826デフォルトの名無しさん:2008/12/11(木) 11:34:44
自分はUNIX(主にLinux)でC++を使っているのですが、ある人からWindowsでC#を使えるようになれといわれたのですが、
自分的にはWindowsでやるならVC++でもいいんじゃないかと思っているのですが、C#がVC++よりも勝っている点を教えてください。
よろしくお願いします。
827デフォルトの名無しさん:2008/12/11(木) 11:51:13
勝っている点が無いって言ったらどうするつもりなの?
828デフォルトの名無しさん:2008/12/11(木) 11:54:42
IDEが秀逸
829デフォルトの名無しさん:2008/12/11(木) 11:58:29
>>826
えーっと、それは業務アプリなどを手がける会社の仕事での話ですか?
それでしたらC#でしょう。

趣味プログラマならC++にも「やろうと思えば何でもできちゃう」という
Cと同じような捨てがたいメリットがあると思いますが。
830デフォルトの名無しさん:2008/12/11(木) 12:09:51
生産性に決まってんだろ
831デフォルトの名無しさん:2008/12/11(木) 12:12:52
ありがとうございます。

>>827
829さんが言われているとおり、自分は業務系ソフト開発をしないといけない立場なのですが、
もし本当にC#でもVC++でも同じなら、VC++を選びたいのです。C#を使えといっている人は、
XMLの処理とか文字列の扱いとかが楽と言ってて、C++でXMLやるのは面倒なのは分かるとしても、
文字列くらいなら慣れてるC++でやってしまってもいいかな、、、と思ってます。
自分の周りでWindowsで開発している人がC#でやってる人ばかりなので、C#いいよという
人しか居ないので、勝っている点しか知りません。でも色々意見を聞いてみると、
「これはC#を使うしかない!」というのがないような気がするのですが、、、、

>>828
IDEはVisual Studioなので、同じではないのですか?

>>829
仕事の話です。
業務アプリならC#だ、というのは何度か言われたのですが、やっぱり開発
が速い(楽?)ですか?

832デフォルトの名無しさん:2008/12/11(木) 12:14:57
道具は目的に合わせて使い分けろってことさね。
833デフォルトの名無しさん:2008/12/11(木) 12:21:13
職場で自分だけ違うことしたいって言ってる様が思い浮かんだ
834デフォルトの名無しさん:2008/12/11(木) 12:24:24
>>831
C++に比べてC#は、簡素なコードで複雑な処理を安全にできる
安全にってのは大事だぜ

俺の場合、あえてC++使う場面と言えば
ウィンドウなんて表示しないし処理速度を重視したいって言う時くらいかなぁ
835デフォルトの名無しさん:2008/12/11(木) 12:26:27
>>833
実はそうです。
でも今まで説得力のあったのは、C#の方が文字列の扱いが楽、というのだけだったんですよ?
836デフォルトの名無しさん:2008/12/11(木) 12:31:11
保守性無視のスタンドプレー
837829:2008/12/11(木) 12:33:56
>>831
UNIX/Linuxなどのミドルウェア製品の開発を除けば、もうC/C++の選択は有り得ないといって間違いない。
とにかく、.NET上でC#による開発はクライアントから分散系までJava & C/C++にも勝り、圧倒的にムダが
無くて生産性が上がる。高度な技術を楽に使えるようにMSが提供してくれるから仕事屋の強い味方だよ!

おかげで「プログラムを考えながら自分で好きなように操れる感覚が好き」というヲタには不人気だがw
838デフォルトの名無しさん:2008/12/11(木) 12:34:18
仕事なんだろ?
みんな使ってる<最大の理由
839デフォルトの名無しさん:2008/12/11(木) 12:37:55
>>831
C#の方が開発が圧倒的に楽です。
業務用アプリ開発において工数の短縮という要素が最大のメリットであることはわかるでしょ?
コーティング、テスト、デバッグが非常に楽
840デフォルトの名無しさん:2008/12/11(木) 12:45:46
VB使おうがC#使おうが変わらないわけだし、.NETにメリット感じるかどうかだと
3.0になってからはかなり関数言語的なプログラミングできるようになったのでC++で組む時にも応用利くと思うよ
841デフォルトの名無しさん:2008/12/11(木) 12:49:52
C/C++で食ってきた奴からするとVB.NETの冗長的なコーディングは苦痛になると思うが
842デフォルトの名無しさん:2008/12/11(木) 12:56:22
なるほど、、、
色々とありがとうございます。2chでここまで言われるとは、、、
一応処理速度重視の3D画像系のアプリなのですが、とりあえずC#で開発を始めてみます。
速度面で問題が出たら、C++を検討します。
843デフォルトの名無しさん:2008/12/11(木) 13:08:39
>>842
とにかく、ダミーのガワだけでなく、正常に動作するモノが早く出来上がる。
 → 早く評価できるのでクライアントも嬉しい

評価において、必要があれば部分的にC/C++を用いて処理性能を上げられる。
 → 腕の見せ所を持つあなたも嬉しい

このシナリオ展開の筋書きでどうだ?
844デフォルトの名無しさん:2008/12/11(木) 13:08:46
処理速度で問題が出たら、C++でDLL作ってC#から呼び出す方法を検討したらいいと思う
845デフォルトの名無しさん:2008/12/11(木) 13:45:46
俺もずっとC++やってきたけど、たまたまC#使ったらもう抜けられん・・・
併用もできるし、両方使ってからどっちか決めても遅くはない。
846デフォルトの名無しさん:2008/12/11(木) 14:24:34
ありがとうございます。
だんだんC#で開発を始めるのが楽しみになってきた。
でも2chで色々聞いてみて考えを変えました(C#でやってみることにしました)
とは言いにくいなあ。とりあえず上司にもう一回話しを振ってみて、そこでC#で
やれと言われたときに、わかりました、と言ってみる予定です。

847デフォルトの名無しさん:2008/12/11(木) 14:44:08
2ch なんて言わなくていいじゃん。ネットで色々調べた、って言えば。
クソガキかクソジジイのどちらかだな。
848デフォルトの名無しさん:2008/12/11(木) 14:53:22
そんなレスくらいで年齢や性別の特定はできんよ
849デフォルトの名無しさん:2008/12/11(木) 15:03:07
年齢はともかく、性別は推測できそうだけどね
850デフォルトの名無しさん:2008/12/11(木) 15:03:52
ごうじょっぱりって云う事だけは判った。
851デフォルトの名無しさん:2008/12/11(木) 15:05:24
すぐに年齢認定して煽り始める。
ゆとり世代のコンプレックスが原因です。
ネットで色々調べて分かりました。
852デフォルトの名無しさん:2008/12/11(木) 15:06:46
能力の程度も
C++とC#の比較なんてぐぐればいくらでもあるだろうに
853デフォルトの名無しさん:2008/12/11(木) 15:32:52
新しいことの習得を嫌がる → ジジイ
駆け引きの未熟さ → クソガキ

といったところ。
854デフォルトの名無しさん:2008/12/11(木) 19:03:02
いや、そこはどうでもいいって
855デフォルトの名無しさん:2008/12/11(木) 19:03:52
>>831
>IDEはVisual Studioなので、同じではないのですか?
見た目は一緒だけど、中身の質はかなり違う。
少なくともIntelliSenseの出来は桁違いにC#のほうが良い。
856デフォルトの名無しさん:2008/12/11(木) 20:48:34
インターネットを知らない未開民族にインターネットの便利さを説くようなもの
857デフォルトの名無しさん:2008/12/11(木) 21:38:16
いんてりせんすはC#のが圧倒的にいいよなー
C++は構文解析するの難しすぎて使い勝手のいいIDE作るの難しいってどっかで読んだことあるわ
Javaとかだとリファクタリングの機能とかもはや常識だけどC++でそういうのってないっしょ?みたいな
858デフォルトの名無しさん:2008/12/11(木) 21:42:36
今や静的型付け言語の最大のメリットはコンパイル時チェックよりもインテリセンスだからなあ
859デフォルトの名無しさん:2008/12/11(木) 22:12:28
正直、C++ でも C# でもどっちでもいい状況下で C++ 使うなんてありえない。

ガベコレはやっぱ欲しいしなぁ。
C++ でまともに使いやすいコード書こうと思ったら、
自前で参照カウント実装してとかしなきゃいけないし、
そうするとプラットフォーム側でGCしてくれる言語の方が効率いいし、
循環参照気にしだすとものすごい面倒だし。

あと、イテレーターとかLINQとかない言語はもう使えないわ。
860デフォルトの名無しさん:2008/12/11(木) 22:13:42
他にも、属性、デリゲート、プロパティ、ラムダ式、挙げだしたらきりがない。

正直、C++とC#だったら生産性1桁違うと思う。
861デフォルトの名無しさん:2008/12/11(木) 22:32:11
少なくとも業務系でC++はないわー
パフォーマンスのこと抜かしたら、言語的にC++でできてC#でできないのって型制約無しGenericsでのとりっきーなもんだけじゃない?
862デフォルトの名無しさん:2008/12/11(木) 22:37:16
C++だとコスト的に悪いよな
業務アプリ程度で速度が求められる事なんて最近はそんなにないし
863デフォルトの名無しさん:2008/12/11(木) 22:42:05
Cは精製材料、C++は機能素材、そしてC#は高機能パーツ。
これぐらい違うな。
864デフォルトの名無しさん:2008/12/11(木) 22:58:07
おまえらソフトはWindowsのデスクトップクライアントばかりじゃないですよ
865デフォルトの名無しさん:2008/12/11(木) 23:02:09
>>864
何がいい言いたいのか意味わかんねえよ。
866デフォルトの名無しさん:2008/12/11(木) 23:03:56
>>864
サーバーもWindows Server 使えってこった。
867デフォルトの名無しさん:2008/12/11(木) 23:10:18
>>864
C#が動く環境の話してるんだが
868デフォルトの名無しさん:2008/12/11(木) 23:13:12
型推論、ラムダ式、拡張メソッド、LINQは本当に便利
今までの退屈なC#プログラミングが一気に幅が広がった気がする
C++の変態的なのも楽しいけど今はC#が楽しい
所詮プログラミングなんてコード書いてる時間より考えてる時間の方が長いんだから楽しくないとね
869デフォルトの名無しさん:2008/12/11(木) 23:28:12
匿名型も忘れないであげて
870デフォルトの名無しさん:2008/12/11(木) 23:30:57
突然WindowsMoblie6.0の開発やらされる俺が通ります。
なんだ、CEってやったことないんだけど、.netなら殆ど同じなのかな……
死にてえ。
871デフォルトの名無しさん:2008/12/11(木) 23:33:49
やってから言えやカス
だからおまえはつかえねーんだよ
872デフォルトの名無しさん:2008/12/11(木) 23:33:55
あんな機能やこんなライブラリがCompactFrameworkでは・・・
873デフォルトの名無しさん:2008/12/11(木) 23:34:39
C#は余計なこと考えなくて良いから好きだ。
もうMFCには戻れない。戻りたくない。
874デフォルトの名無しさん:2008/12/11(木) 23:36:02
>>869
匿名型とラムダ式はちょっと相性が悪いので・・・
875デフォルトの名無しさん:2008/12/11(木) 23:39:15
LINQって使うか?
876デフォルトの名無しさん:2008/12/11(木) 23:46:32
>>874
なに相性悪いんだっけ?
>>875
使う。
877デフォルトの名無しさん:2008/12/12(金) 00:02:48
前から思うんだけど、2ch(というかweb全体かもしれんが)って個別の新技術への
関心度はなぜか異常に高いけど、なんていうか「お前大きなアプリ書けないんじゃないの?」って
感じの人が多いような印象を受ける。

普通にコード書いてる人なら(もちろん新技術もそれはそれで重要ではあるが)
設計レベルの話の方が重要だし関心がありそうに思うんだが、その種の話っていうのは
なぜかあまり盛り上がらないんだよね。

まあ邪推かもしれんが。
878デフォルトの名無しさん:2008/12/12(金) 00:07:16
その手の話をするスレでもないしな
879デフォルトの名無しさん:2008/12/12(金) 00:12:53
>>876
勘違いしてた
型推論とラムダ式が相性悪くて匿名型がうまくいかなかっただけだった
880デフォルトの名無しさん:2008/12/12(金) 00:14:28
コーディングがどうとか、DBのチューニングがどうとか、ツールの使い方がどうとか、
そういう話題に関心の薄い人は、そもそも設計とか技術全般に関心が薄いような印象。
881デフォルトの名無しさん:2008/12/12(金) 01:01:51
それって食えんの?
882デフォルトの名無しさん:2008/12/12(金) 01:54:20
LINQなんか使ったらコードが読みにくくてしょうがないが
883デフォルトの名無しさん:2008/12/12(金) 02:01:38
抽象度の高さに慣れたら読める
884デフォルトの名無しさん:2008/12/12(金) 03:20:48
最初読みにくくても木としての構造がしっかりとしてるから考えやすい
変な分岐やループの解読不能コードよりはるかにマシ
885デフォルトの名無しさん:2008/12/12(金) 05:20:48
LINQtoSQLよりSQL直書きのほうが手っ取り早いよ
886デフォルトの名無しさん:2008/12/12(金) 05:43:49
言語に統合されていて、IDEやコンパイラが対応しているならな
SQL自体は悪くないけど、今時クエリを文字列で扱うとかありえん
887デフォルトの名無しさん:2008/12/12(金) 07:29:37
>>879
型推論とラムダは密接に関係あるだろ
888デフォルトの名無しさん:2008/12/12(金) 08:04:09
デリゲートの型がわからないと使えないってことかな?
こういうことができない。
var f1 = i => i * 2;
推論になってないけどキャストは必要になるな。
var f2 = (Func<int, int>) (i => i * 2);
889デフォルトの名無しさん:2008/12/12(金) 08:30:14
>>882
SQLライクな組み込みクエリ使わなくても、
集合操作系の関数がそろってるってだけでものすごいありがたい。
C++ で points.Select(p => p.X) 相当のコードを C++ で書くのがどれだけ面倒か。

>>886
そうそう、IntelliSenseとコンパイラによる構文チェックがありがたい。
あと、in-memoryオブジェクトとDBアクセスが同列に扱えるのもありがたい。

>>888
型推論に頼る者同士を重ねて使うと相性悪い。
var とラムダ式もだけど、あと、テンプレートでも時々型推論の問題出る。
まあ、どれか1つ型を明示すればいいだけなんだけども。
890デフォルトの名無しさん:2008/12/12(金) 08:53:14
いまだに p=>p.Xってのがなんだか理解出来ないんだが、
object foo(object p){ return p.X;}
と同等の無名メソッドって理解でいいのかね
891デフォルトの名無しさん:2008/12/12(金) 09:00:13
そんな感じなのだが、引数や戻値の型はdelegateで定義される。
そのため p=>p.X の式だけではC#のラムダ式として成立しない。
892デフォルトの名無しさん:2008/12/12(金) 10:15:52
匿名型があるのになぜローカルな型宣言ができないのだろう
893デフォルトの名無しさん:2008/12/12(金) 10:19:33
javaとは違ってデリゲートがあるから不要と判断されたんだろう
メンバクラスも同様
894デフォルトの名無しさん:2008/12/12(金) 10:49:04
var f = x => t.Where( t => t.t1 == x ).Select( t => new { a = t.t1, b = t.t2 } );

できればこんなことをしたいけど型推論が無理
Func<int, IQueryable<'a>> みたいになるので明示的宣言もできない
汎用Variantみたいなもの作ってFunc<int, IQueryable<Variant<T1,T2>>>的なことはできるけど冗長になりやすいのでtypedefが欲しくなるし
型推論ができないのは仕方ないとしてせめてローカル型宣言できればなあって
895デフォルトの名無しさん:2008/12/12(金) 11:06:44
static Func<T, TResult> Func<T, TResult>(T t1, Func<T, TResult> func) { return func; }

var f = Func("ダミーだよ", x => new { X = x });
Console.WriteLine(f("Hello World").X);
こうする。キモいけど。
896デフォルトの名無しさん:2008/12/12(金) 11:27:51
なるほど、ちょっといじって
var f = Func( (string x) => new { X = x } );
でいけた
ありがとう
897デフォルトの名無しさん:2008/12/12(金) 11:37:42
static List<T> NewList<T>(T type) { return new List<T>(); } も必須だな
898デフォルトの名無しさん:2008/12/12(金) 17:40:09
Application.Exit()してもメモリは全部解放されるの?
899デフォルトの名無しさん:2008/12/12(金) 18:04:39
プロセスを終わらせるのだから当然。
その前に未実行のデストラクタもちゃんと動くから、
プロセス外のアンマネージドリソースやアウトプロセスサーバーの開放も機能する。
900デフォルトの名無しさん:2008/12/12(金) 20:20:21
プロセスを終了ちゃう。
901デフォルトの名無しさん:2008/12/12(金) 20:21:27
デストラクタ実行の保証もない。
一部はあるけど。
902デフォルトの名無しさん:2008/12/12(金) 21:45:22
確かに、メッセージループを抜けるだけだな
元の質問がプロセス終了を意図したものならば、
プロセス終了時の(未解放の)リソース解放はOSが責任を負う
903デフォルトの名無しさん:2008/12/13(土) 00:25:48
Environment.Exitとはまた別だな
904デフォルトの名無しさん:2008/12/13(土) 18:33:34
Environment.FailFastが最強
905デフォルトの名無しさん:2008/12/13(土) 19:32:30
多値返したいんだけどどうすればいいんだ?
return new { Result = true, Message = "うどん>そば" };
とかを返すような関数って型宣言どうすればいいの?
906デフォルトの名無しさん:2008/12/13(土) 19:35:11
>>905
匿名型返す非匿名メソッドは無理。
ちゃんと Result と Message 持つ型作るしかない。

4.0 なら dynamic で返せばいいんだけど。
907デフォルトの名無しさん:2008/12/13(土) 19:39:03
>>906
マジか ありがとう
4.0ならいけるのか… C#はバージョン上がるたびに気持ちよく書けるようになるな
908デフォルトの名無しさん:2008/12/13(土) 19:56:53
C# 2005
ADOXのカタログ使って*.mdbファイル作ってるんだが
複数の主キー設定する方法がわからないんだ…

ADOX.KeyClass pk = new ADOX.KeyClass();
で宣言してColumnsに列名追加してやってるんだが

Keys.Append(pk,ADOX.KeyTypeEnum.adKeyPrimary,"","","");
ではダメらしい…orz
909デフォルトの名無しさん:2008/12/13(土) 20:01:01
>>907
でも、そんなののためにdynamic使うのはどうかと思うけどなぁ。
匿名型はメソッド内だけで使え。
910デフォルトの名無しさん:2008/12/13(土) 20:29:24
dynamicで返すとIntelliSense効かなくなるしね。
911デフォルトの名無しさん:2008/12/13(土) 22:02:31
ある程度効かせて来たりするかもしれんがやっぱり名前ぐらい与えてやれ戻り値の型に。
自動プロパティとイニシャライザでだいぶいい感じにはなるから
912デフォルトの名無しさん:2008/12/13(土) 22:08:51
効いたらdynamicじゃないだろ
もし推測が可能でも意味的におかしいからありえない
913912:2008/12/13(土) 22:12:12
dynamic型を返すメソッドの場合に限った話だよ
dynamic x = "a";
これはインテリセンスが効いてもおかしくはない
914デフォルトの名無しさん:2008/12/13(土) 22:15:45
intellisenseに頼る状況ならdynamic使う意味なくね?
915デフォルトの名無しさん:2008/12/13(土) 22:49:12
もう3.0以降はついて行けない
LINQって何? おいしいの? データベースなんか触らないボクに関係ある?
ラムダ式ってなに=>あの矢印。べつにデリゲートでいいじゃん。こないだやっと理解したばっかなのに。
ダイナミックてw ダイクマかよw
916デフォルトの名無しさん:2008/12/13(土) 22:50:46
むしろ宇宙刑事ギャバン
917デフォルトの名無しさん:2008/12/13(土) 22:58:56
>>913
その場合ならvar使えばいいと思う。
918デフォルトの名無しさん:2008/12/13(土) 23:06:11
後でxに違う型のオブジェクトを代入するかもしれないでしょ
右辺にdynamicを返すメソッドが来ないかぎりは推測できるはず
919デフォルトの名無しさん:2008/12/13(土) 23:09:44
別にIntelliSenseが今よりもっさりしてもいいなら可能なんじゃないかな
920デフォルトの名無しさん:2008/12/13(土) 23:53:57
>>915
データベース関係なくても、Enumerableクラスで
配列やコレクションに対する操作を行うメソッドが充実しているのは便利。
921デフォルトの名無しさん:2008/12/14(日) 00:00:47
ラムダ式なくて生きていけるヤツとか存在するの?
922デフォルトの名無しさん:2008/12/14(日) 00:12:47
>915
ToLookupが便利だよ。ここだけは勧める。
ToLookupとかToDictionaryとか一時変数なしでさっくり処理できるのが嬉しい。
ToLookupしてToDictionary(it => it.Key, it => it.ToList())とかToDictionary(it => it.Key, it => it.First())とかよく使う。
LookupはDictionaryと違ってキーがなくても長さ0のコレクションが返ってくるのでそれも便利。

linqをデータベースに適用するのはデータ量的にも予想できそうにない処理速度的にも怖くて出来ない。
923デフォルトの名無しさん:2008/12/14(日) 00:17:56
LINQ to XMLが使いやすすぎる
軽いし
924デフォルトの名無しさん:2008/12/14(日) 00:21:14
人の書いたLINQのソースってなんか読むのがすごく苦痛じゃね?
俺が単にまだぽつりぽつりと使うぐらいで、きちんと使いこなして
いないせいなのかもしれないけど。
925デフォルトの名無しさん:2008/12/14(日) 00:22:27
>>922
データベース相手でも、複雑でなければLINQ使っても直にSQL使ってもそう変わらないと思うけど。
926デフォルトの名無しさん:2008/12/14(日) 00:43:11
普通のSQL書いてくれたほうがLINQより読みやすいのは確定的に明らか
927デフォルトの名無しさん:2008/12/14(日) 00:53:15
読みにくいと思うのは思考がまだ慣れてないだけだと思うけどなあ
クエリ式は正直いらなかった
928デフォルトの名無しさん:2008/12/14(日) 00:55:14
>925
LINQでも直にSQLでも同じクエリが実行されるなら普通にSQL書いて欲しいよ。
「そう変わらない」って表現できるように違うクエリになる可能性があるとなると
ちょっとでも違うのが原因で予想外な実行プランになるのが怖いんだよ。

SQLServerをプロファイラでチェックして重いクエリを見つけたときに
SQLが直接書かれていれば簡単にgrepできるのに
LINQだとどこで実行されたクエリか探すのが大変なことになるよ。
929デフォルトの名無しさん:2008/12/14(日) 00:58:09
LINQ to SQL/EntityとLINQ to Objectの話が混ざってるような。
分けて考えたほうが無難だと思うよ。
930デフォルトの名無しさん:2008/12/14(日) 01:20:51
LINQ to Objectがないとコレクションに対するあらゆる操作が面倒くさくなる
931デフォルトの名無しさん:2008/12/14(日) 02:09:13
2.0でデリゲートの型宣言がメソッド内で出来たらいいのに。
932デフォルトの名無しさん:2008/12/14(日) 02:10:02
>>928
いやいや、それはない。
LINQ to SQL、LINQ to Entity は、C# ソース中に型安全で IntelliSense とコンパイラの構文チェック付きで書けるってのが何よりもおいしい。

確かにパフォーマンス最優先なら結局 SQL 文直接書いてぎりぎりまでチューニングした方がいいんだけども。
それは「C++ は遅いからアセンブラ書け」って発想と大差ない。
933デフォルトの名無しさん:2008/12/14(日) 04:03:40
LINQのような使い手(開発者)向けに改良された高機能技術はデータベースでこそ使いたいな。
複雑で難儀するものこそ技術者コミュニティの美徳という、サグラダ的なリナ糞系では生まれない
洗練された技術だしな。
934デフォルトの名無しさん:2008/12/14(日) 04:44:30
LINQはまず第一にジェネリックアルゴリズムなんであって
SQLとかクエリ式とかおまけもおまけだろ
935デフォルトの名無しさん:2008/12/14(日) 05:03:51
ずっと桜田ファミリアだと思ってた
936デフォルトの名無しさん:2008/12/14(日) 08:51:32
ようするにあると便利だけど
なくても実現できないものがあるわけではない

でおk?
937デフォルトの名無しさん:2008/12/14(日) 08:52:28
>>936
お前さんにはそれでいいよ。
938デフォルトの名無しさん:2008/12/14(日) 08:54:17
>>935
ズーズー弁なら発音は正しい。
939デフォルトの名無しさん:2008/12/14(日) 09:03:06
>>937
分からないなら黙っててください。ウザいだけです。
940デフォルトの名無しさん:2008/12/14(日) 09:05:38
どうでもいいループまで得意げにLinqで書かれるとうざい
941デフォルトの名無しさん:2008/12/14(日) 09:06:32
Linq to SQLが無かったらトークンごとのコンパイル時型チェックができないじゃないか
SQL文字列を自前でトークナイズしてたら実行時になっちゃうし
942デフォルトの名無しさん:2008/12/14(日) 10:03:49
SQLインジェクションとか気にせず適当に突っ込んどけばいいから楽だよ
943デフォルトの名無しさん:2008/12/14(日) 10:37:11
>>940
どうでもいいループなら消した方がいいと思うけどどんなの?
944デフォルトの名無しさん:2008/12/14(日) 11:33:56
サクラダファミリアじゃないのかよw
945デフォルトの名無しさん:2008/12/14(日) 13:50:38
>>943
定形処理までLINQにされると読みにくいんじゃないのか?わからんけど
今までの書き方のほうが見た瞬間わかる!とかはあるじゃん
ようするに俺らの脳内が時代に追いついてませんwwwみたいな
946デフォルトの名無しさん:2008/12/14(日) 13:53:02
【大阪】 「思うに、この一言で責任回避してるんだな。」 〜大阪人の口癖は「よう知らんけどな」
http://mamono.2ch.net/test/read.cgi/newsplus/1229229316/
947デフォルトの名無しさん:2008/12/14(日) 13:53:28
コピペ君って馬鹿だな、まで読んだ。
948デフォルトの名無しさん:2008/12/14(日) 14:20:09
>>947
だからそれもコピペだろ? 馬鹿なの?
949デフォルトの名無しさん:2008/12/14(日) 14:27:35
>>946
ワロタw確かに使ってるww
「〜やろ。いやよう知らんけど。」みたいなw
でもそれが大阪の味やねんからほっといて。
よう知らんけど・・・
950デフォルトの名無しさん:2008/12/14(日) 17:11:29
C#でGUIアプリケーションを作っているのですが、
アプリ内でフォームに入力した内容をMS Word、Excelに出力する事はできるのでしょうか?
メニューを作り、txtファイルに出力されるようにはしているのですが、
そこから印刷する時にいつもWordを開いてコピペしてやっているので、
直でWord形式で出力はできないのか?と思いました。
951デフォルトの名無しさん:2008/12/14(日) 17:23:11
平気で断定的に嘘をつく人間よりは不正確であることをそうと宣言する人間のほうがいいと思うがなあ
952デフォルトの名無しさん:2008/12/14(日) 17:23:34
>>950
できるよ。「オートメーション」で調べてみ
953デフォルトの名無しさん:2008/12/14(日) 17:58:40
XDocumentであるXHTMLを喰わせたあとxdoc.Descendants("{http://www.w3.org/1999/xhtml}a")とかやっても要素が取れないんだがどうしたらいいんだこれ
同じXHTMLをXmlDocumentに食わせるとxdoc.SelectNodes("//hoge:a", hogenm)とかで全部取れるんだけど…
Parseしたときに怒られたりしないからこれで取れてほしいんだけどなぁ…

ttp://blog.asura.co.jp/takehara/70a91a6b2c354b7489c36c41e5e7ea17/entry.aspx
ここらへんを参考にやってみたけど同じようにできんかった…
954デフォルトの名無しさん:2008/12/14(日) 18:09:25
>>952
ありがとうございます。やってみます。
955デフォルトの名無しさん:2008/12/14(日) 19:35:05
>>953
XNamespaceで解決するかも、しないかも
956デフォルトの名無しさん:2008/12/14(日) 21:35:37
>>955
そこは「よう知らんけど」を使わないとw
957デフォルトの名無しさん:2008/12/14(日) 21:56:11
>>930
同感、もう手放せないったら手放せない
ほかの言語に行くのが怖い・・・
958デフォルトの名無しさん:2008/12/14(日) 22:16:00
>>955
やってみたけど解決しなかったわ… や、よう知らんけどな
959デフォルトの名無しさん:2008/12/14(日) 22:17:08
LINQでゴニョゴニョすると、わけのわからんクラスがアセンブリに勝手に作られたりすんの?
960デフォルトの名無しさん:2008/12/14(日) 22:22:17
>ゴニョゴニョ
出たよヲタグラマ用語。本当に気色わるいな。

ゴ〜ニョゴニョゴニョヲタクの子
961デフォルトの名無しさん:2008/12/14(日) 22:23:01
var xml = @"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.1//EN""
  ""ttp://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"">
<html xmlns=""ttp://www.w3.org/1999/xhtml"" xml:lang=""ja-JP"">
 <head><title>タイトル</title></head>
 <body><p><a href=""ttp://www.example.com"">リンク</a></p></body>
</html>";
var doc = XDocument.Load(new StringReader(xml));
var hrefs = (from a in doc.Descendants("{ttp://www.w3.org/1999/xhtml}a")
                where a.Attribute("href") != null
                select a.Attribute("href").Value);
foreach (var href in hrefs)
   Console.WriteLine(href);
問題なく取れるな
962デフォルトの名無しさん:2008/12/14(日) 22:29:33
>>959
ローカル変数をラムダ式(もしくはクエリ式中の式)に取り込むとクラスが生成されるけど
LINQとは直接関係ない
一番アセンブリが汚くなるのはyieldだな
結構な量の汚いコードを生成する
963デフォルトの名無しさん:2008/12/14(日) 22:35:24
yield これもまた使えるんだよな
ただそろそろ整理しないと言語が崩壊する…
964デフォルトの名無しさん:2008/12/14(日) 22:41:01
とっととラムダ式の中でyield使えるように汁
965デフォルトの名無しさん:2008/12/14(日) 22:46:40
LINQの中で一番恐ろしいのはExpressionsだと思う
966デフォルトの名無しさん:2008/12/14(日) 22:55:04
>>961
あるぇー?(´・ω・`)
わざわざコード書いてくれてあんがと
喰わせたXHTMLがダメだったんかな… どうやって追いかければいいんだ…
967デフォルトの名無しさん:2008/12/14(日) 23:02:40
XDocmentの奴は例外飛ばすときなんか行番号がでていたのを見たことがあるような気がする〜
良く知らないけどw
もし行番号でているなら手で開業売ってみたらええのでは
968デフォルトの名無しさん:2008/12/14(日) 23:06:54
俺なんかは、HTML系はエラーが出過ぎてもう面倒くさいからって、ダサダサの全部手パースだw
969デフォルトの名無しさん:2008/12/14(日) 23:29:28
>>967
一応例外は飛ばないんだ…
で、doc.Descendants("{ttp://www.w3.org/1999/xhtml}a")的なことをしたとき\なんもねぇ!/ってなるんだ…

>>968
mjd…根性あるなぁ
jayとか使うの?
970デフォルトの名無しさん:2008/12/14(日) 23:35:19
dynamicで生成されるコードもかなり酷いよ
971デフォルトの名無しさん:2008/12/14(日) 23:42:51
>>969
根性のRegexクラスで全パース
972デフォルトの名無しさん:2008/12/14(日) 23:45:02
正規表現万能説ですねわかります
973デフォルトの名無しさん:2008/12/15(月) 00:04:13
その発想はなかったわ
974953:2008/12/15(月) 00:10:12
今もっかい
>>961が書いてくれたコードをコピペしたら動くようになった よう知らんけど
で、そのあと自分の流儀でもっかい書き直してみた 動いた
元のコードと新しく書いたコードを見比べてみて特に違いがわからない
何で動くようになったのか全然わからなくて嬉しいけど気持ち悪い

ほとんど変わってないけど以下動いたコード
XDocument x = XDocument.Parse(xml);
XNamespace xn = "http://www.w3.org/1999/xhtml";

var hrefs = from a in x.Descendants(xn + "a")
where a.Attribute("href") != null
select a.Attribute("href").Value;

foreach(var href in hrefs) {
Console.WriteLine(href);
}
975デフォルトの名無しさん:2008/12/15(月) 00:11:49
良くあることでつ
976デフォルトの名無しさん:2008/12/15(月) 10:16:48
ねーよw
977デフォルトの名無しさん:2008/12/15(月) 14:33:21
>xdoc.Descendants("{http://www.w3.org/1999/xhtml}a")
xdoc.Descendants("{http://www.w3.org/1999/xhtml#}a")

XNamespaceを使ったほうがいいと思うが、
最初のが動かなかったのは#が抜けてるからだろう。
978デフォルトの名無しさん:2008/12/15(月) 14:42:40
>>977 は間違い、nvmで。
979デフォルトの名無しさん:2008/12/15(月) 15:57:17
エクスプローラでは隠しファイル属性のファイルのアイコンは淡い色で
表示されていますが、あのようにアイコンを淡い色で表示するためには
どういったクラスでできるのでしょうか。
980デフォルトの名無しさん:2008/12/15(月) 18:41:03
>>979
アルファを半分くらいにするとそれっぽくはなるが
http://dobon.net/vb/dotnet/graphics/hadeinimage.html
981デフォルトの名無しさん:2008/12/15(月) 20:00:03
>>980
ご指導ありがとうございます!!
この方法をアイコンの表示に使う場合にはどうするか、
わかればいいのですね。また調べてみます。
またわからないときにはお聴きします。
982デフォルトの名無しさん:2008/12/15(月) 20:59:59
ControlPaint系のスタティックメソッドが使えるかもしれない
983デフォルトの名無しさん:2008/12/15(月) 22:01:29
だれかjmeterの砲弾作ってくれる人いないかー?
Vs韓国戦の砲弾が劣悪らしいんだ
戦争できねえっうぇえっっw
984デフォルトの名無しさん:2008/12/15(月) 22:33:59
仕返ししたら韓国人と同レベルじゃないか。程度が知れるぞ
985デフォルトの名無しさん:2008/12/15(月) 23:14:04
自分の足を撃ち抜く砲弾作ってやろうぜ!
986デフォルトの名無しさん:2008/12/16(火) 00:05:19
構えると後に飛んでくバズーカとか
987デフォルトの名無しさん:2008/12/16(火) 10:54:44
めくそはなくそ
988デフォルトの名無しさん:2008/12/16(火) 17:57:47
C#についての質問です

コンソールで上の行に戻ることはできますか?
C言語ならば\x1b[2Aのようなエスケープシーケンスで戻ることができたのですが
C#ではこれが使用できませんでした
何か方法があったら教えてください
989デフォルトの名無しさん:2008/12/16(火) 17:59:20
C#じゃなくて.NETでの回答だけど
2.0以降ならConsoleクラスにカーソル関係のプロパティとか用意されてる
990デフォルトの名無しさん:2008/12/16(火) 18:02:27
Cでも今時Win32アプリケーションでは無理だな。
991デフォルトの名無しさん:2008/12/16(火) 18:35:52
ANSI.SYS組み込んだDOSプロンプトじゃないとね。
992デフォルトの名無しさん:2008/12/16(火) 19:10:22
>>989
返答ありがとうございます
なるほど,Consoleクラスにあるんですね…盲点でした
993デフォルトの名無しさん:2008/12/16(火) 23:01:45
次スレの用意は?
994デフォルトの名無しさん
いいだしっぺの法則