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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/08/20(水) 17:15:27
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

前スレ

ふらっとC#,C♯,C#(初心者用) Part29
http://pc11.2ch.net/test/read.cgi/tech/1216734995/
0002デフォルトの名無しさん2008/08/20(水) 17:19:16
[プログラム板] C#, C♯, C#相談室 Part47
http://pc11.2ch.net/test/read.cgi/tech/1214038282/

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

Live2
http://pc11.2ch.net/test/read.cgi/tech/1203674757/

初心者のためのプログラミング言語ガイド Part11
http://pc11.2ch.net/test/read.cgi/tech/1218282605/
0003デフォルトの名無しさん2008/08/20(水) 17:20:08
参考サイト。まずはここで検索してから。
http://www.google.co.jp/
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0004デフォルトの名無しさん2008/08/21(木) 08:21:56
おっつ
やっぱり立てたのね
0005デフォルトの名無しさん2008/08/21(木) 10:38:34
C#と直接関係ないのですが、マニュアルを書くときにメニューの
展開時の画面をキャプチャーするにはどうすればよいでしょう?
展開時に別のキャプチャー用の画像取り込みソフトを操作すると
展開していたメニューが引っ込んでしまいます。これを取り込むため
には通常はどのような方法で行うのでしょう。よろしくお願いします。
0006デフォルトの名無しさん2008/08/21(木) 10:49:26
キーでトリガにするとか、時間で撮ってくれるソフトとかあるよ。
まあオレはWindows標準の機能(PrintScreenキー)使ってるけど
0007デフォルトの名無しさん2008/08/21(木) 12:29:30
いちもつ
0008デフォルトの名無しさん2008/08/21(木) 12:56:45
普通にAlt + PrintScreenだろ普通は。
ソフト使うにしても>>6の言うようにホットキー設定すればいいし。
つかそんなことも分からんやつがC#で開発なんかできるのか?
C#どころかWindows質問スレレベルだし
0009デフォルトの名無しさん2008/08/21(木) 13:00:57
>>6>>8
>Alt + PrintScreen

わかりました。ありがとうございました!
0010デフォルトの名無しさん2008/08/21(木) 13:39:23
まあAltはメニュー出してるときは無理だけどなw
マルチディスプレイでAlt無しで2画面分丸ごととって切り取る。
001182008/08/21(木) 14:40:41
>>10
あ、ほんとだ盲点だわw失礼。
まあ全画面キャプチャから欲しいところだけ切り取ればいいよね。
0012デフォルトの名無しさん2008/08/21(木) 21:14:53
>>11
そんな面倒なことをしないための方法を聞いているのだろ。
そんなことも分からんやつがC#で開発なんかできるのか?してんのか?
C#どころかWindows質問スレレベルに答えられていない。
0013デフォルトの名無しさん2008/08/21(木) 21:37:34
じゃあキミが答えてやれよ
質問者は満足して帰っちゃっただろうけど
0014デフォルトの名無しさん2008/08/21(木) 21:51:41
面倒だからビデオにでも撮れ
0015デフォルトの名無しさん2008/08/21(木) 22:42:01
ファイルにデータを追記しようと思うのですが、
ファイルの先頭に追記するのと末尾に追記するのではどちらが負荷がかかりますか?
また、新規ファイルに書き込むのと比べてどちらの負荷が大きいでしょうか?
よろしくお願い致します。
0016デフォルトの名無しさん2008/08/21(木) 22:43:44
>>15
先頭には追加できない。
0017デフォルトの名無しさん2008/08/21(木) 23:05:58
先頭に追加しようと思ったら、残りを全部後ろにずらさなきゃならない。
ってことだ。
分かるよな。
0018デフォルトの名無しさん2008/08/22(金) 00:30:29
自分からテスト専門です、って宣言してる派遣テスターって何なの?

将来プログラマとかSEになりたい、とかならわかるけど。
向上心ないよね、頑固だし。
そういう派遣テスターって、仕様書は読めない、
テスト仕様書も作れない、テストプログラムも作れない
やれることは「テキトーにプログラムを触る」ことだけ。

俺は派遣プだけどさ、こういう派遣テスターがいると
派遣全体がバカにされるんだよ。
テスト専門派遣なんて氏んで欲しいよ、まったく。

今日も正社員の人が派遣テスターに仕様書を読んで
テスト仕様書を作ってください、って説教してたよ。
その派遣は頑固に「何故、仕様書が必要なんですか?」って
反論してたから、きっとテスト専門派遣テスターだな。
仕様書も読まず、テスト仕様書も作らず、ただテキトーに
プログラム触るだけで給料もらおうなんて頭おかしいんじゃねーの?

あ〜あ、あの派遣テスターが3ヵ月後に切られるまで、
仕様書も読まねーでテキトーにテストしたバグ票がまわってくんのかよ。
そんな糞なもん、読んで処理する派遣プの身にもなってくれよ。
うわ〜、しかもそいつが切られる3ヵ月以内に中間納品あるじゃねーか!
テスト仕様書もなしにテキトーにテストして納品か。
中間納品後にソッコウクレームでデスマ必至だな。俺の休みも返上かよ。

派遣専門テスターさんよ、少しは向上心持てよ!
頑固な性格直して仕様書読めよ!テスト仕様書作れよ!
0019デフォルトの名無しさん2008/08/22(金) 07:43:23
コピペ君が多いな
0020デフォルトの名無しさん2008/08/22(金) 14:49:01
>>15
ファイルの大きさや
>末尾に追記する
の方法による。下手すりゃ
>新規ファイルに書き込むのと
と同じになる。
0021デフォルトの名無しさん2008/08/22(金) 15:05:59
今あるファイル(■)がディスク上に
◆◆■■■■■◆◆ってあったら、ここに追記したら激しく断片化しない?
それとも、◆◆■■■■■□◆◆の様に常に余裕をみて割り当ててるの?
多少空き領域は断片化するかもしれないが、ファイルは断片化しにくいと思って毎回新しいファイルとして作ってた(その方が楽だし)
◆◆□□□□□◆◆■■■■■■■■
0022デフォルトの名無しさん2008/08/22(金) 15:14:04
結局全部読むならいっしょやん
0023デフォルトの名無しさん2008/08/22(金) 15:25:39
>>21
ただ記録しておくだけのログみたいなものなら別に断片化してもかまわないし、
後から何度も読むにしても断片化した大きなファイルを読むのと、
バラバラに配置された複数のファイルを読むのとでは時間にそれほど差はないと思うよ。

読み出すのに少しでも速度が必要ならば、予めある程度の大きさの領域を確保しておく他ない。
0024デフォルトの名無しさん2008/08/22(金) 15:26:21
>>21
お前さんがうだうだ考える程度のことはファイルシステムの設計者やWin32APIの設計者は考慮済みだと思うよ
0025デフォルトの名無しさん2008/08/22(金) 15:37:45
>>21
     [゚д゚] ・・・・。
     /[_]ヽ
      | |
◆◆□□□□□◆◆■■■■■■■■
0026デフォルトの名無しさん2008/08/22(金) 15:39:18
>>21
どうせ新しく書き出すなら、一旦別の名前で書き出してから
(古いのを削除し)本来の名前に変えるようにしたほうがいい。

こうすると、もし書込み中に死んでしまっても、古いファイルが残っていて安心できる。
0027デフォルトの名無しさん2008/08/22(金) 16:34:02
断片化を気にする男の人って・・・・
0028デフォルトの名無しさん2008/08/22(金) 16:36:48
そんなことより、きっちりかっちりシンメトリーかどうかを気にしろよ
0029デフォルトの名無しさん2008/08/22(金) 17:06:28
普通の男なら気になるだろw
0030デフォルトの名無しさん2008/08/22(金) 17:07:30
>>1
0031デフォルトの名無しさん2008/08/22(金) 19:06:29
ListBoxのオーナードローで、各項目に
UserControlを貼り付けるようなことってできるのでしょうか?
0032デフォルトの名無しさん2008/08/22(金) 19:20:22
>>31
WPFを使えば簡単にできるよ。オススメしたい。

オーナードローで多分できるとは思うけど、クリックイベントの処理とか面倒臭そう。
俺はオーナードロー使ったことないからあくまで想像だけど。
0033デフォルトの名無しさん2008/08/22(金) 19:35:33
知らないなら黙っててください
他の方お願いします
0034デフォルトの名無しさん2008/08/22(金) 19:42:01
>>32
ありが�d
WPFちょっとさわってみます
0035デフォルトの名無しさん2008/08/22(金) 20:37:08
>>33何か面白いのか知らんが
うざいだけだからもうやめろ
0036デフォルトの名無しさん2008/08/22(金) 20:39:32
想像でラクガキするのも同罪と思うな
0037デフォルトの名無しさん2008/08/22(金) 20:43:15
俺様棚上げクンw
0038デフォルトの名無しさん2008/08/22(金) 20:44:36
ほんと、知らなきゃ黙ってろって事、よくあるよね。
どんな神経してるんだろ。初心者スレで不確かな事言ってなんになるの?
0039デフォルトの名無しさん2008/08/22(金) 20:54:20
猫でもわかるC#のホームページにC#フォーム編があるんですが、
これってVS2005の時にかかれたものみたいなんですが、VS2008でも
フォームを作るデフォルトは代わってないですか?これより、VS2008
のフォームを作る勉強したほうがいいですか?
0040デフォルトの名無しさん2008/08/22(金) 21:00:18
>>39
変わってないから安心しんさい
0041392008/08/22(金) 21:06:47
>>40
ありがとうございます。このページは結構親切にのっていて、
本を1冊やると同じくらいいいので、得しました。
多謝です。2000円浮いた〜。
00428362008/08/22(金) 21:51:13
前回の>858
返事がだいぶ遅くなってしまいました。
3行目だけほしいという処理で、ぜんぶを読めといわれたので、なんとかトライしてみました。
が、どうしてもぜんぶを読めずにいます。
ソースは次のとおり。iとsとsrの名前を変えただけです。
ご呈示いただいたところだけだと、読み込みファイル名がなかったりするので、それを足したりしました。
アドバイスよろしくお願いします。

00438362008/08/22(金) 21:53:05
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Text.RegularExpressions;

class ReadWrite{
[STAThread]
public static void Main(string[] args) {
string fileName = args[0]; //引数をファイル名とします。
string[] lines = ReadAllText(fileName); //ReadAllTextは現在のコンテキスト内に存在しないそうです。どう定義したらいいんでしょう? それともこの行は不要?
using(StreamReader readContents = new StreamReader(fileName, System.Text.Encoding.Default));

{
string line = null;
int lineNumber = 0;
do {
line = readContents.ReadLine(); //readContentsは現在のコンテキスト内に存在しないそうです。定義の位置が問題でしょうか?
if(lineNumber == 3) {
Console.WriteLine(line);
break;
}
lineNumber++;
} while (line != null);
}}}
0044デフォルトの名無しさん2008/08/22(金) 21:59:26
ReadAllTextとreadContentsを定義しろよ
0045デフォルトの名無しさん2008/08/22(金) 22:10:18
ワロタ、usingの最後に余計なものが…
0046デフォルトの名無しさん2008/08/22(金) 23:25:52
>>43
1. ReadAllText を Google
2. 前スレ858をあと100回読む
0047デフォルトの名無しさん2008/08/23(土) 00:06:37
デリゲートってオブジェクト志向的には有りなんですか?
なんか積極的に使っていいのか分からんのだけど。
0048デフォルトの名無しさん2008/08/23(土) 00:15:03
オブジェクト指向の暗黒面に囚われてないかい?
0049デフォルトの名無しさん2008/08/23(土) 00:21:46
>>47
オブジェクト指向って何だと思ってるの?
0050デフォルトの名無しさん2008/08/23(土) 00:32:53
とりあえず「有り」か「無し」で。
0051デフォルトの名無しさん2008/08/23(土) 00:35:08
とりあえず、『とりあえず「有り」か「無し」』かを迫るような
単細胞な質問は「なし」だな。
0052デフォルトの名無しさん2008/08/23(土) 00:42:48
必要性があるから存在するにきまってるだろう
0053デフォルトの名無しさん2008/08/23(土) 00:43:09
2択にしても難しい問題だったんだ・・・
0054デフォルトの名無しさん2008/08/23(土) 00:46:53
使わないと実現できない処理がある以上「有り」としか言いようがないでしょ。
「オブジェクト指向だから,これは出来ません」って通らないよね?
0055デフォルトの名無しさん2008/08/23(土) 00:50:29
どうして「無し」と思うのか述べてみろよ。
0056デフォルトの名無しさん2008/08/23(土) 01:08:35
暗黒面ってなんだよw
手続きの方がよっぽどカオスじゃんw
0057デフォルトの名無しさん2008/08/23(土) 01:09:45
>>50
この「無し」ってのは君が理解してないだけ
0058デフォルトの名無しさん2008/08/23(土) 02:26:13
UMLであらわせるれるかどうかと基準ならプロパティやenumだってなしだな。
0059デフォルトの名無しさん2008/08/23(土) 07:51:57
>>47オブジェクト志向的に……

有りだとする。
→オブジェクト指向万歳ってことでどんどん使え。

無しだとする。
→C#はオブジェクト指向だけじゃないマルチパラダイム言語だから、
オブジェクト指向に捕らわれずどんどん使え。
0060デフォルトの名無しさん2008/08/23(土) 08:03:11
プロパティの中身はメソッドの自動生成機能だし、
enumはクラスの自動生成機能でしょ?
delegateもメソッド1つのインターフェース作ったりするのと
同じじゃない?
ただの便利機能じゃないのか。
0061デフォルトの名無しさん2008/08/23(土) 08:46:36
 delegateは関数ポインタに近い機能と思えばよい、と何処かに書いてあった。
→ ということは、過去の遺物を引きずっているのではないか?
→ 俺の知ってる最新鋭のオブジェクト指向言語に似合わない!

ごめん、思考のトレースに失敗した。色々と無理があった。ごめん。
0062デフォルトの名無しさん2008/08/23(土) 09:11:11
結局、全ては機械語の構文糖衣なんだよ。
0063デフォルトの名無しさん2008/08/23(土) 09:17:22
オブジェクト指向の既存の機能を使って実現したものでも、
それがオブジェクト指向であるかどうかとは無関係。
例えシンタックスシュガーであっても概念的に違うものになりえる。
0064デフォルトの名無しさん2008/08/23(土) 09:19:54
>>62
それはいいすぎ
機能を実現するかどうかか、ではなくて、
どれだけ生産性を向上するかどうかがオブジェクト指向を使う意義なんだから
0065デフォルトの名無しさん2008/08/23(土) 10:22:04
つまり、delegateはオブジェクト指向の概念と合わない?
0066デフォルトの名無しさん2008/08/23(土) 10:24:54
なんでそうなるんぞ
0067デフォルトの名無しさん2008/08/23(土) 10:29:31
delegateは、関数ポインタをクラスでラップしたものだね。
0068デフォルトの名無しさん2008/08/23(土) 10:51:16
女の子はデリケートだぞっ!
0069デフォルトの名無しさん2008/08/23(土) 11:07:20
関数ポインタというより委譲モデルを簡略化したと考えれば
オブジェクト指向から外れてないと思うけどね。
javaのlistener/adapter型の委譲モデルも意地悪を言えば、
内部クラスや匿名クラスはオブジェクト指向かどうか疑わしいよ。
0070デフォルトの名無しさん2008/08/23(土) 11:17:50
そうそう、関数ポインタって説明はあまり良い方向ではないと思う。
「処理」をカプセル化してオブジェクトとして扱えるようにしたもの
という方向の方が、今時の思想にマッチしてる。
もちろん単純に関数ポインタイメージで使うことはできるが。
0071デフォルトの名無しさん2008/08/23(土) 11:22:59
デリゲートに好きして
0072デフォルトの名無しさん2008/08/23(土) 11:25:16
デリゲートのスコープの外の変数もちゃんと見れて、そのまんまで、あちこち受け渡しできるんだもんな。
すげーよ。
0073デフォルトの名無しさん2008/08/23(土) 11:26:50
>>72
どういうこと?
詳しく
0074デフォルトの名無しさん2008/08/23(土) 11:32:29
クロージャということ、これはさすがにオブジェクト指向というより関数型。
0075デフォルトの名無しさん2008/08/23(土) 11:36:39
レキシカルクロージャとかいうやつ?
よくしらんけど
0076デフォルトの名無しさん2008/08/23(土) 12:00:31
クロージャってオブジェクト的とも見ることができる
詳しくはSICP
0077デフォルトの名無しさん2008/08/23(土) 14:48:31
オブジェクト指向とは・・・ただの言葉じゃ
0078デフォルトの名無しさん2008/08/23(土) 15:23:01
オブジェクト指向=良いもの
オブジェクト指向との合致度が高い言語=いい言語

そんな盲目的な思い込みが罠なんだ
0079デフォルトの名無しさん2008/08/23(土) 16:19:42
関数ポインタに毛が生えて好き物ってのでいいよ。
0080デフォルトの名無しさん2008/08/25(月) 10:33:34
オブジェクト指向もパフォーマンス悪いし、匙加減が重要
0081デフォルトの名無しさん2008/08/25(月) 11:34:37
C#でMDI フォームアプリを作成しています。

子フォームを最大化すると親フォームのメインメニューにアイコンが
表示されるのですが、これを非表示にするにはどうすればよろしいでしょうか?
0082デフォルトの名無しさん2008/08/27(水) 11:29:13
Dictionary<key,value>で、valueを指定してkeyを探すことはできますか?
0083デフォルトの名無しさん2008/08/27(水) 11:43:02
.Firstとか.Selectとか
あとはforeach
0084デフォルトの名無しさん2008/08/27(水) 11:45:08
SelectじゃなくてWhereだった…
0085デフォルトの名無しさん2008/08/27(水) 12:00:28
>>83
ありがとうございます。
FirstやSelectは初めて知りました。
しかし、なんでDictionaryにはFindやFindAllが無いんだろう
0086デフォルトの名無しさん2008/08/27(水) 12:09:43
Key使わない検索じゃDictionaryの旨みが無いから?
0087デフォルトの名無しさん2008/08/27(水) 21:56:40
まあ、検索スピード欲しけりゃ逆引きの方のDictionaryも用意すべきだし。
0088デフォルトの名無しさん2008/08/27(水) 22:59:26
class 逆引きつきDictionary<TKey, TValue> : IDictionary<TKey, TValue>{
private Dictionary<TKey, TValue> 順引き辞書;
private Dictionary<TValue, TKey> 逆引き辞書;

void Add(TKey key, TValue value){
順引き辞書.Add(key, value);
逆引き辞書.Add(value, key);
}
bool Remove(TKey key){
TValue v = 順引き辞書[key];
逆引き辞書.Remove(v);
return 順引き辞書.Remove(key);
}
TKey 逆引き(TValue value){
return 逆引き辞書[value];
}
…
}

これはねーか
0089デフォルトの名無しさん2008/08/27(水) 23:05:56
valueが重複したらアウトじゃねえかw
0090デフォルトの名無しさん2008/08/27(水) 23:50:12
なるへそじゃあ
void Add(TKey key, TValue value){
if(逆引き辞書.ContainsKey(value))
throw new valueが重複してますよExeption();
順引き辞書.Add(key, value);
逆引き辞書.Add(value, key);
}
っていう風になるのか?
0091デフォルトの名無しさん2008/08/28(木) 08:06:34
>>90
それか、逆引きの側は Dictionary<Value, HashSet<Key>>。
0092デフォルトの名無しさん2008/08/28(木) 13:34:59
フォーム内にWebBrowserコントロールを追加しているのだが、
その中の任意のポイントにクリックを発生させるにはどうしたらよいのだろう?

Cursor.Position = webBrowser1.PointToScreen(new Point(webBrowser1.Location.X + 50, webBrowser1.Location.Y + 50));
のような感じでマウスカーソルを希望するところに持っていくことはできたのだが、
そこにクリックを発生させる方法がわからない。

もしかしたらSendMessageでLEFTDOWN->LEFTUPでクリックを送ればいいのかと思ったけど、
今度はwebBrowser1のいわゆるhWndを取得する方法がわからない。

誰かお助け下さい。
0093デフォルトの名無しさん2008/08/28(木) 13:38:18
SendInputが一番楽じゃね
0094デフォルトの名無しさん2008/08/28(木) 13:52:00
Flashなどの組み込みオブジェクトではなく単にリンクやボタンなどのHTMLエレメントなどを
操作したいというのであればHTMLDOMつかってInvokeMember(マネージDOMの場合)で
Clickメソッドを実行したほうが楽と思われるが。
まあ、わざわざマウスクリックをしたいといってるから組み込みオブジェクトの可能性が高いなw
SendMessageではなく、mouse_eventというAPIを使ってみれば?こっちだとhWnd不要だから
0095デフォルトの名無しさん2008/08/28(木) 14:05:03
>>93
なるほど、そんな関数があったのね。
http://homepage3.nifty.com/midori_no_bike/CS/index.html?userIO.268
ここを見て、うまくいきました。
ありがとうございます。
0096デフォルトの名無しさん2008/08/28(木) 14:20:30
private setの自動プロパティにreadonlyが付けられたらいいのに
コンストラクタで初期化して以降変更しないものでも
自動プロパティが便利だからついreadonlyフィールド使わなくなっちゃうんだよね
独り言
0097デフォルトの名無しさん2008/08/28(木) 14:22:28
aho
0098デフォルトの名無しさん2008/08/28(木) 16:35:53
{0}をコンソールに表示する方法おしえてください
0099デフォルトの名無しさん2008/08/28(木) 16:40:24
Console.Write("{0}");
0100デフォルトの名無しさん2008/08/28(木) 16:43:46
エスケープの方法はヘルプの「複合書式設定」参照
0101デフォルトの名無しさん2008/08/28(木) 16:54:47
public struct MyStruct
{
public MyStruct(long value)
{
this.TotalValue = value;
}
[FieldOffset(0)]
public long Total;
[FieldOffset(0)]
public short Value1;
[FieldOffset(2)]
public short Value2;
[FieldOffset(4)]
public short Value3;
[FieldOffset(6)]
public short Value4;
}

//コンパイルエラー
フィールド 'Value1~4' は、コントロールが呼び出し元に返される前に割り当てられている必要があります。




ちゃんと割り当てられてるじゃんね。意外とコンパイラもお馬鹿さんだな。
まーどーでもいいことなんだけど、過疎ってるからネタを投下してみた
■ このスレッドは過去ログ倉庫に格納されています