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


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

[プログラム板] C#, C♯, C#相談室 Part47



1 名前:名無しぃ♯ [2008/06/21(土) 17:51:22 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
C#, C♯, C#相談室 Part46
pc11.2ch.net/test/read.cgi/tech/1208791919/

その他テンプレ>>2-5くらい

577 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:10:13 ]
>575
www.google.co.jp/search?hl=ja&q=%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0%E4%B8%AD%E3%81%AB%E3%82%A6%E3%82%A4%E3%83%B3%E3%83%89%E3%82%A6%E3%81%AE%E5%86%85%E5%AE%B9%E3%80%80%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA

578 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:21:50 ]
>>571
DLLっすか。それで引っ張ってこれるなら・・・。
中々情報がないですが、漁って見ます。

>>573
サポセンあるにはあるんですが、質問したら
激しく役に立たないサンプルソースがヤル気なく返ってきました。('A`
相談したいんですが、社内での導入が実質初なので。
まともに使ったこと有る人、他にいないんです。

サンプルコード・・・一部抜粋して書いてみました。
役に立たなそうですが。(´Д`;

MessageItem frm_ENG;
public override void OnStart()
{
frm_ENG = GetMessage("ENG");
StartTimer("ENG",200);
Start_test();
}
[Timer("ENG",200, false , false)]
public void OnTimer_t_ENG()
{
StartTimer("ENG",200);
SendMessage(frm_ENG);
}
public void Start_test(){
WriteLine("start");
}

共通的に記述が2500行位で、それを百前後作るんで、
できれば引っ張ってきたいんですよね。

579 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 17:22:32 ]
>>577
情報、どうもありがとうございました。
助かりました、すぐ調べてみます!


580 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:55:51 ]
>>578
C#つかOO言語触ったことなくね?

581 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 21:24:42 ]
>>578が2chでヤル気なく質問してきた理由がわかった('A`
気の毒すぎるw
C#とWindowsAPIが混ざってるよね…

Timerを属性指定にして
メソッドに依存させてしまっているあたりセンスのなさが感じられるww

とりあえず>>578が何をやりたいかということと
サンプルソース全部と
あともう微妙にスレ違いなんで、
どっかの放棄されたスレに移るかして、
腰を据えて分析するよりないんじゃないかなw

パズル感覚で協力してくれる人いると思うよww

582 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:08:48 ]
codedom使ってコンパイルしてるだけでC#なんだと思うよ
つか常識的に考えて#includeで展開とか不要でそ…
どんな状況なら必要なんだよ…

583 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:45:15 ]
よくわからんけどincludeなんて前世代的だとおもう

584 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:01:12 ]
なんという蘭学事始。

585 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:27:49 ]
>>583
そうかもしれんが、かといってグローバルな(つまりファイルスコープじゃない)
コンパイル定数を定義しようと思ったらプロジェクトのプロパティに
ちまちま書かなければならん不便さを進歩と言ってよいのか疑問でもある。



586 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:32:02 ]
>>585
定数も、const じゃなくて、static readonly なプロパティ使うことが推奨されてるしなぁ。
private/internal な場合か、円周率みたいに絶対変わらない値だけ const。

587 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:33:43 ]
定数だったら、たとえばColor.Redみたいに、クラスのpublicな要素でぜんぜん不便を感じてないけど。
そういうことじゃなくて?

588 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:03:34 ]
お前は黙ってろ

589 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 00:05:26 ]
お前がだまれ。

590 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 02:37:56 ]
>>587
プリプロセッサシンボルを使いたいんだろうね
>>585はプロジェクトのプロパティでしか設定できないと思い込んでいるらしいが

591 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 05:28:26 ]
>>583
クラス定義とか、テキストエディタさえあればヘッダ除けばすぐに判る点とか、
C/C++やってきた自分としては好きですけどね



592 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 08:38:54 ]
クラス定義は嬉しいけど、インクルードする順番によってコンパイルが通らなくなったりするのは最悪だった

593 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 08:56:42 ]
>>591
俺は C++ やってるからこそ、
あのヘッダシステムのせいで
クラスの依存性切るのに pimpl みたいなおまじないが必要だし、
コンパイル速度が低下するし、
インテリセンスの効きが時々おかしくなるし、
include が大嫌いなんだが。

594 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 09:58:15 ]
C、C++のincludeが遅いのはマクロのせいでしょう

595 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:01:48 ]
C++の

の間違いじゃない?
Cはよほど下手な組み方でもしなければそうそう遅くならないでしょ



596 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:01:52 ]
#includeが欲しいだけならプリプロセッサでもかませばいいじゃん。

597 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:18 ]
目立つのはC++になるね。
でもCも速度としては遅いし、ヘッダーを1バイトでも書き換えたら
includeしてる全てのソースファイルを再コンパイルになるのはかわらない。
そういう意味でも遅いよ。

もしマクロがなくて、クラスや関数の定義のみであるなら
リアルタイムコンパイルも可能だよ。

598 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:22:40 ]
C みたいな関数宣言と #define だけのためにあるシステムを、
C++ でクラス定義でも使いまわしたのがそもそもの失敗じゃないか。

private な変数1個追加しただけで、#include してるファイル全部再コンパイルとか
狂ってるとしか言いようがない。

599 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:26:47 ]
そこでpimplイデオムですよってスレ違いじゃねぇかよ

600 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 10:41:17 ]
>>590
すまんその「思い込んでる」のは俺だけど、
俺の「思い込み」だというならもったいぶらずに君のいう別の方法を教えてくれよ。

分かってると思うけど議論の流れからいってIDEでプロジェクトの設定いじるより
不便な方法だったなんの意味もないわけだが、そこは踏まえて頼むよ本当。

601 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:11:56 ]
>>600
普通に教えてくれでいいんじゃね?
頼みかた感じ悪いと思う
いつもそうなん?

602 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:35:10 ]
VSのマクロでCSharpProjectConfigurationProperties3.DefineConstants触るとか

603 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:39:48 ]
>>599
既出 >>593

>>600
定数定義用の static なクラス作って、
絶対に変わらないと言い切れる定数は public const フィールド、
そうでなければ public static readonly なプロパティ。

604 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:41:14 ]
あと、#if SYMBOL 用のシンボル定義は、
むしろヘッダファイルでできるべきではなく、プロジェクトのプロパティですべき
というのが MS の判断。

605 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:54:44 ]
>>604
なんだよやっぱりプロジェクトのプロパティでしか出来ないんじゃないかw

だから「べき」って、確かにそうかもしれんがその不便さを進歩って言えるんかい、
つってんだよ。



606 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 11:55:40 ]
設定ファイルを直にいじれよ

607 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:06:03 ]
多重継承禁止とかもべき論で導入されたわけで

608 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:10:29 ]
DebugやReleaseの他にもプロジェクト構成を作って切り替えるのが正攻法
逆にいえばそれで足りる用途にしか使ってほしくないんだろう

609 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:12:34 ]
C++はtemplateを導入した時点で、#includeでマクロがどうこうといった次元からすでに超越してる。
技術的には可能でもC++のtemplateを模倣する言語は現れないだろう。

610 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:14:17 ]
C++はあと文字列mixinみたいな機能が入れば完全にプリプロセッサと縁が切れるな

611 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:17:23 ]
>>605
これのことでしょ
ttp://msdn.microsoft.com/ja-jp/library/yt3yck0x.aspx

暑いんだからあんまりぎゃーぎゃー喚くなよ

612 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:25:45 ]
>>609
Dとかどうよ

613 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:30:47 ]
>>608
それが正攻法だというのは否定してないよ。
構成の切替方法はあれで便利だし。

ただIDEのあのたった一行の入力欄に「全部の定数を定義する必要がある」のは
不便で使いにくいって言ってるだけ。

しかも(当たり前だが)作った構成の数だけ同じことをする必要がある。
そこにミスが入った場合、非常に発見しにくいとも思うんだが。。

614 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 12:38:02 ]
あっちこっちのファイルに飛び散るより遥かにましだと思うが

615 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:36:11 ]
>>605
「できる」みたいに言ってるやつと >>604 は別人だろ。

できる風に書いてるやつは多分よく読んでないだけ。
要するに、お前の書き込みによく読む価値はないと判断されてる。



616 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:50:34 ]
実に自分を世界の中心に置く「セカイ系」的発想だね。
俺やアイツの誤読はお前の文章に読む価値がないからだ、ってかw

まあ、自分を世界の中心に「俺様中華思想」もいいかもしれんが、
だったら自分の言葉を自分に適用したらどうだろう。
つまりもう少し他人にとって有益な情報を書けよって意味だが。

617 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:51:54 ]
黙ってスルーする能力もないのかよ

618 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:54:44 ]
能力というのは目的合理的に物事を推進する力のことを言う。
では「スルーする能力」という時の「スルーする」ことの目的ってなんだ?
少なくとも俺にとってはそんなものはない。

むしろ馬鹿は叩いておいた方が場のため本人のため、そして自分自身の精神衛生のため、
と思っての行動なんだけどね。

619 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:59:03 ]
というか .csproj はただの MSBuild の XML ファイルなんで
テキストエディタで開いてゴリゴリ編集できるんだがそういう
基本的な話は知らんのか?
VS からならプロジェクトのアンロード → **.csproj の編集。

…ついでに言うと、VS 側の CSharpPackage が変な proj ファ
イルでも普通に動くので VsPackage めんどいとき(ビルドとIDE
から適当にファイルが見えて編集できればいい)は .csproj 流用
するといいみたいな。


620 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:27:10 ]
csprojのほうはいいんだが、slnのほうは変なGUIDが付いてるので手でいじれん・・・
どっかに何入れればいいか公開されてるのかな?


621 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 15:36:53 ]
適当でいい

622 名前:デフォルトの名無しさん [2008/08/02(土) 15:58:49 ]
ソリューション周りの情報なら VSSDK の

msdn.microsoft.com/it-it/library/bb165922.aspx

この辺しか知らん。
・・・が、俺は基本的にいじるのは IDE 上からだなぁ。依存関係とか。


623 名前:デフォルトの名無しさん [2008/08/03(日) 10:39:27 ]
XmlSerializerでstaticなクラスをXMLに保存できないですよね?
アプリ設定情報をstaticにしてどのクラスからもすぐに楽に参照したいんですけど、
staticクラスにするとXmlSerializerは使えないですよね?

624 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 10:41:21 ]
シングルトン

625 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 10:49:08 ]
>>623
・MySettingクラス(仮称)をstaticクラスじゃなくてsingletonにする。

または

・MySettingクラスはstaticのまま、内部の実装としては別のHogeSettingクラスの
インスタンスをもちこいつをXMLシルアル化するようにして、外部にはSaveSetting/LoadSetting
メソッドを公開する。



626 名前:デフォルトの名無しさん [2008/08/03(日) 11:20:33 ]
シングルトンでいきます

ありがとうございました!

627 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 11:32:44 ]
stringの配列を指定した列挙型の組み合わせに変換したいのですが、
@のところでコンパイルエラーになってしまいます。
どのように実装したらいいんでしょうか・・・


public class ConvertToEnum<T> where T : Enum ←@
{
private T _value;
public class ConvertToEnum(string[] texts)
{
foreach (string s in texts)
{
_value |= Enum.Parse(typeof(T), text, true);
}
}

public T Value
{
get { return _value; }
}

}


[Flags]
public enum TestEnum
{
AAA = 001, BBB=002, CCC=004
}
string[] texts = { "AAA", "BBB", "CCC" };
TestEnum value = ConvertToEnum<TestEnum>(texts).Value;
value : 007

628 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 11:45:19 ]
コンパイルエラーの内容読むこともできないの?

enumとかdelegateとかで制約は無理

629 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 15:00:54 ]
staticコンストラクタでif (!typeof(T).IsAssignableFrom(typeof(Enum))) throw new Exception();
でおk
でもその例でクラスにする意味がわからない
ConvertToEnum<T>(string[] text)でいいよね

630 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 17:51:29 ]
>>629
クラスにしたのは元のソースがクラスだからです
必要な部分だけ残したら上の形になりました

えーと、Generic制約でEnumを指定できないと、
Aの部分の | 演算子が使えません…

foreach (string s in texts)
{
_value |= Enum.Parse(typeof(T), text, true); ←A
}

_valueをint型にしてもBの部分でコンパイルエラーです…

public T Value
{
get { return (T)_value; } ←B
}

上手な実装の仕方はないでしょうか…

631 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:02:54 ]
リフレクション

632 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:24:52 ]
where T : struct, IConvertible としておいて

value = default(T);
foreach (string s in texts) {
value = (T)Enum.ToObject(typeof(T), value.ToInt32(null) | ((T)Enum.Parse(typeof(T), s, true)).ToInt32(null));
}

633 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:45:43 ]
List<List<int>>型変数に入ってるすべてのintを返すIEnumerable<int>がほしいんだけど、
Linqとか使うと1行で可能?

634 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 18:59:33 ]
listlist.SelectMany(list => list);

635 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:08:50 ]
>>634
ありがd。



636 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:30:09 ]
|=を使わんでも、文字列をカンマ区切りにして、
Keys k = (Keys)Enum.Parse(typeof(Keys), "Control, Alt, T", true);
みたいにすればいい。

637 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 20:49:00 ]
>>634
おおそんなのが・・・

638 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:19:43 ]
>>634
こういうのが頭の中にすんなり入ってこないorz

639 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:32:35 ]
var array = new[] { new {A="あ", B="いう"}, new { A="え",B="お" } };
var flat = array.SelectMany(x => new[] { x.A, x.B });
Console.WriteLine(string.Concat(flat.ToArray()));
こういう例のほうがわかりやすいかな

640 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:35:33 ]
ラムダ式を華麗に扱えるようになりたい

641 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:40:18 ]
C#3.0でRayToracingとかのArticleあったけれど、あのソースがラムダ使いこなしたサンプルの一つとみていいもんかね。

642 名前:デフォルトの名無しさん [2008/08/04(月) 21:46:35 ]
バイト配列の変換について教えてください。
バイナリファイルよりReadAllBytesでデータをバイト配列に格納後、指定の
バイト数分のデータを2進数の文字列に変換するメソッドを作成しています。

8バイトまではBitConverterメソッドで数値変換し、Convert.ToStringで
2進数の文字列に変換できるのですが、9バイト以上はBitConverterメソッドが
対応していません。この場合、何か良い方法があるのでしょうか?

よろしくお願いします。



643 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:48:22 ]
手抜きするならBitConverter.ToStringとString.Replace

644 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:49:07 ]
どうでもいいが数値変換したらリトルエンディアンになっちゃうぜ

645 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 22:09:26 ]
クリスタルレポートとMicrosoft.Reportingのどっちを使おうか悩む。
普通なら昔からあるものは情報も豊富でバグも枯れてて使いやすい
はずだが、クリレポは悪評ばかり・・・



646 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:09:18 ]
>>638
このケースではクエリ式の方がとっつきやすいかな。
from list in listlist
from x in list
select x;

慣れてくればSelectManyを思い出せるようになる。かも。
ILではどっちでも同じことなんだけど。

647 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:24:50 ]
>>638
SelectMany は正直無理だと思う。

そのために、
from listist in listlist
from x in list
select x
みたいな記法がある。
これで listlist.SelectMany(list => list) と同義のはず。

648 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:26:01 ]
>>641
あれは結構邪道だけどな。

クエリ式が関数型言語っぽい記述できるのをいいことに、
C# 内で関数型言語プログラミングしてるっていう。

クエリ式の目指すところではなくて、副産物的なものだと思う。

649 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:56:31 ]
Validatorクラスでの正規表現チェックって
クラサバでもwebでも使えますか?

650 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 02:19:49 ]
>>633 >>634 に便乗して、
List<List<List<int>>> listlistlist; から IEnumerable<int> を得るには、

listlistlist.SelectMany(listlist => listlist).SelectMany(list => list);
か、
listlistlist.SelectMany(listlist => listlist.SelectMany(list => list));
みたいな感じでOK?

もっと良い書き方があったりするのかな?


651 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 05:45:41 ]
>>650
それでOK。

652 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:49:25 ]
>>650
それでもいいけど、それは関数化すべき気がする。

static IEnumerable<T> Concat<T>(IEnumerable<IEnumerable<T>> listlist)
{
 return listlist.SelectMany(list => list);
}

を作って、Concat(Concat(listlistlist));

653 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:55:21 ]
メソッドと関数って何が違うの?

654 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 08:56:39 ]
メソッドはクラスの一部だけど関数はそうじゃなかったような・・・
というか関数はそもそもC時代の名残だし

655 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:03:34 ]
>>653
昔の名残。
OOP 用語的にはメソッド、昔の名残的にはメンバ関数。

単に関数っていうと、グローバル関数(C# では定義できない)のことだけど、
非 OOP 言語ではグローバル関数として定義するような static メソッドのことを関数って呼んだりする。

関数化ってのも、メソッドとして独立させろって意味。
サブルーチン化って言った方がいいかも。



656 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:08:55 ]
サブルーチンって更に化石用語な気が。

657 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:29:32 ]
Procedure / Function、Sub / Function のように
関数とサブルーティンを分ける言語も多いね。
サブルーティンを戻り値のない関数としたのはCあたりからだったかな。

658 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:25:21 ]
BackGroundWorkerとThreadってどっちがパフォーマンスいいの?

659 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:38:04 ]
気にするほどのもんでもない

660 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:21:39 ]
>>307
.Where 以降の構文は、3.5から追加されたものだと
思うのですけれども、なんと呼称されているでしょうか?

オブジェクト内のメソッド呼び出しのようですし
Linq とはまた別の新しい技法のような気がします。

てか、Where, ToList, ForEach が一般的過ぎて検索しにくい・・・

661 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:22:42 ]
拡張メソッド
実態は静的メソッドの呼び出し

662 名前:660 mailto:sage [2008/08/05(火) 11:39:51 ]
72.14.235.104/search?q=cache:XjAX73gxeIgJ:msdn.microsoft.com/ja-jp/library/bb342261.aspx+Where,+ToList,+ForEach+3.5+C%23&hl=ja&ct=clnk&cd=1&gl=jp&lr=lang_ja

というかドキュメント嫁、じぶん
基本型のbuiltin関数を暗黙的にオーバーロードしてる
いうのが何か引っかかる・・・Where, ToList, ForEachは
どこに所属してるメソッドなのかという、Linq難しいな…orz

663 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:53:22 ]
for m in Assembly.LoadFrom("Hoge.dll").GetType("Hoge.Tool").GetMethods():
 where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A')):
  for elm in m.ToList():
   Console.WriteLine(elm)

.Where(m => (!m.IsPublic && !m.IsPrivate && m.Name[0] == 'A'))
.ToList().ForEach(Console.WriteLine);

sql みたいな書き方をしてる事例ちょくちょく見かける
あれはシンタックスシュガーみたいなもんかしらん

209.85.175.104/search?q=cache:M90LdfsXoOYJ:msdn.microsoft.com/ja-jp/library/system.reflection.fieldinfo.ispublic(VS.80).aspx+IsPublic+IsPrivate&hl=ja&ct=clnk&cd=3&gl=jp&lr=lang_ja

IsPublicは fieldinfo のメソッドか・・・
C#だとメソッドもフィールドの一種なのかな、C++と違うとか

664 名前:660 mailto:sage [2008/08/05(火) 12:01:18 ]
209.85.175.104/search?q=cache:90Q7i7GDavEJ:msdn.microsoft.com/ja-jp/library/system.reflection.methodbase.isspecialname.aspx+IsPublic+IsPrivate+methodinfo&hl=ja&ct=clnk&cd=2&gl=jp&lr=lang_ja

ドよめ
滝に打たれてチネ…orz

665 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:50:40 ]
>>660
それもLINQ。

from x in list where x > 10 select x; みたいなのはLINQクエリ式。
list.Where(x => x > 10); みたいなのはメソッド形式のLINQ。

>>663
そう、構文糖衣。
from x in listX
from y in listY
select x * y;
みたいな構文が、メソッド形式ではどうやってもスマートな書き方できなかったから導入されたらしい。



666 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:37:27 ]
>>665
その例だと

listX.SelectMany(x => listY, (x y) => x * y)

こうなるけど、例としては不十分な気がする
これくらいにしないと

from x in listX
from y in listY
where x > y
select x * y;

listX.SelectMany(x => listY, (x, y) => new { x, y })
.Where(z => z.x > z.y)
.Select(z => z.x * z.y);

あと、let入るとさらに面倒になるな

667 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:45:10 ]
user32.dllのAnimateWindow()を呼び出しているのですが、
CPU負荷が大きくてガクガクします。
負荷を下げる方法ってありませんか?

668 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:03:44 ]
AddRange()に二次元配列を渡す方法はないですか?

669 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:13:20 ]
>>668
直接は無理。
LINQ 使って軽い変換かければ可能。

例えば、int[ , ] array なら l.AddRange(array..OfType<int>());
int[][] なら l.AddRange(array2.SelectMany(x => x));

670 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 00:57:12 ]
乙です。

671 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 02:23:30 ]
>>666
外部結合になるとクエリ式でももうわけわからん
var r2 =
 from x in "abcdefghijklmn"
 join y in "ABCDEFGHIZ"
 on x equals Char.ToLower(y) into yex
 from y in yex.DefaultIfEmpty('.')
 select new string(new char[] {x, y});


672 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 05:36:57 ]
VS2008EEを使用中です。
C#でDBを使うデスクトップアプリを作る場合、
DBは何を使うのがベストなのでしょうか?

とりあえずSQL compact3.5ってのを弄ってみましたが、
DBファイルが独立して作られてて、なんか妙な気分です。
ビルドしたらアプリに含まれるようになるんでしょうか?

ほかにXMLを使うやり方もあるそうですが、難易度高すぎる気がします。
なにか他にお勧めあったら、教えてくだちい。

673 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 08:23:08 ]
DBをアプリに含めるってのの方が変じゃね?
LINQ使えばXMLもSQL Server Compactも大差ないと思うが。

674 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 08:27:51 ]
>ビルドしたらアプリに含まれるようになるんでしょうか?
そんなん聞いたこともないわ。
Accessのイメージで言ってるのか?


675 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 09:10:50 ]
Firebird使えばできなくもないがXMLで難易度高すぎなら無理だろうな




676 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 09:32:53 ]
>>673,674
別になってるのが普通なんですね(汗
おっしゃるとおり、Accessのようなものをイメージしてましたorz
言われてみれば、Web系でもDBと処理は別になりますよね・・・

>>675
一応、ちょっとだけ弄ってみたんですが、
木構造が複雑になってしまい、これだったら慣れてるRDBのほうが楽かなと。
恥ずかしながらFirebirdは初耳でした。ちょっと調べてみます。

677 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 18:39:17 ]
>676
何がしたいのか分からないけどXmlSerializerあたり調べてみたら?






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

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

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