[表示 : 全て 最新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くらい

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あたり調べてみたら?

678 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:15:20 ]
「DBファイルが独立して〜」の意味が把握できないけど、アプリにDBを組み込ん
じゃいたいってことなら SQLite とかの組み込みDBって手があるよね。




679 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:34:28 ]
>678
俺も>672を読んでそう思ったので組み込みDBにできるFirebirdの名前出した。
けど>676読んだら「RDBが使いたい」ってわけじゃ無い感じがしたんでXmlSerializer言ってみた。


680 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:23:58 ]
コントロールのバインドはDBじゃなくてたんなる
int[]とかからも情報を取り込めるですか?

681 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:54:29 ]
foreach (var msg in FizzBuzz(100)) {
  Console.WriteLine(msg);
}
ということができるように、
public static IEnumerable<bool> Fizz() {
  while (true) {
    yield return false;
    yield return false;
    yield return true;
  }
}
public static IEnumerable<bool> Buzz() {
  while (true) {
    yield return false;
    yield return false;
    yield return false;
    yield return false;
    yield return true;
  }
}

682 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:56:28 ]
public static IEnumerable<string> FizzBuzz(int max) {
  var fizz = Fizz();
  var buzz = Buzz();
  foreach (var i in Enumerable.Range(1, max)) {
    bool isFizz = fizz.First();
    bool isBuzz = buzz.First();
    fizz = fizz.Skip(1);
    buzz = buzz.Skip(1);
    if (isFizz && isBuzz) {
      yield return "FizzBuzz";
    } else if (isFizz && !isBuzz) {
      yield return "Fizz";
    } else if (!isFizz && isBuzz) {
      yield return "Buzz";
    } else {
      yield return i.ToString();
    }
  }
}
こんな感じのメソッドを作ってみたのですが、複数のIEnumerableを並行して進めながら処理するforeachみたいなのってないのでしょうか?
自前でFizzとBuzzを1つずつ進めてるのがいまいちスマートじゃない気がして、複数のIEnumerableを並行して進める手軽な方法ってないでしょうか?
foreach (var i, isFizz, isBuzz in Enumerable.Range(1, max), Fizz(), Buzz()) {
とかみたいな雰囲気でまとめて書く方法ってないですか?

683 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 21:12:29 ]
>>682
ZipWithみたいなのが欲しいということかな?
だったら、デフォルトでは存在しない。自作している人ならちらほら居る。

684 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 21:13:24 ]
うん?
EXEとDBファイルが同じファイルになるのを期待してると思ったんだが。
Accessのイメージって言ってるし。
SQLiteもFirebirdもんなこたないんじゃないの?

SQL compact3.5だっておんなじようなもんでそ?


685 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:10:49 ]
サーセン676です。
684さんのおっしゃる「EXEとDBファイルが同じファイル」を期待してました。
DBもMS謹製しか使えないかと思ってましたが、
他のも結構使えるようなので、改めて調べてみます。

686 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:36:50 ]
C#プログラムでで正規表現を使っているのですが、
正規表現中にPerlのように
ttp://8-p.info/perl-interpolation/

string hoge = "hogehoge";
Regex r = new Regex(@".*hoge"); //hogehogeが展開される
のようにして変数を展開することはできるでしょうか?

687 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:46:55 ]
普通に

".*" + hoge

では駄目な理由は何?

688 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:46:56 ]
変数を展開って何?



689 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:48:21 ]
ああ、そういうことか。
string.Format かなにかで文字列化してから Regex に食わせればOK。

文字列中に ".*$hoge" みたいに変数入れたければ PowerShell 使えばいいと思う。

690 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 01:35:37 ]
685です。ありがとうございます。
変数を展開したい理由は何かと問われれば
変数hogeの文字列も外部の関数から取得してくるからです。

691 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 02:56:21 ]
>>685?ん?
色々カオスってるぞ。
>>686のリンクも行けないぞ。

692 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 03:10:51 ]
AllowsTransparencyをtrueにするとウインドウフレームが表示できなくなってしまうのですが、
System.Windows.Windowで下のSS最前面のウインドウのようにOpacityを使用するにはどうしたらいいのでしょうか?

最前面のウインドウはSystem.Windows.Formsです。
ttp://www.imgup.org/iup662583.png

693 名前:デフォルトの名無しさん [2008/08/07(木) 10:52:52 ]
質問です。
環境:C#2.0です。
あるファイルパスがあるとして、
同じディレクトリに別のファイルを作りたいとき、
どのようにファイルパスを作ればよいでしょうか。
(パスそのものを作らなくても書き込みできればよいので
FileInfoとかでもよいのですが)

string path1 = @"C:\xx\yy\aa.txt";
FileInfo file1 = new FileInfo(path1);
string path2 = file1.FullName.Replace(file1.Name, "bb.txt");

なんてもの考えましたが完全じゃないですし。
どうやるのが真っ当なやり方でしょうか。
いろいろ調べてみましたがわかりませんでした。
よろしくお願いします。

// javaで言うところの new File(directoryName, filename) なんてのが
// あればと思ったんですけど少なくともFileInfoにはなかったので

694 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 10:59:02 ]
Path.GetDirectoryNameとかPath.Combineとか

695 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 11:33:51 ]
ありがとうございます。調べてみます。

696 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:20:06 ]
objectを引数に取る関数とかobjectのプロパティとかってクラスライブラリを見ただけじゃ
何をセットすればいいのか分からない場合が多いんですがどうやって調べればいいんでしょうか?
ググって事例を探してるんですが、事例が無いと完全にお手上げです。


697 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:23:07 ]
千里の道も一歩から始まることを信じよう
それ、わんつーわんつー

698 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:26:37 ]
確かに.netはobject型を引数に取るとか多いな。JavaでObject型を引数に取るのはあんまり見ないのに。
この辺って何か思想の違いみたいなのがあるん?



699 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:32:04 ]
>>698
Javaはプリミティブ型がObjectを継承してないからじゃないの

700 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:36:16 ]
いざとなったらReflectorで中追っかけてみる

701 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:37:41 ]
>>698
そんなに多いか?
非ジェネリックなコレクション以外あまり思いつかないが…

702 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:40:11 ]
非ジェネリックコレクションとIComaprableあたりは当然として、
WriteLineやString.Format系、Thread関係のデリゲート、
EventHandlerのsender、ほかなんだっけ。

703 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:43:01 ]
ICloneable.Cloneがそう。共変性がないからobjectを返さないわけには行かない。

704 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:45:26 ]
データソース関係とかobjectに何渡すのかわかりにくくないですか?
標準じゃないけど、nplotってライブラリも何を渡すのか分からなくてちょっと困った。

705 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:47:03 ]
JavaとC#とでそういう差が出そうなGenerics関連の違いって思い浮かばないけどな。

706 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:51:09 ]
データバインディングはそうですね。あれはリフレクション使いまくってるから。

707 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:15:33 ]
C#とCだったらC#のほうが入門には適しているでしょうか?

708 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:18:56 ]
うん



709 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:20:44 ]
>>708
ありがとうございます。

それと、勉強するための本を買おうと思っているのですが
有名な物・お勧めの物はあるでしょうか?

710 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:56:16 ]
>>709
ネットで十分

711 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 00:58:55 ]
>>709
マジレスすると
ufcpp.net/study/csharp/index.html
がおすすめ

712 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 01:02:11 ]
>>711
ああ、それは俺もお勧め。


713 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:15:19 ]
>>711
読ませていただきます。
ちなみにVC#というソフトでみなさんはプログラムを書かれているんですか?

714 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 02:16:28 ]
うん

715 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:05:21 ]
むしろテキストエディタとWindowsSDKでやってる人がいたら尊敬する

716 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:14:34 ]
単なるバカだから尊敬できないな

717 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:16:32 ]
.Netが出始めてたころはそれでやってた人もいたようだがな
無料版のIDEも無かったし

718 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 03:21:40 ]
きちんと楽出来る環境が簡単に整えられるのに
わざわざ意味が無い苦労をする人がいたらそれは馬鹿だけど

そう言う環境が簡単には揃わない時代なら仕方ないじゃない



719 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:17:43 ]
今のVC#はテキストエディタとしても異常に快適だからな

720 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 09:56:00 ]
プライベートで他のクラスからアクセスする必要のないフィールドって内部クラス化した方が良い?
外部クラス?それとももっとスマートな方法ってある?

721 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:06:09 ]
>>720
そのままプライベートのフィールドで持ってたらあかんの?

722 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:13:20 ]
フィールド==インスタンスの話が何故かクラスの話になるから意味が分からなくなる

723 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:44:48 ]
>>721
それじゃインスタンス1つ分にしかならなくね?

724 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:51:40 ]
行数多くなるとVisualStudioのロードが遅くなるから分けようかと思ったんだけど、
実行時に無駄にオーバーヘッド生むよね、本末転倒だったね・・・

725 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 10:59:51 ]
partialだかそんなのなかったっけ?

726 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:59:03 ]
VSに負担掛けるほどたくさんの行にフィールドが宣言されてるの?
ロードの時間とか細かいパフォーマンス気にする以前の問題だろそれ
さすがに分けるべき

727 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 12:07:16 ]
時代はパーシャル!

728 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 18:59:02 ]
トラックで全国回ってた人だねw



729 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 22:45:56 ]
>724
JITコンパイラの最適化を少しくらい頼ってみたら?
時々例外が起きたときのスタックトレースが妙に抜けてることがあって
インライン展開されてる様子がわかるとちょっと嬉しくなるよ。

730 名前:デフォルトの名無しさん [2008/08/09(土) 18:42:15 ]
簡単なエディタを作っているんですが、
RichTextBoxを使ってて、描画領域を少し右にずらして、その空いた領域に
行番号を描画しています。Graphics.DrawStringです。
当然スクロールされたら行番号を変えなくちゃいけないですが、このとき
再描画する前に前回描画した行番号を消すには、
どんな方法が一番最適なのでしょうか。


731 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 18:56:44 ]
背景色で塗りつぶす

732 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:22:56 ]
趣味でやるぶんにはExpress Editionで十分ですか?


733 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:25:03 ]
趣味の内容によるかな。いわゆるベータ版マニアだとインストールできないアドインが
多いから十分じゃないかもしれない。

734 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:25:51 ]
>>732
十分。

735 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:27:40 ]
パッケージフェチとしてはやっぱり製品版じゃないと

736 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:32:03 ]
ドMな俺はSDKとメモ帳が最高。

737 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:35:41 ]
俺なんか仕事で評価版つかってるから大丈夫

738 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:36:52 ]
>>733
何か使えない機能があるということですか

>>734
そうですか

>>736
頑張ってください



739 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:38:12 ]
>>737
不具合はないですか?

740 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 19:40:25 ]
silverlight2やSQLServer2008用のアドインはSTD版以上だったかな。

741 名前:デフォルトの名無しさん [2008/08/09(土) 20:43:02 ]
TextBox.Text = str;
とやっているのですが、strが大きいと処理時間遅くなるものなのですか?

str.Lengthが4320162だったのですが、10secくらいかかります。
中身のイメージではポインタのコピーとかではなく、実データを
コピーしているから遅いのでしょうか?

これを早くする方法はないのでしょうか?


742 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 20:44:08 ]
TextBox使うのやめて、オーナードローにする

743 名前:デフォルトの名無しさん [2008/08/09(土) 21:18:00 ]
文字列代入の時だけ別スレッドで動かせばいいんですかね?

744 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:22:01 ]
コントロールにはそれを所有しているスレッドからしかアクセスできん

745 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:26:41 ]
>>742
の言ってる事は、
遅いのは文字列のコピーじゃなくて、その文字列の描画に時間が掛かってるんだよ

という事

746 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:33:15 ]
4320162ってヘタしたらXPのソースコードよりデカい気がするんだけど
そんなものTextBoxに表示してどうしろとw

ちなみに、RichTextBoxで代替したらあんがいあっさり解決しない?

747 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:39:23 ]
> XPのソースコードよりデカい
またまたご冗談を

748 名前:デフォルトの名無しさん [2008/08/10(日) 00:08:05 ]
>746
RichTextBoxだと7秒くらいでTextBoxで17秒くらいかかります。
バイナリをヘキサで表示してるんですが、大きいものだとこの7秒とかの間
かたまってしまって・・・

>745
TextBox.Text = str;
の前と後にStopWatchクラスで処理時間を出してるんですが、
この代入には描画処理も含まれているということでしょうか?
RichTextBoxはコントロールで表示されているところの描画のみ
してくれるわけではないのでしょうか?

>744
コントロールに別スレッドからでもアクセスする方法ってありません
でしたっけ?Invokeとか?

RichTextBoxには表示したいところだけバイナリを情報を代入してけば
いいんですかね?スクロールするたびに出したり消したりするとか?



749 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:11:16 ]
>>748
InvokeはUIスレッドが今やってる仕事を中断させて別の仕事をやらせる関数。


そんなでかいデータ扱うなら横着しないでユーザコントロール書けばいいだろ。

750 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:47:50 ]
>>749
しつこいね君も。
簡単に言うけどかなり面倒だしそれなりに難しいと思うよ。
表示することだけ考えてない?

751 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 00:56:37 ]
>>750
それならもう勝手にしろよw

ヘキサエディタでできあいのコモンコントロール使ってるのあったら教えてね

752 名前:デフォルトの名無しさん [2008/08/10(日) 01:03:48 ]
すいません横着させてくださいっす。新しくユーザーコントロールはきついっす。
RichTextBoxがそういう仕様ならやはりちょびちょび表示ですかねぇ。。。

753 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:11:16 ]
仮想モードでListViewでもつかえば

754 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:30:38 ]
プログラム板ってさ、低脳ばっかだよね。
OpenGLスレくらいだなマシなのは。

755 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:31:29 ]
OpenGLスレ見てみたがアホばっかりなんだが…

756 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 01:50:58 ]
>>755
どんなスレ見てるの?

757 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 06:43:35 ]
>>748
TextBox.AppendText()は使ってみた?
InvokeRequiredとInvoke, BeginInvokeはUIスレッドにマーシャリングしてくれるメソッド

758 名前:デフォルトの名無しさん [2008/08/10(日) 07:23:19 ]
>757
TextBox.AppendText(str)も同じくらい時間かかりました。

>753
>仮想モードでListView
kwsk



759 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 08:24:17 ]
zip内のファイルを実行したい(wav鳴らすとか)のですが、そのためには一時フォルダ等に
ファイルを展開しなければならないのでしょうか?
zip内に格納したままあれこれやるってのは不可能なのでしょうか?

760 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 08:28:07 ]
うん

761 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 10:40:14 ]
SharpZipLibでメモリに展開し、Win32APIのwaveOutWriteやDirectSoundに流せばできるんじゃね?

762 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 10:41:55 ]
Streamに展開すればいいんじゃね?

763 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 13:56:58 ]
質問です

DBからデータを取得し、その構造体を返すクラスを作成しています。
私個人としては、datasetの形でかえしたいと思っています。

しかし、速度の問題から、
listを返すようになっています。


datasetで値のやりとりをするのと、<list>でやりとりをするので
そこまで速度やパフォーマンス、メモリの負担などはかわるのでしょうか?

ただのgetsetのプロパティのついたクラスのarraylistを、データとして使うほうが
早いのでしょうか?
僕としては、ここは.NETらしくdatasetを使いたいのですが。

764 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:03:31 ]
とりあえず測ってみればいいんじゃないかな

765 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:06:39 ]
構造体返すんだったらデータセットよりも素直にコレクションで返してくれた方が
使う側としては便利だと思うけど

766 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:13:54 ]
>>758
kwskじゃなくてまずググれよ

767 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:14:57 ]
.NETの構造体の意味を誤解している可能性大

768 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 15:14:59 ]
代入では無くて文字列の描画に時間がかかってるなら、
ユーザードロウしない限り改善不可能じゃないか?



769 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 17:51:36 ]
>>765
そうでしょうか。

たとえば、DataSet(型付Datasetという意味です)でデータを持つか
構造体でデータを持つか
そのメリットデメリットってそもそもなんなんでしょうか

datasetだと、複数テーブルをセットして、
リレーション張ったり、
うけとった側で、フィルターかけたり、nullチェック等のメソッドが用意されていたり
デザイナでデザインできたりするところだと思うのですが

構造体にすると、なんか.NET的な組み方じゃなくなってるような気もしたりしなかったり

僕が間違っていますか。

770 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:05:43 ]
時と場合による

771 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:25:37 ]
とりあえず「構造体」というものについて勘違いしてるのはよくわかった
クラスじゃなくてほんとに構造体で返すようなデータならデータセットで返すなんてありえない

772 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 21:53:50 ]
構造体って値で返すのか

773 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 22:11:58 ]
>>771
すいません、
えっとarrayistを返すか、datasetを返すかということでした。すいません。

774 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 01:12:06 ]
作り手はdatasetのほうがいいだろうさ

使う側はどういう用途なの?

それがわからんと良いとも悪いともいえん

775 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:33:44 ]
MSDNライブラリには

SpinWait のコードの実行は、
複数のプロセッサが搭載されているコンピュータで発生する可能性のある問題を回避するように設計されています。
たとえば、Hyper-Threading技術を使用した複数の Intelプロセッサが搭載されているコンピュータで、
SpinWait は、特定の状況で、利用できるプロセッサ リソースがなくなることを回避します。

とあるんですが、マルチコアCPUではThread.SleepよりThread.SipnWaitを使った方が良いのでしょうか?

776 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:42:36 ]
ケースバイケース

777 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 15:32:52 ]
>>775
ていうかその説明は Sleep 関係ない。
Sleep と比較してどうこうじゃなくこのメソッドの実装は HT やマルチコア
みたいな環境でも問題起こりませんよっつー意味

なんでそんな注意書きがあるのかはスピンウェイト、スピンロック
あたりでググってまずそのメソッドが何するのか分かれ。
ついでに Sleep との違いも


778 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:12:16 ]
マルチコアだけでなくハイパースレッディング環境でも
一応うまく動くようになってるよってことじゃないの?




779 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:16:00 ]
マルチコアやハイパースレッディングみたいな環境でも問題起こらないって…
普通マルチコアやハイパースレッディング環境でしか使わないだろ

でハイパースレッディングの場合も一応うまく動くようになってるよってことだろ?
実装によっちゃ無意味にCPU目一杯ぶん回すだけで意味ない可能性もあるから。


780 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:19:36 ]
コードを見ようと思ったがネイティブに飛んでてわからなかった。
予想できることは一定時間ごとにスレッドを譲る仕掛けか、
一定時間でSleepに変更するかといったところだろう。
1CPUの場合はすぐさまスイッチしないと意味が無いし、
2CPU以上ならある程度スピンさせてても大丈夫だろう。
HTの場合はその中間くらいで手打ちしてるんじゃなかろうか。

781 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 17:44:20 ]
スピンはスレッド中断には移行しない。
だから自分でバックオフを持たなきゃならない。
まあそもそも長時間かかる可能性がないとこだけにしとくのが無難だけど。

ついでに大抵シングルコア環境では使わない。

HTの場合は処理なし命令?でスピンして、有効な処理ではないことが
CPUに分かるように実装されてるはず。


782 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 18:42:10 ]
いやシングルコアでは使わないって言うか使うよ。高精度な
というかスイッチしない待ちのとき使うものでコア数関係ない
あえて言えば Win 上で動くからか

ちなみに HT の場合の話だがシェアするからビジーさせると
それが埋め尽くしちゃってパフォーマンスが極端に低下する。
だから PAUSE 命令が追加されててスピンにそれを使う必要が
あるんだがそれ使ってますよみたいな意

783 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:38:13 ]
シングルコアでスイッチしない待ちをやること自体が少ないんじゃないの?


784 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 19:40:27 ]
あ、ここでのシングルコアはHTは含んでない。

785 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:13:56 ]
>>783
内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
アプリレベルだと例えば単純にスイッチは精度が悪い(Sleep は「最低」
指定時間待つ API)ので timeBeginPeriod(or MMCSS)でスケジューラ
いじって Sleep とスピンウェイトのあわせ技がいい。
機会や直で使うジャンルが少ないのは同意。コア周り、メディア、ゲーム
系しか知らん。

というか一定時間(クロック)待つようなメソッドの使い方(ぶっちゃけタイマ
みたいなもんだ)がマルチコアしか使わないになんでなるんだよという話。
ぜんぜん別やん。
もしかしてマルチコアじゃなくマルチスレッドっていう話か?

…それはそれとして思い出したんだが iterations を現実時間から計算する
方法知っている人いたりしない?

786 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:55:36 ]
いや、一般にメディア、ゲーム系なんていう特殊な用途以外じゃ
まず使う機会がないって感覚だった。
Winで一定時間(クロック)待つような使い方自体が特殊用途なイメージだったわ。

ところでMonitorやらってシングル環境でもSpinWaitしとんのかね??


787 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:15:43 ]
>>786
モニタの場合は基本的に他のスレッドからの開放待ちだから1CPUではスレッドを譲らないと意味が無い。
マルチCPUの場合は最初はスピンで待って、一定時間越えたらSleep系のWaitに変える。
1CPUでスピンをやるとしたら、微妙なタイミングのIO制御や
他のディバイスからの割り込み待ちといったところで普通はディバイスドライバの仕事。
ゲームとかビデオとかそういうのが絡まない限り1CPUでビジーループはありえない。


788 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:28:21 ]
だよねってことが聞きたかった。
単にシングル環境での
>内部的でいいんなら Moniter やらの同期機構が内部で使ってる。
について疑問だっただけ。




789 名前:デフォルトの名無しさん [2008/08/12(火) 14:28:25 ]
C#のおもしろい、本・ホームページ教えてけれ。

今、GUIをソースコードからうってcscでコンパイルしてるんだけど、おもしろい。

なんでもいいから、教えてけれ。

790 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:19:44 ]
ちょっとGUIでアプリ(簡単な物)を作ろうと思ったのですが
C+APIはもう嫌になったので(殴
新たに何か言語を勉強すべくC#に目をつけたのですが、

・GUIアプリ製作のためにC#を学ぶ
この考えはまずいでしょうか?(もしくは他にもっと良いものがある?)
(プログラミングのスキルはCをそこそこ,JAVAは超初心者 です。)

791 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:25:51 ]
いいと思うよ

792 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 15:30:00 ]
>>789
猫でもわかるは知ってるよね?
ttp://www.kumei.ne.jp/

793 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:07:25 ]
>>790
全然良い。
逆に言うと画像処理とか線形代数計算ならわざわざC#を選ぶ必要性がないしね。
イベントと継承が分かってくれば単純なGUIアプリならすぐ作れるようになるよ。
頑張れ。

794 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:24:17 ]
JavaだろうがC#だろうがマルチスレッドになってからが本番だと思う

795 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 16:44:19 ]
>>789
Google 先生の評価に従ってみるのもいいと思う。

796 名前:789 mailto:sage [2008/08/12(火) 18:44:30 ]
>>792
猫はC#編もあるんだ。昔、WinAPIのときちょっと参考にしていたよ。
やってみるよ。さんくす!

>>795
Google先生でググってみます。色々あってどれがいいか見定めなきゃいかんけど、
がんばるよ。ありがとう。

797 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 20:56:08 ]
MicrosoftPressのプログラミング.NET Frameworkが良かった
デリゲートやガベージコレクション、非同期処理などについてとても詳しい解説があるよ

798 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 09:50:20 ]
DataGridViewを利用した自作カレンダーを作ったんだが、
これを複数のフォームで使いたいのね。
そういう時、クラスライブラリを作るのか、プロジェクトにクラス追加するのか、
どっちがいいの?
てか、プロジェクトに追加するクラスって、どういう時に使うの?








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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