ふらっとC#,C♯,C#(初心者用) Part64
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/10/12(火) 22:38:49「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっとC#,C♯,C#(初心者用) Part63
http://hibari.2ch.net/test/read.cgi/tech/1285048678/
■関連スレ
C#, C♯, C#相談室 Part62
http://hibari.2ch.net/test/read.cgi/tech/1284775031/
VB.NET質問スレ(Part35)
http://hibari.2ch.net/test/read.cgi/tech/1284423653/
くだすれC++/CLI(初心者用)part2
http://pc12.2ch.net/test/read.cgi/tech/1268613679/
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
コードを貼り付けてRun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます。
直接貼る場合は下記サイトなどを利用してhtmlエンコードした方が
インデントも残って見やすいです
http://kawama.jp/php/encode_html.php
0232デフォルトの名無しさん
2010/10/21(木) 21:07:080233デフォルトの名無しさん
2010/10/21(木) 21:09:07文字を作り出すのなら new String(char, count) も。
参考書より、この手のものはコンストラクタかメソッドか静的メソッドのどれかにあるわけだから
入力補完を眺めるのがいいと思うよ。
0234デフォルトの名無しさん
2010/10/21(木) 21:22:02理想の動きができました
ありがとうございます
0235デフォルトの名無しさん
2010/10/21(木) 21:27:09>>231の目的ではPadRightとPadLeftが正解だろ
そのまんま「文字列が指定した文字数に達していなかったら足りない分だけ指定した文字で埋める」メソッドだ
0236デフォルトの名無しさん
2010/10/22(金) 07:34:120237デフォルトの名無しさん
2010/10/22(金) 07:48:04イベントにたいする処理や非同期呼び出しをLINQ使って簡単に処理出来るようになるよ。
0238デフォルトの名無しさん
2010/10/22(金) 08:15:49フォームアプリのHowToが知りたくて、「"C#" フォームアプリケーション」でググったのですが、
「Hello World!」入門サイトか、逆にやたら難しい研究サイトみたいなのしか出てこないですね?
中間くらいの難易度で実用的なアプリのサンプルと、
そのコードの解説をしてるようなサイトか参考書を教えて欲しいです。お願いします。
0239デフォルトの名無しさん
2010/10/22(金) 08:22:40@ITの.NET Tipsとかはどう?
0240デフォルトの名無しさん
2010/10/22(金) 08:23:572ch 専用ブラウザの作り方
http://cs2ch.blog123.fc2.com/blog-entry-1.html
0241デフォルトの名無しさん
2010/10/22(金) 11:36:48こんな大きなサイトがあったのですね!参考になります。ありがとうございました。
0242デフォルトの名無しさん
2010/10/22(金) 12:25:23入門と@ITの中間くらい。わかりやすい。実用ではない
ttp://ufcpp.net/study/csharp/index.html
0243デフォルトの名無しさん
2010/10/22(金) 14:12:220244デフォルトの名無しさん
2010/10/22(金) 16:16:000245デフォルトの名無しさん
2010/10/22(金) 16:58:350246デフォルトの名無しさん
2010/10/22(金) 17:05:160247デフォルトの名無しさん
2010/10/22(金) 17:06:220248デフォルトの名無しさん
2010/10/22(金) 23:34:570249デフォルトの名無しさん
2010/10/23(土) 00:05:24Form2 frm2 =new Form2();
frm2.Show();
だとボタンを押す事に別のForm2が開いてしまいます。
一つだけ開けるようにするにはどうしたらいいですか。
0250デフォルトの名無しさん
2010/10/23(土) 00:08:00private void button1_Click(object sender, EventArgs e) {
if (frm2 == null) {
frm2 = new Form2();
frm2.FormClosed += (s, e1) => frm2 = null;
frm2.Show();
}
}
0251デフォルトの名無しさん
2010/10/23(土) 00:08:580252デフォルトの名無しさん
2010/10/23(土) 00:10:26これをForm1のどこからでも参照できる位置に置いて
frm2 =new Form2();
この部分をLoadイベントもしくはShowイベントなどで一度だけ呼ばれるようにする
0253デフォルトの名無しさん
2010/10/23(土) 00:34:02有り難うございます。
0254デフォルトの名無しさん
2010/10/23(土) 00:35:04シングルトンパターンの応用でいいでしょ。
Form2のコントスラクタをprivateにして(この場合静的クラスは不可)、
こんなメソッドを作ればOK.
private static Form2 _instance;
public static void ShowInstance()
{
if (_instance == null)
{
_instance = new Form2();
_instance.FormClosed += _instance_Closed;
}
_instance.Show();
}
0255デフォルトの名無しさん
2010/10/23(土) 00:38:460256デフォルトの名無しさん
2010/10/23(土) 00:40:03それでもいいけどボタンを再度おせるような状況も考えないといけないからなあ
0257デフォルトの名無しさん
2010/10/23(土) 00:43:41ボタンを再度押せるような状況考えてやっても
大きなお世話だろうけど、普通はシングルトンだろうな
0258デフォルトの名無しさん
2010/10/23(土) 00:45:580259デフォルトの名無しさん
2010/10/23(土) 00:48:08質問者の条件が漠然としてるし
その漠然とした要件を一応は満たした回答でてるんだし
0260デフォルトの名無しさん
2010/10/23(土) 00:48:08Form2の仕様の都合上二つ以上作れない場合に使うもの
0261デフォルトの名無しさん
2010/10/23(土) 01:49:46行いたいことは、TimeSpan型の値が25分ぴったりになったときにMessageBoxを表示させたいと思っております。
TimeSpan型の値はライブラリから返される値なので、関数を呼ぶと取得ができます。
0262デフォルトの名無しさん
2010/10/23(土) 01:58:360263デフォルトの名無しさん
2010/10/23(土) 02:17:41ここを参考にバイナリへの読み書きを勉強してるのですが、
配列を扱う方法が分かりません。
例えば以下のようなクラスの配列Meiboの中身をバイナリへ順に書き込み、
読み出す時には同じようにMeiboに格納していくには、上記URLの例を
どういう風に変えればいいですか?
//クラス
[Serializable()]
public class Member
{
public string Name;
public int age;
}
//クラスの配列
static public Member[] Meibo = new Member[100];
0264デフォルトの名無しさん
2010/10/23(土) 02:27:55もう少し詳しく書いてくれないかね
もしそのTimespanが実時間と連動しているならSystem.Timers.Timer使えばいい。
そうじゃなくてゲームの中の時間とか、シーク可能な動画の経過時間とかならこんな感じ。
double m = ts.TotalMinutes - 25;
if (0 <= m && m < 1) { // 25分から25分59秒99
// do task
}
定期的にTimespanをチェックする方法を知りたいなら、フォームのデザインビューでTimerを追加してそこのイベントに書けばいい
0265デフォルトの名無しさん
2010/10/23(土) 02:36:27Meibo = (Member[])LoadFromBinaryFile("meibo.bin");
SaveToBinaryFile(Meibo, "meibo.bin");
変えなくてもこれでいいんじゃないか
要素がシリアル化可能ならその配列もバイナリ化できる
0266デフォルトの名無しさん
2010/10/23(土) 03:16:38できました有り難うございます。
0267デフォルトの名無しさん
2010/10/23(土) 08:30:190268デフォルトの名無しさん
2010/10/23(土) 10:50:50まさか幾ら何でもそんな落ちはないだろw
0269デフォルトの名無しさん
2010/10/23(土) 11:18:29DateTimeを使えば簡単にできそうな印象はあるのですがどうもスッキリいけません。
0270デフォルトの名無しさん
2010/10/23(土) 11:30:590271デフォルトの名無しさん
2010/10/23(土) 11:32:250272デフォルトの名無しさん
2010/10/23(土) 11:36:560273デフォルトの名無しさん
2010/10/23(土) 11:42:340274269
2010/10/23(土) 12:29:13お礼 つ焼きそば
0275デフォルトの名無しさん
2010/10/23(土) 12:33:43そこに手をついて尻をこっちに向けろ
0276デフォルトの名無しさん
2010/10/23(土) 13:18:380277デフォルトの名無しさん
2010/10/23(土) 13:21:54;:;:;. ,/ `⌒γ
;:;:; ( /⌒⌒"" \\ ど
;:;: ( / ⌒ ⌒:::::::::ヽ i 明 う
;:;:. ヽi (・ )` ´( ・):::::::::::! る だ
:;:;:;. | (_人__):::::::::::::::| く
;:;:;: \ 'ー´:::::::::::::/ヽ な
;:;:. ノ.:!:.:.:.:`ゞ-<7.:〉.:.:.:i.:.:} ろ っ
从 __ _,,,/.:.:/:.:.:.:.:.:| }-{/i.:/.:.:.:.:|.:/ う た
从从百円}と_」.:/!.:.:.:.:.:.:.!  ̄ リ.:.:.:.:.:り ?
 ̄ ̄  ̄ |.:.:.:.:.:./_ :__ヽ.:.:.:.:\
\/.:.::..:.:.:.:.:.:..:\:.::./
/.:.:.:.:.:.:.「^Y.:.:.:.:.:.:|´
{.:.:.:.:.:.:.:.| ,!.:.:.:.:.:.:|
\.:.:.:.:.:.V.:.:.:.:.:.:.:|
\.:.:.::|.:.:.:.:.:.:.:!
> 'ゝ─‐イ、
0278デフォルトの名無しさん
2010/10/23(土) 13:50:40こんなのもあるんだな
0279デフォルトの名無しさん
2010/10/23(土) 20:36:440280デフォルトの名無しさん
2010/10/23(土) 22:32:30C#
0281デフォルトの名無しさん
2010/10/23(土) 22:33:230282デフォルトの名無しさん
2010/10/23(土) 22:45:260283デフォルトの名無しさん
2010/10/23(土) 22:51:120284デフォルトの名無しさん
2010/10/23(土) 23:35:46いい勉強になった
0285デフォルトの名無しさん
2010/10/23(土) 23:37:55と入力するとstringを返すCUIプログラムがあるとします。
これをVC#のフォームアプリでボタンを押すと実行されてDOS窓みたいなのを表示させず
返値だけ取得したいのですがどうすればいいですか?
0286デフォルトの名無しさん
2010/10/23(土) 23:41:32終わってからファイルを読み込み、ってのが一番楽。
0287デフォルトの名無しさん
2010/10/23(土) 23:43:31ttp://dobon.net/vb/dotnet/process/standardoutput.html
0288280
2010/10/24(日) 00:06:51「何か展示品が欲しいからC#で簡単なゲームを5日で作ってこい」
という課題を無理に出されました
唯一勉強してるCの方も本を見通しただけでまともなプログラムなんて組めません
正直そこらへんの人とプログラミングに対する知識は差が無いです
何か簡単にプログラムを組めるゲームのお勧め等を教えてもらえないでしょうか(モグラたたきなど
何から取り組めばいいのかわかりません
課題を出した方も無理難題を言って叱りたいだけにしか見えなくて八方ふさがりです
0289デフォルトの名無しさん
2010/10/24(日) 00:17:57そこ見たんですけど、
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec");
の行の変え方が良くわかんないんです。
0290デフォルトの名無しさん
2010/10/24(日) 00:26:29Arguments = "--sikosiko"; // 引数
0291デフォルトの名無しさん
2010/10/24(日) 00:40:51じゃんけんでもいいんじゃないの?
グーチョキパーの絵書いて人に選ばせて、COMは自分の手を乱数で選んで、
勝ち負け判定で終わり
余裕があれば、ご褒美とか付ける
0292デフォルトの名無しさん
2010/10/24(日) 00:54:09脱衣とかw
別の意味で展示できなくて、ちょうど良い当て付けになるなw
0293288
2010/10/24(日) 00:58:09じゃんけん、○罰ゲーム、文字を読むゲーム(クイズ等)をあげたら
調子のんなカスとまで言われたので・・・でも知らない言語、短い期間でモグラ叩きとかまでは作れる気がしません;
じゃんけん以上モグラたたき以下のゲームで自分が作れる、となるともう選択肢がなくて参ってます;
0294デフォルトの名無しさん
2010/10/24(日) 00:59:40テトリスとかマインスイーパぐらいなら満足してくれそうだな
0295デフォルトの名無しさん
2010/10/24(日) 01:02:300296293
2010/10/24(日) 01:12:33そういうものなら満足してくれると思います
マインスイーパはデフォでPCについてるので流石に却下されますが・・・
1からC#を勉強してたら時間が無いので、勉強の仕方にも困ってます
>>295
ちょっとしたゲームはVBで作ったことがあるので最初はいける、と思ってたのですが
C#じゃないとダメみたいです、C#を使うことが重要だらしいので
0297デフォルトの名無しさん
2010/10/24(日) 01:17:285日後にそいつ殴れば? 面白いゲーム考えましたとか言いながらさ
0298デフォルトの名無しさん
2010/10/24(日) 01:18:380299デフォルトの名無しさん
2010/10/24(日) 01:19:33http://ufcpp.net/study/csharp/getstarted.html
0300デフォルトの名無しさん
2010/10/24(日) 01:21:42http://cs2ch.blog123.fc2.com/blog-category-3.html
0301デフォルトの名無しさん
2010/10/24(日) 01:30:17すみません、引数の中にunko.txtなどのファイルのパスがあった場合はどう書くんですか?
どのプログラムで試しても引数にファイルパスが入ってると値が返ってこないんです。
0302296
2010/10/24(日) 01:42:28自分の相方が課題を出されたとき時全く文句を言わないで今になって「できねぇ・・・」って言ってるのが正直つらいです
反論してるときに「とりあえずやってない内から文句言うなよ・・・」みたいな感じの白い目を向けていたのになんなのもう
近頃騒がれてるブラックって常にこんな感じでやりとりしてるのかな、と思ったり・・・
>>299
今そこを参照しているのですが、ゲームを作るにあたって一個一個消化してたら
時間が無くなってしまうのでどうすればいいか途方にくれています
>>300
有難うございます
全部見て参考にしたほうがいいのかな、これ・・・
0303デフォルトの名無しさん
2010/10/24(日) 01:48:57自分で作ったと言い張らなければいいんじゃないの?
嘘を言っても後で苦労するだろうしw
参考にしたと言っておけば・・
まあ作った経験がないのなら動くソースをいじって勉強するのが最短だよ
0304デフォルトの名無しさん
2010/10/24(日) 01:58:21>>303
有難うございます
怒られそうですが出来ないよりかはマシなので試してみます
ソースまで載せてるサイトが検索してもなかなか見つからないのですが、
どこか展示されているサイトなど知っていたら教えてくださると幸いです
0306デフォルトの名無しさん
2010/10/24(日) 02:00:21動画はC#じゃないよ
C(C++?)で作ってるし
それをC#で作るとこうなるってだけだから動画は後で参考にすればいいんじゃね?
1時間も見てると長い
ソース公開されてるでしょ
0307299
2010/10/24(日) 02:12:55その動画貼ってあるサイトで公開されてるソースはこれね
http://sourceforge.jp/projects/cs2h/svn/view/Tetris.tar.gz?root=cs2h&view=tar
0308304
2010/10/24(日) 02:19:42有難うございます
参照したいときに見てみます
>>306
ソースダウンロードしました、一応これは著作権フリーなのかな・・・?
実行できないのですが、何か実行する前にする操作などありますでしょうか
0309デフォルトの名無しさん
2010/10/24(日) 02:24:590310308
2010/10/24(日) 02:42:32有難うございます、無事実行できました
既にあるフリーのソースコードをいじって勉強していく形でいく方針にするとします
以降は自分で出来る範囲まで頑張ってみます
普通なら罵倒される駄目質問に長時間にわたって親身になって答えてくれる皆様には感謝し尽くせません
怖いくらい優しくしてもらって本当に感謝してます、有難うございました
0311デフォルトの名無しさん
2010/10/24(日) 04:22:13これをクラス内部で変える方法はあるのでしょうか。
public int X { get; }
public void foo() {
this.??? = 123; // Xを変えたいが記述が分からない
}
---------------------------
自動を使わない方法のみ??
private int _x;
public int X {
get {
return this._x;
}
}
public void foo() {
this._x = 123;
}
0312デフォルトの名無しさん
2010/10/24(日) 04:30:11クラス内部からそのまま_xを触れるでしょ
あくまで外部からどうするかだし
0313デフォルトの名無しさん
2010/10/24(日) 04:32:32自動使わない方法のみか、
public int X { get; private set; }
にするか。
0315デフォルトの名無しさん
2010/10/24(日) 08:58:100316デフォルトの名無しさん
2010/10/24(日) 12:22:19は、4.0ではコンパイル通るようになったのか?
0317デフォルトの名無しさん
2010/10/24(日) 12:25:41というか、仮に通ったとしてどういう動作が期待されるわけ?それは
0318デフォルトの名無しさん
2010/10/24(日) 12:57:29値をセットできないじゃん。何がしたいの?
0319317
2010/10/24(日) 12:58:12提案者じゃないのでわかりません
0320316
2010/10/24(日) 13:57:400321デフォルトの名無しさん
2010/10/24(日) 14:51:540322デフォルトの名無しさん
2010/10/24(日) 15:17:57そういう質問じゃん。
0323デフォルトの名無しさん
2010/10/24(日) 15:24:23public int A {get; private set;}
public int B {get; private set;}
public BaseClass(int a, int b);
}
class DrvClass : BaseClass{
public DrvClass(string c){
int a, b;
// cからaとbを計算
base(a, b);
}
}
例のように派生クラスの引数から値を計算して
既定クラスのコンストラクタを呼び出したいんですが
なにかいい方法はないでしょうか。
0324デフォルトの名無しさん
2010/10/24(日) 15:34:57class Hoge {
public int a, b;
}
public DrvClass(string c) : this(Parse(c)) {
}
private DrvClass(Hoge x) : base(x.a, x.b) {
}
private static Hoge Parse(string x) {
}
}
こんなのとか?
0325デフォルトの名無しさん
2010/10/24(日) 15:45:16なるほど、ありがとうございます
0326デフォルトの名無しさん
2010/10/24(日) 16:27:09へー。そんな書き方出来るのか。
0327デフォルトの名無しさん
2010/10/24(日) 18:08:500328デフォルトの名無しさん
2010/10/24(日) 18:12:230329デフォルトの名無しさん
2010/10/24(日) 18:17:21>>327
「返ってくる時がある」って何?
LINQ の Average は決定論的な動作しかしないはずだけども。
他に何か変な処理してるんじゃないの?
0330デフォルトの名無しさん
2010/10/24(日) 18:17:44ってのは0の場合とそうじゃない場合があるってことか?
普通に考えたら163232以外ありえないが
0331327
2010/10/24(日) 18:26:00int abc = (int) (1192/rate);
rateが予想に反して0になるから下の割り算でエラーになったのですが問題はrateがどうして
0になるのかがわからないのです。int[]の中身を見ると0,326464が入っていました。
int[]が非同期から持ってきている変数なのでタイミング的にデバッグの数字が一致しない
時があるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています