トップページ⇒tech
1002コメント341KB

ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2015/10/02(金) 20:50:08.06ID:IGV3Viy6
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

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

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

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

>>158
CancellationTokenSourceは、一度限り、再度使いたいならCancellationTokenSourceを作り直すしかない。
キャンセルされてたら、tokenSource.Token.ThrowIfCancellationRequested()が例外を吐いて強制終了するだけなんで
ボタンが復帰しないのは当然のこと。
0160デフォルトの名無しさん2015/10/12(月) 19:27:19.47ID:E/TV++i+
>>159

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

キャンセルの方はならパブリックにするのではなく
プライベートにしてやってみてるのですが今度はキャンセルが出来なくなりました。。。
Taskキャンセルが難しいです
0161デフォルトの名無しさん2015/10/12(月) 19:51:26.84ID:wjSQdsNO
>>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;
}
}
0162デフォルトの名無しさん2015/10/12(月) 20:15:07.87ID:E/TV++i+
>>161
ありがとうございます。
参考例は非常に助かります。
早速やって見ます。
0163デフォルトの名無しさん2015/10/13(火) 01:05:59.89ID:41s2HnED
>>161
どうやらCancellationTokenSourceの扱いをミスっていたみたいで
>>149の方の仰るとおりあのやり方ではブロック内で再生成してないので
一回しか扱えずこれで詰まっていたようです。
今回の参考例非常に助かり無事に期待した動きをしています。
ありがとうございました。
0164デフォルトの名無しさん2015/10/13(火) 04:02:33.87ID:P4Y/UxqF
WebClientを使ってDownloadString(url)でhtmlを読み込む場合、
事前にそのurlに合わせてエンコーディングを指定すると上手く行くのですが、
UTF-8を指定してSJISのヘージを読むと当然文字化けしてしまいます。
読み込むページのエンコーディングを自動的に認識するなどの機能はありませんか?
0165デフォルトの名無しさん2015/10/13(火) 04:44:41.46ID:7dOTeKt2
ありません。
0166デフォルトの名無しさん2015/10/13(火) 05:03:23.35ID:P4Y/UxqF
>>165
じゃあどうすれば任意のurlを文字化けせずに読み込めますか?
0167デフォルトの名無しさん2015/10/13(火) 06:43:34.47ID:YzZ6qWCc
そりゃあ…DownloadDataでbyte[]を取ってきて
自分でエンコーディングを推定してStringに変換するに決まってんだろ
言わせんなよ恥ずかしい
0168デフォルトの名無しさん2015/10/13(火) 08:45:24.81ID:xr5l46tc
相手サーバが有能ならDownloadDataした後のResponseHeadersからContent-Typeを参照することもできるぞ
0169デフォルトの名無しさん2015/10/13(火) 09:06:53.64ID:P4Y/UxqF
>>167 >>168
確かにこの方法で出来そうなのですが、URLによっては
リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
Status ProtocolError
と出る場合が有りますが。
0170デフォルトの名無しさん2015/10/13(火) 09:17:24.10ID:IPzu3dLL
ブラウザでは読み込めるならCookieが正しく設定されてないとかだろ
決まった値でいいならブラウザのデバッガで通信を監視してその通りにリクエスト送ればいいけど、
セッションが必要ならRubyのMechanizeみたいなの使わないとすぐに動かなくなる
非常に面倒だから本当にそのページが重要なのでない限りは諦めた方がいい
0171デフォルトの名無しさん2015/10/13(火) 10:52:29.13ID:P4Y/UxqF
>>170
情報ありがとうございました。
RubyのMechanizeというのを少し調べてみたのですが、C#でこういうのは
ありませんか?
0172デフォルトの名無しさん2015/10/13(火) 11:18:31.92ID:IPzu3dLL
Selenium使えば?
0173デフォルトの名無しさん2015/10/13(火) 12:02:46.15ID:7dOTeKt2
>>168
あとは、一旦、ASCIIで読み込んで、HTMLの<META>タグ判定するぐらいか。
0174デフォルトの名無しさん2015/10/13(火) 19:36:16.73ID:bwylg/oX
初学から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言語の勉強もしなきゃいけないと思ってるし...
0175デフォルトの名無しさん2015/10/13(火) 19:45:39.68ID:xI0jh4Ci
まずゴールを明確にする
具体的にどんな仕事をして誰に一人前と言われたいのか
SIerでドカタやるだけならそんだけできたら一人前どころかエースだ
0176デフォルトの名無しさん2015/10/13(火) 19:54:30.96ID:7dOTeKt2
>>174
いろいろ言いたいことはあるが、C#ならサイトなら未確認飛行の人のサイトをお勧めする。
ArrayListとか使ってる入門サイトは、ゴミ以下だ。何の役にも立たないから気をつけろ。
非同期処理でThread(生スレッド)使ってる解説もゴミ以下だから、窓から投げ捨てよう。
C#とJavaと同じとかいう奴に出会したら、にわかなので軽くスルーしよう。

c#使いが覚えるべきことは、
拡張メソッドとIEnumerable<T>の関係性だろう。
 こいつを理解できれば、LINQは、理解できたもの同然。
INotifyPropertyChanged
 WPFなどのMVVMを理解する上で欠かせない。
Taskとasync , await
 非同期関係は、だいたい、これで間に合う。
あと、余裕ができれば、Rx周りに手を出しても良いだろう。
0177デフォルトの名無しさん2015/10/13(火) 20:11:30.28ID:YzZ6qWCc
不法投棄犯の言うことを信用して良いものか…
0178デフォルトの名無しさん2015/10/13(火) 20:16:29.39ID:P4Y/UxqF
C#で関数の引数でrefを使えばCのポインタのような
動作になると思うのですが、文字列、配列、構造体、クラスなど
受け渡しする時にrefを使うと効率良くなって動作が速くなりますか?
0179デフォルトの名無しさん2015/10/13(火) 20:34:16.68ID:Jlc+RBff
>>176
そういえばゴールはあまり明確にしていませんでした。
とりあえず目標?は
・新しいシステムを作るときに、良い設計手法、技術を用いてそれを形にできるスキルを身につけたい
・別の会社にいっても、通用するような基礎を身につける

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

>>177
アドバイスどうもです。
LINQ周りの考え方については結構調べました。
INotifyPropertyChangedや非同期関連は、まだ浅いので詰めて行きたいです。
Rxまで早くたどり着きたい...
0180デフォルトの名無しさん2015/10/13(火) 21:32:56.02ID:4DY03Csk
>>178
状況次第だ
しかしそのような質問が出てくる時点で君には時期尚早と言える
0181デフォルトの名無しさん2015/10/13(火) 21:37:37.13ID:IPzu3dLL
>>179
個人的には関数型言語覚えるのがお勧めだな
実務で使わないとしても、プログラミングセンスを磨くには最適
細かい技術なんて基礎さえできてればその都度ググればいいこと
0182デフォルトの名無しさん2015/10/13(火) 21:53:19.65ID:3EVIu19y
>>178
C#においては「参照型」と「値型」の区別が重要だよ
参照型はclass、値型はstructやプリミティブ型だよ
0183デフォルトの名無しさん2015/10/13(火) 22:14:15.51ID:JgCmGigF
↑これがこの板を象徴するアスペなレス
0184デフォルトの名無しさん2015/10/13(火) 22:20:08.70ID:P4Y/UxqF
>>182
それは知っているのですが、
そういう前提で、とりあえずrefを入れまくっておけば
速くなることはあっても遅く成る事は無いですか?
0185デフォルトの名無しさん2015/10/13(火) 22:24:23.58ID:IPzu3dLL
>>184
参照型は遅くなる
元々ハンドルを渡してるだけなのにその上余計な間接アクセスが入るから
0186デフォルトの名無しさん2015/10/13(火) 22:47:11.18ID:7dOTeKt2
refの使い道は、そもそも速度を稼ぐためではないからな。
16バイト以上の構造体(値型)であれば、コピーコストを抑えることができるので若干、速くなる。

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

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

また、仮に速度向上が見込まれるとして何でもかんでもrefを使うと可読性が悪くなるだけでなく、余計なバグの温床になるだろう。
0187デフォルトの名無しさん2015/10/13(火) 23:33:34.52ID:wNVuw2e3
>>174
1しかやってないけど年収一千万超えてるわ俺
0188デフォルトの名無しさん2015/10/14(水) 00:11:28.33ID:9EHqXlxG
俺はrefを使ったことがない・・・
0189デフォルトの名無しさん2015/10/14(水) 00:15:52.35ID:6bQwcZBR
>>188
それが普通。
少なくとも好き好んで使うような物じゃないでしょ
0190デフォルトの名無しさん2015/10/14(水) 01:11:41.08ID:3R4nuN13
refはメソッド内で引数を書き換えるよってことだから早々使わない
outは使うことがあるかも
複数値リターンがあればいらないんだけどね
0191デフォルトの名無しさん2015/10/14(水) 01:41:54.81ID:KX7liTZS
DirectXやWinAPIをやらないなら使わないよねー
0192デフォルトの名無しさん2015/10/14(水) 02:17:16.60ID:zAeiUrE8
XNAの算術ライブラリはref祭りじゃったのう(遠い目)
0193デフォルトの名無しさん2015/10/14(水) 09:46:15.40ID:Kzgl2aXh
遅延初期化系のメソッド使うときは、ref使う。
System.Threading.LazyInitializer.EnsureInitialized( ref x );みたいなやつ
0194デフォルトの名無しさん2015/10/14(水) 10:43:03.02ID:/REmo4T1
お前らすげー詳しいけどPG?SE?
周りに詳しい人いないから誰にも聞けないわ
0195デフォルトの名無しさん2015/10/14(水) 10:59:37.46ID:H7Zj+QeL
大抵の情報はググったら出てくるだろw
0196デフォルトの名無しさん2015/10/14(水) 13:27:10.88ID:C7hQw/KG
そーなんだけども、ググると古い情報の方が上位に来やすい罠が
0197デフォルトの名無しさん2015/10/14(水) 16:31:12.31ID:aOACpiFq
refはINotifyPropertyChangedの実装で使うのを見た時になるほどと思った
http://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist
0198デフォルトの名無しさん2015/10/15(木) 18:28:08.01ID:2u28QwcF
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);
とすべきですか?
0199デフォルトの名無しさん2015/10/15(木) 18:37:34.62ID:fomBTPP1
原則としてはそうね
だけど全体の処理から考えると誤差以下よ
0200デフォルトの名無しさん2015/10/15(木) 22:37:02.52ID:2u28QwcF
>>199
ありがとうございました
0201デフォルトの名無しさん2015/10/17(土) 08:47:07.62ID:b8m6XFK1
構造体矩形を作ってメンバーが座標とサイズだった場合直生Xを変更したり出来ないのか・・・不便
0202デフォルトの名無しさん2015/10/17(土) 08:54:54.81ID:FN3G7dO/
プロパティ実装すればそれっぽくなるだろ
どうしてもフィールドを直接弄りたいなら StructLayout(LayoutKind.Explicit) + FieldOffset でunion相当が実現可能
0203デフォルトの名無しさん2015/10/17(土) 12:06:28.13ID:HFus6TsS
RECT定義しちゃえばいいだろ
って話じゃないのか?
意味不明
0204デフォルトの名無しさん2015/10/17(土) 12:08:03.62ID:TjssbBGs
違うかもしれんけど、>>201が言ってるのは別のクラスのプロパティの型がRectだった場合のことかね。
そうだとしたら、でもそこが値型のメリットでもあるわけで、まあちゃんと理解して使えとしか。
0205デフォルトの名無しさん2015/10/17(土) 12:16:22.10ID:b8m6XFK1
>>204
そういう事
0206デフォルトの名無しさん2015/10/17(土) 12:21:07.89ID:TjssbBGs
>>205
参照型でRectを作った場合でも、まともなセンスの人なら>>201みたいなことができないように講じる
(Rectをイミュータブルにする)わけで、同じなんだけどね。
0207デフォルトの名無しさん2015/10/17(土) 12:44:09.96ID:b8m6XFK1
GCは時間掛かるから出来るだけ値型を使ったほうがいいって聞いたんだけどどうなの
0208デフォルトの名無しさん2015/10/17(土) 15:11:26.94ID:y+IPLvAO
川俣晶のソースコードを見ると何かムカつきます
いったいどうしたらいいんですか?
(´・ω・`)
0209デフォルトの名無しさん2015/10/17(土) 15:21:06.30ID:c8KbfCFX
>>208
それは中二病の症状です。
20歳を超えて発症した場合は恐らく一生治りません。
定めだと思って諦めて一生青春しててください。
0210デフォルトの名無しさん2015/10/17(土) 16:01:56.58ID:HUgpKArY
アトミック処理間におけるタスクスイッチングについて5行以内で語って下さい
0211デフォルトの名無しさん2015/10/17(土) 16:32:12.70ID:YVKz2Gue
>>207
嘘
短寿命オブジェクト用のGen0GCはクソ速いから、
クラスをnewするならするですぐに使い捨てるのがよい
0212デフォルトの名無しさん2015/10/17(土) 16:54:05.33ID:ceUp4SbX
>>211
あ、マジか…
60FPSなら16msで一周しないといけないけどGCは30msくらい掛かるって書いてあったから心配してた
0213デフォルトの名無しさん2015/10/17(土) 20:48:01.48ID:lEhwHPlH
全然関係ない話だけど、Windows10騒動とかマイクロソフトやばくなってきたな
Windows崩壊とか勘弁ですよ
0214デフォルトの名無しさん2015/10/17(土) 21:30:39.49ID:Qv9BWxTI
マイクロソフト帝国は崩壊の渦中
アップルも新しいものを生み出せずに飽きられたら将来はどうなるかわからん
0215デフォルトの名無しさん2015/10/17(土) 22:12:12.95ID:1b1MshO0
Win10騒動より、.NET4.0〜4.5.1狙い撃ちのサポート切れの方が怖い
0216デフォルトの名無しさん2015/10/17(土) 22:13:36.87ID:ixXAzgg3
>>215
狙い撃ちってどういう意味?
0217デフォルトの名無しさん2015/10/17(土) 22:14:17.57ID:lZc14wWH
>>215
詳し区
0218デフォルトの名無しさん2015/10/17(土) 22:30:15.39ID:1b1MshO0
>>216-217
いや、単に.NET4.0〜4.5.1が来年の1月12日にサポート切れて4.5.2以外サポート対象外になるだけの話なんだわ
http://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が明言しているから扱い面倒そうだなと
0219デフォルトの名無しさん2015/10/17(土) 22:37:10.95ID:FN3G7dO/
そういうの気にするようなところだと3.5→3.5.1とかでもどのみち大騒ぎだよ
.NETのマイナーバージョン間非互換ってインストールパスに依存してる糞アプリがあるかもしれないとかそんなレベルだし
0220デフォルトの名無しさん2015/10/17(土) 22:42:15.32ID:ixXAzgg3
>>218
現時点で4.6出ているけど4.5.2はずっとサポートされると思っていいんだろうか
それとも今後新バージョンが出るたびに動作検証し直さなければならない?
0221デフォルトの名無しさん2015/10/17(土) 22:43:10.59ID:S84Ssc/e
噂を信じちゃいけないよってか
0222デフォルトの名無しさん2015/10/17(土) 22:49:06.59ID:/7+5znpF
>>218
仮に4.5.1がサポートされてたらWin10に上げても検証しなくていいのか?
どう考えても.NETのバージョンなんかよりWin10へ上げること自体の方が遥かに問題になる可能性が高いだろ
0223デフォルトの名無しさん2015/10/17(土) 23:23:15.70ID:ixXAzgg3
>>222
Win10に上げるのは自己責任じゃねーの
4.5.2には上げざるを得ないから対応しろと言われかねない
0224デフォルトの名無しさん2015/10/18(日) 01:04:40.12ID:/DhocndZ
バージョンがうんたらとかいうよりも、マイクロソフトの信用がなくなってしまったという感じだよ
0225デフォルトの名無しさん2015/10/18(日) 12:54:14.13ID:i95LMF8H
interfaceと自動化テストを適切に使えば互換性なんて大した問題にならないだろ
C#使いはみんなアホなのか
0226デフォルトの名無しさん2015/10/18(日) 13:00:46.03ID:ivrEFHM8
自動テストなんてファンタジーですよ
✕C#使いはアホ
○日本のITはアホ
0227デフォルトの名無しさん2015/10/18(日) 13:26:26.09ID:rT2sf8QY
そんなことよりいつタプルとレコードとパターンマッチが使えるようになるんだ
0228デフォルトの名無しさん2015/10/18(日) 16:09:43.90ID:/DhocndZ
http://it.srad.jp/story/15/10/16/214241/
マイクロソフト工作員暴れすぎだろ、見境なくなってる
末期症状だな
0229デフォルトの名無しさん2015/10/18(日) 16:13:20.14ID:/DhocndZ
タプルもいいけど匿名型を型宣言させてほしい
こまごましたクラスで名前空間汚れる
0230デフォルトの名無しさん2015/10/18(日) 16:36:13.19ID:tIhTJhT+
>>228
重症の2ch脳だな。酷い馬鹿だ。
0231デフォルトの名無しさん2015/10/18(日) 17:53:35.54ID:EteQ/5LB
VSって#hogeの自動補充機能ないの?
0232デフォルトの名無しさん2015/10/18(日) 17:54:02.78ID:rT2sf8QY
匿名型をちゃんとタプルにしておけば「C#でTupleをnewするコードがクッッソダサイww」
とか馬鹿にされることもなかったのにな

アンダースは細かい使い勝手を改善するような変更に対してすごく保守的だった
拡張メソッドもstaticクラスでしか作れないみたいな嫌がらせを受けたままだし
0233デフォルトの名無しさん2015/10/18(日) 17:56:00.48ID:hcyPsAl4
拡張メソッドはそこいらにばらまかれるより一箇所にまとめとかれるほうがいい気がするからいまのままでいい
0234デフォルトの名無しさん2015/10/18(日) 18:22:39.24ID:rT2sf8QY
recordにパターンマッチがくればデータと手続きの分離が進むだろうから
データクラスと別に手続きクラスを用意するのは自然になっていくと思う
ただ手続きを探すためには圧倒的に.を打ってインテリセンスに名前が出たほうが便利だから
拡張メソッドは第一線で使われるものになっていくだろう

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

まあそれもタプルが来れば解決か
0235デフォルトの名無しさん2015/10/18(日) 21:06:11.60ID:O3txSH0M
ITの技術書籍って8割方意味なくない?
ほとんどはネットでググれば出てくるし

唯一金出して買うって書籍はせいぜい洋書の翻訳版くらいだよな?
0236デフォルトの名無しさん2015/10/18(日) 21:10:59.06ID:Fyu9IAr8
初心者にとって意味があるんだろ

自動アップデートが実装されない限り技術書籍は買う気にならないが…
0237デフォルトの名無しさん2015/10/18(日) 21:11:18.08ID:S+d/GOeW
経験に基づく実践的な内容なら価値はあるんだが、
大抵の技術書の著者って技術評価みたいなことしかしてない奴ばっかりだから
ほんとにネットでググったtipsが羅列されてるだけみたいなのが多い
0238デフォルトの名無しさん2015/10/18(日) 21:13:06.08ID:1K54QMcp
>>235
独学や素人だと結構本が理解の入り口になると思うよ
ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
著者が理系脳で、わからない人にわかるように表現されてない
わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
悲しいかな、購入者はわからない人がほとんどなのだけどね
で、ネットの情報や複数の本で補完せざるを得ない
そういう意味ではネットでいいというのもうなずけるけど・・・
0239デフォルトの名無しさん2015/10/18(日) 21:26:39.43ID:O3txSH0M
初心者にとっては意味があるってのも正直分からん
初心者だってググれば知りたい事出てくるんだから、書籍を買う意義の在処が無いでしょ
0240デフォルトの名無しさん2015/10/18(日) 21:41:31.99ID:CUxV7ZEj
>ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
>著者が理系脳で、わからない人にわかるように表現されてない
>わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・

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

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

ってのも割合としては多くなるな。
0241デフォルトの名無しさん2015/10/18(日) 22:47:11.00ID:Fyu9IAr8
初心者はぐぐらない
もしくはぐぐるためのキーワードを知らない
0242デフォルトの名無しさん2015/10/18(日) 23:12:02.85ID:0PlCKIO2
書籍のメリットは
情報が主題に沿ってまとまってる
その情報が編集されて主題にそって提示されている
の2点

つまり編集されていると言う事に意義を感じないなら価値はないな
0243デフォルトの名無しさん2015/10/18(日) 23:17:11.53ID:ZeZpTvFb
C#の文法とかデスクトップアプリに関してならネットの情報だけでも十分なんだが
ASP.NET関係だとネットだけだと断片的過ぎてな
初心者は本を買わざるを得ないだろう
おまけに文法本と違って本の選択肢も少ないという問題もある
0244デフォルトの名無しさん2015/10/18(日) 23:21:12.01ID:1MrL9p77
>>243
俺はこの一年でvb、c++、c#、asp.net、js、php、その他全部ネットで習得したよ。一冊も本は買っていない。
0245デフォルトの名無しさん2015/10/18(日) 23:26:42.33ID:/DhocndZ
サーバー側は、C#というかWindowsで組むことないからな、開発者の絶対数が少なくて情報もないって感じだ
自分も作っているのはデスクトップアプリオンリーだし

無料のレンタル鯖にC#で組めるcgiとかできたら嬉しいんだけどね(←時代に置いて行かれたおっさんw)
0246デフォルトの名無しさん2015/10/18(日) 23:30:25.33ID:ZeZpTvFb
>>245
来年登場予定のASP.NET5はリナックスでもMACでも動くという触れ込み
フレームワークがオープンソースの.NET COREに代わる
これで普及すればいいんだがな
0247デフォルトの名無しさん2015/10/18(日) 23:40:24.72ID:FU6fHshJ
ASP.NET5はMVC系ベースで以前のものとは互換性ないんだけどね
MVCの方でいいんなら今でもMonoで動くよ
0248デフォルトの名無しさん2015/10/18(日) 23:46:53.39ID:1MrL9p77
>>246
iisもlinuxに移植されるの?
0249デフォルトの名無しさん2015/10/18(日) 23:47:34.93ID:/DhocndZ
難しい事はええからpublic_html/binあたりにcs書いて、そいつがSystem.Console.OutにHTML書いたらOKにしてください
軽くperl書くノリくらいで、って感じですw
0250デフォルトの名無しさん2015/10/18(日) 23:50:52.54ID:ZeZpTvFb
>>248
iisが移植されることはないでしょ
むしろASP.NET5はwebサーバー依存じゃなくなってるのでアパッチでも何でも動くのが売り
0251デフォルトの名無しさん2015/10/18(日) 23:55:05.84ID:1MrL9p77
>>250
iisの設定画面に慣れているがapacheあまり知らないので不安だなあ
0252デフォルトの名無しさん2015/10/19(月) 00:26:53.06ID:VNgGX25K
入門書にしろ、入門サイトにしろ、初心者は余計なことを考え出して深みにはまる奴いるよなw
0253デフォルトの名無しさん2015/10/19(月) 00:29:12.84ID:kIMtGLET
ペアプログラミング()もそういう意味ではありなのかもな
0254デフォルトの名無しさん2015/10/19(月) 00:48:22.49ID:pvWtLvxK
>来年登場予定のASP.NET5はリナックスでも

何を言ってるんだこのばかは
0255デフォルトの名無しさん2015/10/19(月) 00:53:57.97ID:cS+kHoUQ
>>254
馬鹿はお前
0256デフォルトの名無しさん2015/10/19(月) 02:29:19.17ID:/AkA90sI
asp.net5のホスティングはkestrelがデファクトになりそうかな。
ただ、SSL関連とか、機能が足りないところがあるので、そこはnginxとかapache(+middleware)と組み合わせて使う必要があるかも。
0257デフォルトの名無しさん2015/10/19(月) 03:18:42.76ID:D6E0OVv3
メンドクサそうだな
0258デフォルトの名無しさん2015/10/19(月) 05:27:57.56ID:c9jTiL6V
Bitmapオブジェクトの使い方がよく分かりません
詳しく教えてください
(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています