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


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

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



1 名前:デフォルトの名無しさん [2016/06/15(水) 11:34:28.60 ID:9eV3efFp.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1460040653/

■関連スレ
C#, C♯, C#相談室 Part90 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1455160063/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/

357 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 09:46:22.83 ID:9OeVC8+N.net]
>>348
ちょっと分からないこと聞いていいですか?
LINQのArrayListで要素を追加しますよね。

ArrayList list = new ArrayList();

list.Add(123);
list.Add("mojiretsu");
list.Add("mojiretsu");

foreach(string s in list)
{

count++;

}

ランタイムエラーがでます。何故でしょうか?

358 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 09:48:17.74 ID:9OeVC8+N.net]
文字列の数だけカウントするという機能を実装しようと思って上記のコードをコンパイル
実行したらエラーです。

359 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 09:52:06.61 ID:9pi8BURR.net]
>>349
LINQ使って無いじゃん……

360 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 09:52:57.42 ID:9pi8BURR.net]
あと、エラーの内容くらい書かないとダメだよ

361 名前:デフォルトの名無しさん [2016/06/24(金) 09:54:39.44 ID:9OeVC8+N.net]
>>352
こういうエラーです。ちなみにコンパイルエラーではなくて実行エラーです。
型 'System.Int32' のオブジェクトを型 'System.String' にキャストできません

362 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 09:55:49.49 ID:zvR1PctG.net]
>>349
LINQは機能の名称だから、オブジェクトがLINQという表現は不自然
あと、ArrayListは.NET2より昔の互換性維持のために残されたものだから使っちゃダメ

エラーが出てるのは単にstringじゃないものをstringに入れてるから
というか、エラーが出るならそのメッセージは必ず書き込め

363 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 09:56:54.04 ID:9pi8BURR.net]
>>353
123をstringにしようとしたらダメだった、って書いてあるね。

364 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:03:58.29 ID:9OeVC8+N.net]
>>355
いい方法ありますか?

365 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:08:57.11 ID:6jwsLRlP.net]
>>349
countってどこから出てくるんだよ

var list = new List<Object>() {
123,
"mojiretsu",
"mojiretsu",
};

Console.WriteLine(list.Select(x => x.ToString().Length).Sum());
→21が返る

これでいこうよ



366 名前:デフォルトの名無しさん [2016/06/24(金) 10:15:22.15 ID:9OeVC8+N.net]
>>357
すいません、foreachを使って順番にアクセスするというのが分かりやすいのでそちらでお願いできないでしょうか?
シンプルに書ける

367 名前:方法もあると思いますが分かりやすさをちょっと優先したいです。 []
[ここ壊れてます]

368 名前:デフォルトの名無しさん [2016/06/24(金) 10:15:54.01 ID:9OeVC8+N.net]
>>357
countは
static int count=0;です。すいません。

369 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:21:01.31 ID:9OeVC8+N.net]
実はType型の質問したのも自由な型を受け入れられるなら自分自身の型を取得するメソッドがあると思ったからです。
実は自分の中でつながってる質問です。

370 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:24:37.49 ID:UubPjCQV.net]
最終的にやりたいことを、コンパイルできないので良いからコードにしてみてくれない?
// 初心者が迷い込みがちなアレだろうかなと何となく想像はつくけど

371 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:38:09.68 ID:9OeVC8+N.net]
>>361
超簡単ですが、コンパイルできないという言葉に甘えさせてもらいますが無茶苦茶です。
申し訳ないですがエスパーしてください。

int[] count=new count[]{0,0,0,0,.......0,0,}
ArrayList list = new ArrayList();
int i;
for(i=0 i<=100; i++)
{
Type x;
int t=RAND(100);
x.typeindex()=t;
list[i]=(t)"123";
}
foreach(Type type in list)
{
count[type.typeindex()]++;
}

372 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:41:04.28 ID:6jwsLRlP.net]
>>358
LINQつかってねーじゃん、しかも文字数じゃないのかよ
すごい無駄だなと思いつつ要望通りに対応する俺えらい子

var list = new List<Object>() {
123,
"mojiretsu",
"mojiretsu",
};

int count = 0;
list.ForEach(x => count += x is string ? 1 : 0);

Console.WriteLine(count);
→2が返る

373 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:44:29.05 ID:9OeVC8+N.net]
>>363
LINQ=コレクション操作のメソッド群という固定概念がありました。
撤回します。

374 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 10:48:48.39 ID:9OeVC8+N.net]
それと動的配列の場合は明示的にDisposeしたほうがいいですか?

375 名前:デフォルトの名無しさん [2016/06/24(金) 10:53:43.66 ID:9OeVC8+N.net]
ufcpp.net/study/csharp/sp3_linq.html#linq
いいページ見つけました。



376 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:02:42.67 ID:gxtxbzXV.net]
どうでもいいけど初心者なのに参考書も手にせずググりまくる野郎って頭ん中何考えてるんだろうな。

プログラム作ることが目的じゃないから、目先のことだけ達成しようとして、結局何もできない。

377 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:26:03.65 ID:m2Ly6EDT.net]
ボケ老人の相手みたいなもんだろ
社会の義務
嫌ならお前が殺処分しろ

378 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:29:13.90 ID:6yOSmlcA.net]
どうでもいいけど参考書()ばかり読んでコードかかないよりはましだと思う

379 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:29:54.22 ID:UubPjCQV.net]
このコードで言えば、複数の型のオブジェクトが含まれているコレクションから、その型毎の要素数を数え上げたいと。
Dictionary<Type, int>を使えば数え上げの方は簡単。
Dictionary<Type, int> counts = new Dictionary<Type, int>();
foreach (var type in 型のリスト) counts[type] = 0;
foreach (var item in オブジェクトのコレクション) counts[item.GetType()]++;

> list[i]=(t)"123";
問題はこっち。
"123"はString型だから、勝手に他の型にキャストすることはできない。何らかの方法で型変換を行う必要がある。
たとえば、対象の型がプリミティブ型のみなら、IConvertibleを使うとか。
あるいは、TypeDescriptor.GetConverter(Type)でTypeConverterを取得してConvertFromStringするとか。
逆に型変換さえ行ってしまえば、型情報はオブジェクト自身が持っているから、代入時にキャストする意味はない。全ての基底クラスであるobjectで十分。

380 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:30:24.75 ID:9pi8BURR.net]
>>365
コードを書いてから、話をしてくれよ……

381 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:49:36.75 ID:9OeVC8+N.net]
>>370
次から次に学ぶことが多い…
dobon.net/vb/dotnet/programing/dictionarytoarray.html



Dictionary<T, T> data3 = new Dictionary<T, T>();
dic.Add("mojiretsu",1;
dic.Add(0.2,"mojiretsu);

コンパイルエラー
ジェネリックなのに

382 名前:ゥ由に型を指定できないんでしょうか? []
[ここ壊れてます]

383 名前:デフォルトの名無しさん [2016/06/24(金) 11:51:55.93 ID:9OeVC8+N.net]
Dictionary<T, T> dic = new Dictionary<T, T>(); エラー
Dictionary<int ,string> dic =new Dictionary<int,string>(); OK

何故ジェネリクスなのに型を指定しないとダメなんだwww

384 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:54:30.10 ID:9OeVC8+N.net]
ジェネリック難しい

385 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:55:54.30 ID:9OeVC8+N.net]
1年間文法だけを学ぶの疲れた



386 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 11:59:54.72 ID:UubPjCQV.net]
> ジェネリックなのに自由に型を指定できないんでしょうか?
Tなんて名前の型、.NETのライブラリのどこにも定義されてないから。

387 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:04:57.77 ID:tm0mKi5k.net]
俺が3日で済むようなことに1年かかるのね
能力の差を痛感するね

388 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:06:03.07 ID:A/B3RYfQ.net]
ジェネリックは何でも入る型って意味じゃないぞ

389 名前:デフォルトの名無しさん [2016/06/24(金) 12:10:01.03 ID:9OeVC8+N.net]
GetTypeがかなり使えますね。
これ使ってGetType=="string" count[x]++;
こんな感じで振り分け可能ですね。

390 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:15:59.24 ID:g5yuDP9p.net]
>>377
3日もかからないだろ
CLR via C#あたりにさっと目を通せばおk
3時間もあれば十分

391 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:21:16.99 ID:9OeVC8+N.net]
俺のしたいこと半分できました。こうです。

ArrayList list=new ArrayList();

list.Add("123");
list.Add(123);
list.Add(1.23);

foreach (var x in list)
{
textBox1.Text = textBox1.Text + x.GetType().ToString();

}

後はcountsで振り分けるだけ。
やったー、本当にうれしい。

392 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 12:28:14.91 ID:iI1wsCYr.net]
大した成果も上がらないのに一年続けるってのは常人に真似できることではないよ
これは才能だよ
発達障害の子がひたすらアリアハンでレベル上げしてるコピペと同じ

393 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 14:35:51.11 ID:EeYyLKW1.net]
Computeメソッドについて質問です
dataTable1にあるColumn1列にある行の数値の合計をLabel1に表示したくて以下のコードを書いたのですが

String a = (String)dataTable1.Compute("Sum(Column1)",null);
Label1.Text = a;


ビルドは正常で通るのですが実行すると[集約関数Sum()および型Stringの使用が無効です]とエラーが出ます
以下のコードの最大値を表示させる場合は問題なかったのですが・・・

String a = (String)dataTable1.Compute("Max(Column1)",null);
Label1.Text = a;


コードをどう書いたら合計値をLabel1に表示できるようになるのでしょうか?

394 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 14:41:37.43 ID:iMwgqHJA.net]
ID:9OeVC8+N
ここ手取り足取りレクチャーするとこじゃないんだが
>>383
(string)でキャストはできないと思ったけど、文字列への変換は
Convert.ToString(数値)
または
数値.ToString()
微妙に例外処理とか内容が変わるので使い分けは自分で調べてくれ
Sum()の方はわからない

395 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 15:17:18.48 ID:EeYyLKW1.net]
>>384
Computeはobjectで返ってくるのでキャストしてみました
Convertを使って以下のコードで書いてみましたがやっぱり同じエラー文が出ました


Label1.Text = Convert.ToString(dataTable1.Compute("Max(Column1)",null));



396 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 15:21:03.03 ID:EeYyLKW1.net]
すみませんMaxではなくSumです

397 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 15:24:11.12 ID:UubPjCQV.net]
Column1のDataColumn.DataTypeがStringなんだろ
SUMの中じゃCONVERTも使えないっぽいから
素直にColumn1の型を数値型にするか
列一個追加してExpression="CONVERT(Column1, 'System.Int32')"にして
そっちでSUMするか

398 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 15:35:45.79 ID:jBNhJYRc.net]
>>375
最初の言語がC#だとこういうバカが量産されるんだよ

399 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 15:46:38.89 ID:EeYyLKW1.net]
>>387
DataTypeをint32に変更したら以下のコードでも表示されました

Label1.Text = Convert.ToString(dataTable1.Compute("Sum(Column1)",null));



皆様ありがとうございました

400 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 17:03:06.45 ID:A/B3RYfQ.net]
>>388
テンプレ読んでね

401 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:09:54.10 ID:5pNaDzv8.net]
大量のデータを処理してる時に

402 名前:
listBox1.Items.Add();でログを追記しているのですが、
処理が終わるまで画面に反映されません。
何か反映する方法ありますか?
スレッド処理はあんまりやりたくない...
[]
[ここ壊れてます]

403 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:15:40.59 ID:7mtsXOXg.net]
丸投げするだけならスレッドでも大したことないだろ

404 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:20:13.88 ID:QU/kIR5r.net]
ガーベッジコレクションを確実に行うためのusingステートメントの使い方について質問です。
filestreamでテキストファイルを読み込んで色々な操作(行と列の入れ替え)などを行うとかの場合はusingを入れ子で使う事になるでしょうか?
殆どのサイトで入れ子で書いてるのを見たからです。その場合、どのように書いたらいいかわかりません。

using(@)
{
using(A)
{
using(B)
{
C
}
}
}

それと実行される順は内側からでC→B→A→@という認識です。
というのは繰り返し処理もfor()for(){func();}の場合一番内側のfunc()実から行されますし、これと同じ要領なんでしょうか?
またこういう入れ子構造ではなくて順次実行されるように書くことが可能ならその方法も教えていただきたいのですが、以下の感じです。

using(){処理}
using(){処理2}
.
.

405 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:23:13.29 ID:R3x7T31r.net]
>>391
int i=0;
(loop)
listBox1.Items.Add();
i++;
Label1.Text=i.ToString();
(loop end)
別スレッド処理がイヤなら中に入れるしかないな
スレッド分けた方が融通利くと思うけど
>>393
確実にCloseしたいだけならtry〜catch〜finallyでもいい
>殆どのサイトで入れ子で書いてるのを見たからです。その場合、どのように書いたらいいか
書いてあるでしょ



406 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:28:03.05 ID:QU/kIR5r.net]
>>394
finallyでオブジェクト破棄ですか?その場合finallyに書き忘れてもコンパイルエラーでなさそうですね。
usingステートメント内だとエラーが出ると思いますけど…

407 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:28:49.83 ID:QU/kIR5r.net]
つまりusingを使ったほうがエラーが出るので忘れようがないという認識です。

408 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:50:54.64 ID:la7TFLKg.net]
>>393
アンマネージリソースが複数あるならその分だけ書く
コードを挟まないならネストせずusing() using() {}とも書ける

括弧じゃなくブロックが内側からだと外側の変数が使えなくならんか
最適化で前後することはあっても逆順になるのは破棄だけでせう?

409 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 18:56:51.58 ID:NQAN2jq9.net]
Dispose()とガベージコレクションは直接は関係無いね。

410 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 19:01:23.52 ID:Fo67yJqk.net]
Disposeってガベコレの時自動で呼ばれるの?
それとも
~Hoge(){
Dispose();
}
書かないとダメ?

411 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 19:11:15.90 ID:QU/kIR5r.net]
>>397
>コードを挟まないならネストせずusing() using() {}とも書ける
掛けることは条件なんですね。分離は無理ですかね。

412 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 19:35:09.11 ID:VXGVYLyW.net]
>>399
自動では呼ばれないのでGCで確実に開放したい処理が含まれるならファイナライザも自前でこしらえる必要がある
DisposeパターンやSafeHandleでぐぐると大雑把な実装方針は得られるけど真面目に取り組もうとすると結構な闇の部分

413 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 19:35:55.97 ID:la7TFLKg.net]
>>399
保険的にはそう書いてDispose()メソッドではファイナライザを抑制する

>>400
分離したければすれば良いと思うが…要するに
スコープを超えて保持しつつも確実に破棄したいと言うこと?

414 名前:デフォルトの名無しさん mailto:sag [2016/06/24(金) 19:56:47.76 ID:WY3YlkEI.net]
>>399
ファイナライザで他のオブジェクトのDisposeを呼ぶのはダメだよ
ファイナライザを実装するのは直接アンマネージリソースを抱えてるクラスだけでいい

415 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 19:59:15.39 ID:JdhquNDr.net]
>>397
>コードを挟まないならネストせずusing() using() {}とも書ける
いや、これ、見た目ネストし



416 名前:てないだけで処理はネストしてるんじゃ?
Disposeされる順番の話で、見た目の話じゃないだろ
[]
[ここ壊れてます]

417 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 20:09:44.54 ID:QU/kIR5r.net]
素直にDispose書きます。何かすごいややこしいですね。
Dispose書かなくてもアプリを終了したらOSに悪影響がないと思うので…

418 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 21:22:08.28 ID:MU5f2A6S.net]
お前らが脅かすから奇妙な結論に至っちゃったぞ

419 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 21:34:54.55 ID:/laqnAgo.net]
自分で実際に動かして試行錯誤するのが一番早いからいいだろ
コード書いて動かす前にここで何もかも聞こうとするのが間違い

420 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 22:33:16.22 ID:WKUnoCA0.net]
なんで分離したいのかが、さっぱりわからん……

421 名前:デフォルトの名無しさん mailto:sage [2016/06/24(金) 23:13:56.12 ID:WmNTFBSq.net]
>>405
既に書いてあるけど、 >>393 の場合、@のコンストラクタ、Aのコンストラクタ、Bのコンストラクタ、Cの処理、BのDispose、AのDispose、@のDisposeの順に呼ばれる。
>>397 の書き方をしても同じ。

この順番で不都合あるの?

422 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 00:31:50.09 ID:1tWSREC6.net]
なにか目的のわからない質問で始まって半ば撤回したり意味不明な理解しましたで終了する質問多いね

423 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 10:24:41.97 ID:YA6dZ+sI.net]
>>409
まじか
順番がそれなら結構間違って使ってる人多いと思うなw
usingなんて使うもんじゃない
C#はちょっと混乱を招く記法が多すぎはしないだろうか

424 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 10:27:35.33 ID:4pvWQ41U.net]
>>411
え、じゃあどういう順番だと思ってたの?

425 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 10:28:23.36 ID:9MwlnD2L.net]
>>411
自然な順序。
何が引っかかってるの?



426 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 10:32:17.64 ID:0XfgWwYu.net]
別の言語の仕様に引きずられすぎだろw

427 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 10:40:27.44 ID:MOSfoC5p.net]
俺も自然だと思うのでここまで4:1

428 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 11:46:17.29 ID:Gp6oE9VL.net]
>>411
for文でも処理から終了の順序は同じだろ
一体どんな順序になると思うのかそっちの方が不思議だw

429 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 11:52:22.44 ID:YA6dZ+sI.net]
俺おかしいかな?結構難しいと思うよ?
他にもusing書いてるのに{}内でClose書いて大変なことになったりw

430 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 11:54:58.70 ID:Gp6oE9VL.net]
>>417
そりゃ個人の問題だw。他の入れ子構造もまるで作れなくなるな
usingに関してはわからなくなるのなら他に手段があるんだから好きな方でやればいい

431 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 12:11:05.81 ID:nOZaRWyq.net]
>>413
using()を重ねるのは、if文で{ }を書かないで重ねるのと同じ規則だから、他と整合性取れてて自然だよね。

432 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 12:26:31.51 ID:uqhs0Biy.net]
>>411
using否定ワロタwww

433 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 13:12:28.52 ID:44qg/VLD.net]
ケースバイケースだが、内側のUsingで生成するオブジェクトは、外側のオブジェクトから生成することがよくある
Adoのコネクション、トランザクション、コマンドの関係などがそれに当たる
だから外側のオブジェクトから先にDisposeすると偉いことになるわけだ
一番内側のオブジェクトからDisposeするのは当然の仕様だ

434 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 13:38:29.04 ID:3+HB44WN.net]
というより「内側は外側に依存しているから」だな
usingに限らずC系言語の大原則
ローカル変数の寿命が内側のブロックで宣言されたものほど短いのと同じ

435 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 13:45:03.87 ID:9MwlnD2L.net]
foreach文もenumeratorがIDisposableなら最後にDisposeかかるのね。
色々考えられてるな。



436 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 14:11:46.16 ID:3+HB44WN.net]
>>423
驚くべきはその仕様が後付けではなく最初からあったという点
初期のC#はイテレータなんかたかがforの構文糖衣のために大袈裟なことしやがって
みたいな反応で、File.ReadLinesやLINQみたいな使い方はヘルスバーグ以外の誰も想像してなかったのに

437 名前:デフォルトの名無しさん mailto:sag [2016/06/25(土) 14:26:19.17 ID:Ea4KNPBK.net]
一方foreach(Javaでは拡張forと呼ぶ)をC#2.0と同時期に導入したJavaには
使い終わったイテレータを自動的に閉じるような仕組みがないため、
Stream(LINQのパクリ)の導入に伴ってJavaのforeachは使い物にならなくなった

438 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 16:35:24.22 ID:LMzPPgZI.net]
usingのメモリ開放はあくまで作り手の努力目標なのでメモリリークの恐れがある

439 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 16:46:19.35 ID:gbVqL6D8.net]
>>426
IDisposableの、でしょ?
混乱させちゃいかんて

440 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 17:28:52.07 ID:4wr/kWbn.net]
ネイティブにコンパイルしたい

441 名前:デフォルトの名無しさん mailto:sag [2016/06/25(土) 17:45:20.69 ID:Ea4KNPBK.net]
>>428
久しぶりに見たなそれ
もう.NETが入ってないWinPCなんか無いし、
一昔前に趣味でフリーソフト作ってたような連中はみんなスマホやWebに行っちゃった

442 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 18:51:05.12 ID:kMZTwDfx.net]
ネイティブにしたとこでランタイムが必要になることは多いし
そういう理由でネイティブにしたいって意見は少ないと思うぞ

443 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 18:53:46.26 ID:44qg/VLD.net]
uwpにはネイティブコンパイラあるでしょ

444 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 19:38:57.65 ID:STveB1w/.net]
データファイルを読み込んでテキストボックスに表示するプログラムを作ってます。
で質問なんですけど、プログラムからでしか読み込まれないようにしたい、
つまり勝手にメモ帳で開けない開けても文字化けしてる状態が理想でこういうのってできますか?

445 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 19:54:33.41 ID:MOSfoC5p.net]
ビット反転しておけば一般人は読めないだろ
クラックも厭わず本気で読もうとしてくる奴にはC#ではどうこうならんから諦めろ



446 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 20:06:07.52 ID:diZHxQ1W.net]
>>432
データをシリアライズする

447 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 20:37:21.95 ID:nVk9lY4N.net]
>>432
手っとり早くはROT13もしくはパスワードつきのzipファイルに入れる

448 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 20:54:36.84 ID:STveB1w/.net]
>>433
いい考えですね参考にさせてもらいます。
読み込むときもとに戻せばいいんですね、ついでに拡張子も変えときます。

一つ疑問が解決したのでもう一つ…

enum DayOfWeek{Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}

これを書いただけでエラーになりました。
書く場所は決まっているんでしょうか?型宣言でエラーがでたのは列挙型が初めてです。

449 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 21:49:00.21 ID:ekXDJ7Cw.net]
エラーメッセージぐらい書け

450 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 21:50:05.04 ID:bp3hpPMG.net]
この前、暴れてた人でしょ。

451 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 22:01:19.65 ID:Gp6oE9VL.net]
>>436
書く場所変えて解決するのならそうしたらいいだけ
自分で解決できるのならここで質問する必要ない

452 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 22:03:56.84 ID:STveB1w/.net]
>>439
いやなんか気持ち悪いなって思って…
理由が知りたいです。

453 名前:デフォルトの名無しさん [2016/06/25(土) 22:05:49.40 ID:STveB1w/.net]
エラーメッセージ書きたいんですけどこのコードの部分にエラーが出ず
他の部分にたくさんエラーが出るので原因が分かりません。

454 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 22:16:26.89 ID:yvMD6GPy.net]
そのエラーも書けないの?バカなの?

455 名前:デフォルトの名無しさん [2016/06/25(土) 22:19:19.54 ID:STveB1w/.net]
>>442
200個以上あるけど書く必要あるんでしょうか?
そのコード以外ほぼ全て赤い波線が出ています。



456 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 22:20:09.74 ID:sXh3eiIW.net]
>>436
セミコロンがないだけだけだろ

457 名前:デフォルトの名無しさん mailto:sage [2016/06/25(土) 22:22:58.21 ID:MOSfoC5p.net]
あー例の人か。
答えるんじゃなかった。
50年くらい喋らないでいてくれたらいいのに。






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

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

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