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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 20:50:08.06 ID:IGV3Viy6.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1436344868/

■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1443271409/

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

159 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 17:29:26.78 ID:IrWwZ6fO.net]
うおおおお!説明が難しすぎてわからない!!

ILSpyで見るとHogeクラスとHoge<T>クラスのどちらも
HogeBaseを継承していて
HogeBaseのメソッドは引数付きなんです
そしてHogeクラスのメソッドはbaseに対して
nullを渡しています

HogeBaseをわざわざ2つのクラスに分割する意味がわかりません
HogeBaseをそのまま使わせるようにすればいいじゃないですか!
って思うんですけど、説明された型推論の関係なんでしょうか?

160 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 17:35:54.46 ID:IrWwZ6fO.net]
利用する側は
new Hoge(Action);
new Hoge(Action<T>);
という感じにできたほうが楽じゃありませんか?
それを
new Hoge(Action);
new Hoge<T>(Action<T);
という風に強制させるのはなぜなんでしょう

161 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 18:00:28.51 ID:t3lNWbaJ.net]
>>156
それは多分型推論は関係ないと思うけど、聞いた感じだと
Hoge<T>{ T obj; }みたいなメンバ変数があり、それをHogeBaseに渡しているけど
Hogeの場合はそれがないのでnullを渡してるっていうような
まあ筋の通った話に聞こえるなあ

HogeBaseだとTで型を決められないからキャストとかが不便で
Hogeがないといちいちnullを入れてやらなきゃいけなくなって不便みたいなことなんじゃないの

162 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 18:41:03.54 ID:E/TV++i+.net]
>>153

CancellationTokenSourceが一回しか使えないのは
知りませんでした。
再起は出来ないんでしょうか?
デッドロックですが使い方を間違えてまして正しくは
一度キャンセルをするとTaskが動かなくなるような
感じです。resultで実際sourceにはokと出るようにしてますがなにも反応がなくなりました。
ボタン復帰もしません

163 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 19:08:20.89 ID:wjSQdsNO.net]
>>149
なんでTaskの中でTask作ってんの?
継続タスクにしたいなら、ContinueWithでつなげれば良いだろう。
あと、そのケースなら Task.Factory.StartNewじゃなくて Task.Runを使ったほうがすっきりするだろう。
ちなみにTaskのDispose()は、無理に呼ぶ必要はない。むしろ無闇に呼び出したらタイミングによっては、厄介なことになる。

>>158
CancellationTokenSourceは、一度限り、再度使いたいならCancellationTokenSourceを作り直すしかない。
キャンセルされてたら、tokenSource.Token.ThrowIfCancellationRequested()が例外を吐いて強制終了するだけなんで
ボタンが復帰しないのは当然のこと。

164 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 19:27:19.47 ID:E/TV++i+.net]
>>159

ありがとうございます。
あ、継続タスクでも同じ動作をしますか
すいませんうっかりしていました。
TaskRunは使いたいのですが環境の問題で駄目でした。

キャンセルの方はならパブリックにするのではなく
プライベートにしてやってみてるのですが今度はキャンセルが出来なくなりました。。。
Taskキャンセルが難しいです

165 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 19:51:26.84 ID:wjSQdsNO.net]
>>160 たぶんやりたいことは、こんなところか。

private CancellationTokenSource cancelSource;
private void button1_Click( object sender , EventArgs e ) {
if( this.cancelSource != null )
this.cancelSource.Cancel(); // まだキャンセルされてなければキャンセル要求

this.button1.Enabled = false;
this.cancelSource = new CancellationTokenSource();
var token = this.cancelSource.Token;

Task.Factory.StartNew( () =>{
for( int i = 0; i < 100000; i++ ){
token.ThrowIfCancellationRequested();
Thread.Sleep( 100 );
}
} , token )
.ContinueWith( task => {
// 継続タスク(UIスレッドに切り替わって実行される)
// キャンセルされようとも正常に完了しようとも、例外が発生しても実行される。
this.button1.Enabled = true;
} , TaskScheduler.FromCurrentSynchronizationContext() );
}

private void button2_Click( object sender , EventArgs e ) {
if( this.cancelSource != null ) {
this.cancelSource.Cancel(); // キャンセル要求
this.cancelSource = null;
}
}

166 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 20:15:07.87 ID:E/TV++i+.net]
>>161
ありがとうございます。
参考例は非常に助かります。
早速やって見ます。

167 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 01:05:59.89 ID:41s2HnED.net]
>>161
どうやらCancellationTokenSourceの扱いをミスっていたみたいで
>>149の方の仰るとおりあのやり方ではブロック内で再生成してないので
一回しか扱えずこれで詰まっていたようです。
今回の参考例非常に助かり無事に期待した動きをしています。
ありがとうございました。



168 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 04:02:33.87 ID:P4Y/UxqF.net]
WebClientを使ってDownloadString(url)でhtmlを読み込む場合、
事前にそのurlに合わせてエンコーディングを指定すると上手く行くのですが、
UTF-8を指定してSJISのヘージを読むと当然文字化けしてしまいます。
読み込むページのエンコーディングを自動的に認識するなどの機能はありませんか?

169 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 04:44:41.46 ID:7dOTeKt2.net]
ありません。

170 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 05:03:23.35 ID:P4Y/UxqF.net]
>>165
じゃあどうすれば任意のurlを文字化けせずに読み込めますか?

171 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 06:43:34.47 ID:YzZ6qWCc.net]
そりゃあ…DownloadDataでbyte[]を取ってきて
自分でエンコーディングを推定してStringに変換するに決まってんだろ
言わせんなよ恥ずかしい

172 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 08:45:24.81 ID:xr5l46tc.net]
相手サーバが有能ならDownloadDataした後のResponseHeadersからContent-Typeを参照することもできるぞ

173 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 09:06:53.64 ID:P4Y/UxqF.net]
>>167 >>168
確かにこの方法で出来そうなのですが、URLによっては
リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
Status ProtocolError
と出る場合が有りますが。

174 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 09:17:24.10 ID:IPzu3dLL.net]
ブラウザでは読み込めるならCook

175 名前:ieが正しく設定されてないとかだろ
決まった値でいいならブラウザのデバッガで通信を監視してその通りにリクエスト送ればいいけど、
セッションが必要ならRubyのMechanizeみたいなの使わないとすぐに動かなくなる
非常に面倒だから本当にそのページが重要なのでない限りは諦めた方がいい
[]
[ここ壊れてます]

176 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 10:52:29.13 ID:P4Y/UxqF.net]
>>170
情報ありがとうございました。
RubyのMechanizeというのを少し調べてみたのですが、C#でこういうのは
ありませんか?

177 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 11:18:31.92 ID:IPzu3dLL.net]
Selenium使えば?



178 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 12:02:46.15 ID:7dOTeKt2.net]
>>168
あとは、一旦、ASCIIで読み込んで、HTMLの<META>タグ判定するぐらいか。

179 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:36:16.73 ID:bwylg/oX.net]
初学からc#及び.NETが一人前と言われるレベルになるにはどんな勉強していったらいいかな?

1.オブジェクト指向の基礎を学ぶ(参考書の選択肢はJAVAのが多かったのでJAVAを選択)

2.(今のところWEBがメインなので)HTML,CSS,javascriptの基礎

3.HTTPやTCP/IPの基礎

4.C#3.0以降の技術(LINQ等)

5.デザインパターンを一通り網羅

6.リファクタリングの手法を習得

7.CODE COMPLETE等を読んで基礎固め

8.ASP.NET MVCの基礎、MVC等のレイアー層の理解

今のところこんな感じで進めてるけど
まだまだ足りない所ばかりで成長遅い。

どこかでC言語の勉強もしなきゃいけないと思ってるし...

180 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:45:39.68 ID:xI0jh4Ci.net]
まずゴールを明確にする
具体的にどんな仕事をして誰に一人前と言われたいのか
SIerでドカタやるだけならそんだけできたら一人前どころかエースだ

181 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:54:30.96 ID:7dOTeKt2.net]
>>174
いろいろ言いたいことはあるが、C#ならサイトなら未確認飛行の人のサイトをお勧めする。
ArrayListとか使ってる入門サイトは、ゴミ以下だ。何の役にも立たないから気をつけろ。
非同期処理でThread(生スレッド)使ってる解説もゴミ以下だから、窓から投げ捨てよう。
C#とJavaと同じとかいう奴に出会したら、にわかなので軽くスルーしよう。

c#使いが覚えるべきことは、
拡張メソッドとIEnumerable<T>の関係性だろう。
 こいつを理解できれば、LINQは、理解できたもの同然。
INotifyPropertyChanged
 WPFなどのMVVMを理解する上で欠かせない。
Taskとasync , await
 非同期関係は、だいたい、これで間に合う。
あと、余裕ができれば、Rx周りに手を出しても良いだろう。

182 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:11:30.28 ID:YzZ6qWCc.net]
不法投棄犯の言うことを信用して良いものか…

183 名前:デフォルトの名無しさん [2015/10/13(火) 20:16:29.39 ID:P4Y/UxqF.net]
C#で関数の引数でrefを使えばCのポインタのような
動作になると思うのですが、文字列、配列、構造体、クラスなど
受け渡しする時にrefを使うと効率良くなって動作が速くなりますか?

184 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:34:16.68 ID:Jlc+RBff.net]
>>176
そういえばゴールはあまり明確にしていませんでした。
とりあえず目標?は
・新しいシステムを作るときに、良い設計手法、技術を用いてそれを形にできるスキルを身につけたい
・別の会社にいっても、通用するような基礎を身につける

ですね。正直今のSIer企業には、ずっといたくないと考えているので
転職前に早くスキルを身につけたいところです。

>>177
アド

185 名前:oイスどうもです。
LINQ周りの考え方については結構調べました。
INotifyPropertyChangedや非同期関連は、まだ浅いので詰めて行きたいです。
Rxまで早くたどり着きたい...
[]
[ここ壊れてます]

186 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 21:32:56.02 ID:4DY03Csk.net]
>>178
状況次第だ
しかしそのような質問が出てくる時点で君には時期尚早と言える

187 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 21:37:37.13 ID:IPzu3dLL.net]
>>179
個人的には関数型言語覚えるのがお勧めだな
実務で使わないとしても、プログラミングセンスを磨くには最適
細かい技術なんて基礎さえできてればその都度ググればいいこと



188 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 21:53:19.65 ID:3EVIu19y.net]
>>178
C#においては「参照型」と「値型」の区別が重要だよ
参照型はclass、値型はstructやプリミティブ型だよ

189 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:14:15.51 ID:JgCmGigF.net]
↑これがこの板を象徴するアスペなレス

190 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:20:08.70 ID:P4Y/UxqF.net]
>>182
それは知っているのですが、
そういう前提で、とりあえずrefを入れまくっておけば
速くなることはあっても遅く成る事は無いですか?

191 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:24:23.58 ID:IPzu3dLL.net]
>>184
参照型は遅くなる
元々ハンドルを渡してるだけなのにその上余計な間接アクセスが入るから

192 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:47:11.18 ID:7dOTeKt2.net]
refの使い道は、そもそも速度を稼ぐためではないからな。
16バイト以上の構造体(値型)であれば、コピーコストを抑えることができるので若干、速くなる。

class A {
  string hoge;
  void Run() => Set( ref hoge );
  void Set( ref string n ) => n = "aaa";
}

こうすれば、Setメソッドで hogeが書き換わるようになるだけ。
これを利用したのがLazyInitializer.EnsureInitializedあたりの遅延初期化あたり。

また、仮に速度向上が見込まれるとして何でもかんでもrefを使うと可読性が悪くなるだけでなく、余計なバグの温床になるだろう。

193 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 23:33:34.52 ID:wNVuw2e3.net]
>>174
1しかやってないけど年収一千万超えてるわ俺

194 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 00:11:28.33 ID:9EHqXlxG.net]
俺はrefを使ったことがない・・・

195 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 00:15:52.35 ID:6bQwcZBR.net]
>>188
それが普通。
少なくとも好き好んで使うような物じゃないでしょ

196 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 01:11:41.08 ID:3R4nuN13.net]
refはメソッド内で引数を書き換えるよってことだから早々使わない
outは使うことがあるかも
複数値リターンがあればいらないんだけどね

197 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 01:41:54.81 ID:KX7liTZS.net]
DirectXやWinAPIをやらないなら使わないよねー



198 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 02:17:16.60 ID:zAeiUrE8.net]
XNAの算術ライブラリはref祭りじゃったのう(遠い目)

199 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 09:46:15.40 ID:Kzgl2aXh.net]
遅延初期化系のメソッド使うときは、ref使う。
System.Threading.LazyInitializer.EnsureInitialized( ref x );みたいなやつ

200 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 10:43:03.02 ID:/REmo4T1.net]
お前らすげー詳しいけどPG?SE?
周りに詳しい人いないから誰にも聞けないわ

201 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 10:59:37.46 ID:H7Zj+QeL.net]
大抵の情報はググったら出てくるだろw

202 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 13:27:10.88 ID:C7hQw/KG.net]
そーなんだけども、ググると古い情報の方が上位に来やすい罠が

203 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 16:31:12.31 ID:aOACpiFq.net]
refはINotifyPropertyChangedの実装で使うのを見た時になるほどと思った
stackoverflow.com/

204 名前:questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist []
[ここ壊れてます]

205 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 18:28:08.01 ID:2u28QwcF.net]
string line = "fjlast●je■woi▲utgal;jgas";
do{
 int pos = line.IndexOfAny(new char[] { '●', '■', '▲' }, pos);
 if(pos==-1)
  break;
 pos++
while(true);
こういう探索をする場合、上例のように
new char[] { '●', '■', '▲' }
をループの中に入れると毎回newされて効率悪くなったりしますか?

事前に
const array = new char[] { '●', '■', '▲' };
として、ループの中では
int pos = line.IndexOfAny(array, pos);
とすべきですか?

206 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 18:37:34.62 ID:fomBTPP1.net]
原則としてはそうね
だけど全体の処理から考えると誤差以下よ

207 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 22:37:02.52 ID:2u28QwcF.net]
>>199
ありがとうございました



208 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 08:47:07.62 ID:b8m6XFK1.net]
構造体矩形を作ってメンバーが座標とサイズだった場合直生Xを変更したり出来ないのか・・・不便

209 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 08:54:54.81 ID:FN3G7dO/.net]
プロパティ実装すればそれっぽくなるだろ
どうしてもフィールドを直接弄りたいなら StructLayout(LayoutKind.Explicit) + FieldOffset でunion相当が実現可能

210 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:06:28.13 ID:HFus6TsS.net]
RECT定義しちゃえばいいだろ
って話じゃないのか?
意味不明

211 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:08:03.62 ID:TjssbBGs.net]
違うかもしれんけど、>>201が言ってるのは別のクラスのプロパティの型がRectだった場合のことかね。
そうだとしたら、でもそこが値型のメリットでもあるわけで、まあちゃんと理解して使えとしか。

212 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:16:22.10 ID:b8m6XFK1.net]
>>204
そういう事

213 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:21:07.89 ID:TjssbBGs.net]
>>205
参照型でRectを作った場合でも、まともなセンスの人なら>>201みたいなことができないように講じる
(Rectをイミュータブルにする)わけで、同じなんだけどね。

214 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:44:09.96 ID:b8m6XFK1.net]
GCは時間掛かるから出来るだけ値型を使ったほうがいいって聞いたんだけどどうなの

215 名前:デフォルトの名無しさん [2015/10/17(土) 15:11:26.94 ID:y+IPLvAO.net]
川俣晶のソースコードを見ると何かムカつきます
いったいどうしたらいいんですか?
(´・ω・`)

216 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 15:21:06.30 ID:c8KbfCFX.net]
>>208
それは中二病の症状です。
20歳を超えて発症した場合は恐らく一生治りません。
定めだと思って諦めて一生青春しててください。

217 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 16:01:56.58 ID:HUgpKArY.net]
アトミック処理間におけるタスクスイッチングについて5行以内で語って下さい



218 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 16:32:12.70 ID:YVKz2Gue.net]
>>207

短寿命オブジェクト用のGen0GCはクソ速いから、
クラスをnewするならするですぐに使い捨てるのがよい

219 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 16:54:05.33 ID:ceUp4SbX.net]
>>211
あ、マジか…
60FPSなら16msで一周しないといけないけどGCは30msくらい掛かるって書いてあったから心配してた

220 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 20:48:01.48 ID:lEhwHPlH.net]
全然関係ない話だけど、Windows10騒動とかマイクロソフトやばくなってきたな
Windows崩壊とか勘弁ですよ

221 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 21:30:39.49 ID:Qv9BWxTI.net]
マイクロソフト帝国は崩壊の渦中
アップルも新しいものを生み出せずに飽きられたら将来はどうなるかわからん

222 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:12:12.95 ID:1b1MshO0.net]
Win10騒動より、.NET4.0〜4.5.1狙い撃ちのサポート切れの方が怖い

223 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:13:36.87 ID:ixXAzgg3.net]
>>215
狙い撃ちってどういう意味?

224 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:14:17.57 ID:lZc14wWH.net]
>>215
詳し区

225 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:30:15.39 ID:1b1MshO0.net]
>>216-217
いや、単に.NET4.0〜4.5.1が来年の1月12日にサポート切れて4.5.2以外サポート対象外になるだけの話なんだわ
www.atmarkit.co.jp/ait/articles/1501/23/news031.html
.NET Framework 3.5 SP1および3.5.1
.NET Framework 4.5.2

3.5.1以前は下位バージョンが内包されているからいいんだが、4.0〜4.5.1は4.5.2入れろ
必要ならば動作検証し直してねとMSが明言しているから扱い面倒そうだなと

226 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:37:10.95 ID:FN3G7dO/.net]
そういうの気にするようなところだと3.5→3.5.1とかでもどのみち大騒ぎだよ
.NETのマイナーバージョン間非互換ってインストールパスに依存してる糞アプリがあるかもしれないとかそんなレベルだし

227 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:42:15.32 ID:ixXAzgg3.net]
>>218
現時点で4.6出ているけど4.5.2はずっとサポートされると思っていいんだろうか
それとも今後新バージョンが出るたびに動作検証し直さなければならない?



228 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:43:10.59 ID:S84Ssc/e.net]
噂を信じちゃいけないよってか

229 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:49:06.59 ID:/7+5znpF.net]
>>218
仮に4.5.1がサポートされてたらWin10に上げても検証しなくていいのか?
どう考えても.NETのバージョンなんかよりWin10へ上げること自体の方が遥かに問題になる可能性が高いだろ

230 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 23:23:15.70 ID:ixXAzgg3.net]
>>222
Win10に上げるのは自己責任じゃねーの
4.5.2には上げざるを得ないから対応しろと言われかねない

231 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 01:04:40.12 ID:/DhocndZ.net]
バージョンがうんたらとかいうよりも、マイクロソフトの信用がなくなってしまったという感じだよ

232 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 12:54:14.13 ID:i95LMF8H.net]
interfaceと自動化テストを適切に使えば互換性なんて大した問題にならないだろ
C#使いはみんなアホなのか

233 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:00:46.03 ID:ivrEFHM8.net]
自動テストなんてファンタジーですよ
✕C#使いはアホ
○日本のITはアホ

234 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:26:26.09 ID:rT2sf8QY.net]
そんなことよりいつタプルとレコードとパターンマッチが使えるようになるんだ

235 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:09:43.90 ID:/DhocndZ.net]
it.srad.jp/story/15/10/16/214241/
マイクロソフト工作員暴れすぎだろ、見境なくなってる
末期症状だな

236 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:13:20.14 ID:/DhocndZ.net]
タプルもいいけど匿名型を型宣言させてほしい
こまごましたクラスで名前空間汚れる

237 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:36:13.19 ID:tIhTJhT+.net]
>>228
重症の2ch脳だな。酷い馬鹿だ。



238 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:53:35.54 ID:EteQ/5LB.net]
VSって#hogeの自動補充機能ないの?

239 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:54:02.78 ID:rT2sf8QY.net]
匿名型をちゃんとタプルにしておけば「C#でTupleをnewするコードがクッッソダサイww」
とか馬鹿にされることもなかったのにな

アンダースは細かい使い勝手を改善するような変更に対してすごく保守的だった
拡張メソッドもstaticクラスでしか作れないみたいな嫌がらせを受けたままだし

240 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:56:00.48 ID:hcyPsAl4.net]
拡張メソッドはそこいらにばらまかれるより一箇所にまとめとかれるほうがいい気がするからいまのままでいい

241 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:22:39.24 ID:rT2sf8QY.net]
recordにパターンマッチがくればデータと手続きの分離が進むだろうから
データクラスと別に手続きクラスを用意するのは自然になっていくと思う
ただ手続きを探すためには圧倒的に.を打ってインテリセンスに名前が出たほうが便利だから
拡張メソッドは第一線で使われるものになっていくだろう

それで拡張メソッドをstaticクラスにまとめること自体はいいんだが
問題はstaticクラスの内部で型が作れないことなんだよなあ
多値を返すためにoutみたいな奇道を使わない場合structを定義しないとどうしようもないが
トップレベルに書くと名前空間が汚れすぎる

まあそれもタプルが来れば解決か

242 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:06:11.60 ID:O3txSH0M.net]
ITの技術書籍って8割方意味なくない?
ほとんどはネットでググれば出てくるし

唯一金出して買うって書籍はせいぜい洋書の翻訳版くらいだよな?

243 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:10:59.06 ID:Fyu9IAr8.net]
初心者にとって意味があるんだろ

自動アップデートが実装されない限り技術書籍は買う気にならないが…

244 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:11:18.08 ID:S+d/GOeW.net]
経験に基づく実践的な内容なら価値はあるんだが、
大抵の技術書の著者って技術評価みたいなことしかしてない奴ばっかりだから
ほんとにネットでググったtipsが羅列されてるだけみたいなのが多い

245 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:13:06.08 ID:1K54QMcp.net]
>>235
独学や素人だと結構本が理解の入り口になると思うよ
ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
著者が理系脳で、わからない人にわかるように表現されてない
わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
悲しいかな、購入者はわからない人がほとんどなのだけどね
で、ネットの情報や複数の本で補完せざるを得ない
そういう意味ではネットでいいというのもうなずけるけど・・・

246 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:26:39.43 ID:O3txSH0M.net]
初心者にとっては意味があるってのも正直分からん
初心者だってググれば知りたい事出てくるんだから、書籍を買う意義の在処が無いでしょ

247 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:41:31.99 ID:CUxV7ZEj.net]
>ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
>著者が理系脳で、わからない人にわかるように表現されてない
>わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・

このへんはネットの情報でもたいして変わらんと思うが。
加えて、ネットだと

・断片的なトピックしか書いてない
・そもそも間違っている

ってのも割合としては多くなるな。



248 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 22:47:11.00 ID:Fyu9IAr8.net]
初心者はぐぐらない
もしくはぐぐるためのキーワードを知らない

249 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:12:02.85 ID:0PlCKIO2.net]
書籍のメリットは
情報が主題に沿ってまとまってる
その情報が編集されて主題にそって提示されている
の2点

つまり編集されていると言う事に意義を感じないなら価値はないな

250 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:17:11.53 ID:ZeZpTvFb.net]
C#の文法とかデスクトップアプリに関してならネットの情報だけでも十分なんだが
ASP.NET関係だとネットだけだと断片的過ぎてな
初心者は本を買わざるを得ないだろう
おまけに文法本と違って本の選択肢も少ないという問題もある

251 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:21:12.01 ID:1MrL9p77.net]
>>243
俺はこの一年でvb、c++、c#、asp.net、js、php、その他全部ネットで習得したよ。一冊も本は買っていない。

252 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:26:42.33 ID:/DhocndZ.net]
サーバー側は、C#というかWindowsで組むことないからな、開発者の絶対数が少なくて情報もないって感じだ
自分も作っているのはデスクトップアプリオンリーだし

無料のレンタル鯖にC#で組めるcgiとかできたら嬉しいんだけどね(←時代に置いて行かれたおっさんw)

253 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:30:25.33 ID:ZeZpTvFb.net]
>>245
来年登場予定のASP.NET5はリナックスでもMACでも動くという触れ込み
フレームワークがオープンソースの.NET COREに代わる
これで普及すればいいんだがな

254 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:40:24.72 ID:FU6fHshJ.net]
ASP.NET5はMVC系ベースで以前のものとは互換性ないんだけどね
MVCの方でいいんなら今でもMonoで動くよ

255 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:46:53.39 ID:1MrL9p77.net]
>>246
iisもlinuxに移植されるの?

256 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:47:34.93 ID:/DhocndZ.net]
難しい事はええからpublic_html/binあたりにcs書いて、そいつがSystem.Console.OutにHTML書いたらOKにしてください
軽くperl書くノリくらいで、って感じですw

257 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:50:52.54 ID:ZeZpTvFb.net]
>>248
iisが移植されることはないでしょ
むしろASP.NET5はwebサーバー依存じゃなくなってるのでアパッチでも何でも動くのが売り



258 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:55:05.84 ID:1MrL9p77.net]
>>250
iisの設定画面に慣れているがapacheあまり知らないので不安だなあ

259 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:26:53.06 ID:VNgGX25K.net]
入門書にしろ、入門サイトにしろ、初心者は余計なことを考え出して深みにはまる奴いるよなw






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

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

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