「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part138
https://mevius.5ch.net/test/read.cgi/tech/1528194762/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
ふらっと C#,C♯,C#(初心者用) Part139
■ このスレッドは過去ログ倉庫に格納されています
2018/08/05(日) 19:55:44.50ID:tZmoj8I+
150デフォルトの名無しさん
2018/08/24(金) 17:54:49.70ID:g1+rhs2E151デフォルトの名無しさん
2018/08/24(金) 17:56:51.04ID:q0UJEScu Utilクラスってゴミ箱になりがちだから嫌いだわ。
計算処理クラスはなんとなく気持ちはわかるが。
delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの?
テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。
計算処理クラスはなんとなく気持ちはわかるが。
delegateでは微妙に表現力が足りないから特定のinterface実装したクラスを受けるようにして、その引数と型を渡せばネットワーク上のどこかでインスタンスが起こされて実行されるようにした、みたいなケースじゃないの?
テストではないけど、ジョブスケジューラがdll名と引数をキューから拾って、appdomain切って動的にそのクラスを実装したdllを読み込んで実行してくれる、みたいなのは作ったことある。
152デフォルトの名無しさん
2018/08/24(金) 18:01:21.93ID:g1+rhs2E153デフォルトの名無しさん
2018/08/24(金) 18:44:47.51ID:h3eX92xO154デフォルトの名無しさん
2018/08/24(金) 19:20:46.35ID:s18ZTF9u >>150
マジで底辺のリーダーってこんなんがほとんどなの?こええ
マジで底辺のリーダーってこんなんがほとんどなの?こええ
155デフォルトの名無しさん
2018/08/24(金) 19:36:31.86ID:n2aXOJxU staticなナントカUtilクラスはJavaドカが好むよねー
staticなのに内部でインフラ異存しまくっててキレそうになるよ
staticなのに内部でインフラ異存しまくっててキレそうになるよ
156デフォルトの名無しさん
2018/08/24(金) 22:32:41.02ID:KbP5R+D4 失礼します。
ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?
ASP.NET MVC又はASP.NET MVC CoreのRazorビューから匿名型がサポートされない理由を説明してくださる方居ますか?
157デフォルトの名無しさん
2018/08/24(金) 22:36:20.82ID:usF07bpd158デフォルトの名無しさん
2018/08/25(土) 00:04:54.82ID:K7SavMc/ >>157
はい。
.frameworkがpoorなのでサポート出来ない事が私には理解できません。
こちらのurlの記事では普通にプロパティで取得出来ているように見えますが…
http://architect-wat.hatenablog.jp/entry/20130501/1367415654
はい。
.frameworkがpoorなのでサポート出来ない事が私には理解できません。
こちらのurlの記事では普通にプロパティで取得出来ているように見えますが…
http://architect-wat.hatenablog.jp/entry/20130501/1367415654
159デフォルトの名無しさん
2018/08/25(土) 09:58:42.90ID:uF3Ar+0r >>158
匿名型なんて使わなきゃいい
匿名型なんて使わなきゃいい
160デフォルトの名無しさん
2018/08/25(土) 19:34:07.64ID:ZJ6IWHAy c#アプリって簡単に逆コンパイルで簡単にソース見れちゃうじゃん?
例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?
例えばAPIキーとかハードコーディングしてもしてなくても抜き出せてしまうけどどうすんの?
161デフォルトの名無しさん
2018/08/25(土) 19:41:36.20ID:ajbZjNWE >>160
リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ
リバースエンジニアリングはどのくらいの労力がかかるかだけの違いで解析できないものなんかないから諦めろ
162デフォルトの名無しさん
2018/08/25(土) 19:57:01.93ID:Z58Bgt4H >>160
ハッシュ値使うねん
ハッシュ値使うねん
163デフォルトの名無しさん
2018/08/25(土) 20:08:24.14ID:6fvgv2wi >>162
ハッシュからAPIキーは復元できないでしょ
ハッシュからAPIキーは復元できないでしょ
164デフォルトの名無しさん
2018/08/25(土) 20:21:29.85ID:nj06+sqx >>160
環境変数
環境変数
165デフォルトの名無しさん
2018/08/25(土) 20:50:49.58ID:J4BiRy9W 200週くらい周回遅れの話題だ
166デフォルトの名無しさん
2018/08/25(土) 21:51:49.34ID:uGtRYhlb >>163
間接的に別なのから取得するとか
間接的に別なのから取得するとか
167デフォルトの名無しさん
2018/08/25(土) 21:53:27.00ID:Y3DnwOBx168デフォルトの名無しさん
2018/08/25(土) 21:53:40.13ID:Y3DnwOBx >>166
どういうこと?
どういうこと?
169デフォルトの名無しさん
2018/08/26(日) 09:06:38.21ID:mvt+Dc+2170デフォルトの名無しさん
2018/08/26(日) 09:44:13.36ID:O9adGcKd171デフォルトの名無しさん
2018/08/26(日) 12:36:40.81ID:KYhaaDP0172デフォルトの名無しさん
2018/08/26(日) 12:41:52.49ID:d3emHXQQ >>170
サーバーから貰うときの認証は?
サーバーから貰うときの認証は?
173デフォルトの名無しさん
2018/08/26(日) 12:45:24.17ID:MAg8NxfR >>172
認証のパスワードなどの手続を登録した人に別途配布
認証のパスワードなどの手続を登録した人に別途配布
174デフォルトの名無しさん
2018/08/26(日) 12:48:09.71ID:mLZLsxB6 サーバーから受け取るようにしたとしてもクライアントが丸見えなら同じ方法でサーバーからキー抜けるだろ
ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする
そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする
漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ
ちゃんとやるなら、開発者だけが知ってる秘密鍵でシリアルキー作ってクライアントごとに払い出すようにする
そしてサーバー側でシリアルキーに基づいてクライアントを識別し、クライアント単位でクォータや権限の制御をする
漏れる前提で他のクライアントに影響が出ないように設計するのが基本的な戦略だよ
175デフォルトの名無しさん
2018/08/26(日) 12:55:18.75ID:IHY0+SV3 どうでもいいけど、もともとの質問の趣旨は
ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの?
それは無理、で終わりだと思うけど。
ネイティブコードと同程度の秘匿性でバイナリにデータを隠せるかじゃないの?
それは無理、で終わりだと思うけど。
176デフォルトの名無しさん
2018/08/26(日) 12:56:47.03ID:g9QDbTAC APIキーって5chのAPIみたいなの想像してたけど違うの?
それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど
それだとクライアント毎に払い出しても誰か一人のがばれたら使用権貰えちゃうけど
177デフォルトの名無しさん
2018/08/26(日) 12:57:13.81ID:mLZLsxB6 >>175
APIキーを抜くくらいならネイティブでも難しくないよ
APIキーを抜くくらいならネイティブでも難しくないよ
178デフォルトの名無しさん
2018/08/26(日) 13:13:33.45ID:mLZLsxB6 >>176
それで困るのは5chではなくブラウザの開発者だろ?
5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、
そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。
ユーザー単位で払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。
それで困るのは5chではなくブラウザの開発者だろ?
5chにとっては、特定のクライアント(この場合は開発者単位な)からの不正な大量投稿があれば、
そのクライアント(開発者)を丸ごとBANしてしまえばいい。他のクライアント(開発者)には影響しない。それを防ぐ責任はあくまでクライアントの開発者にある。
ユーザー単位で払い出すにしろ開発者単位て払い出すにしろ、個別に払い出すことで責任をAPIキーを払い出された側に転嫁できるんだよ。
179デフォルトの名無しさん
2018/08/26(日) 13:14:28.64ID:fHWcXfSA >>178
なるほど
なるほど
180デフォルトの名無しさん
2018/08/26(日) 13:22:20.16ID:KYhaaDP0 ソースコード丸見えだから、APIキーがどこにあるかわかるよね
そうやって海賊版作れてしまうわけだ
そうやって海賊版作れてしまうわけだ
181デフォルトの名無しさん
2018/08/26(日) 14:46:35.94ID:VBsyc88B 流石にAPIキーを普通に文字列で書くアホはnativeでも居ないだろ。
難読化する。
ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。
カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。
ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。
難読化する。
ソースコードが丸見えだとしても問題無い気はする。どーせnativeでも逆アセンブルするんだし。
カジュアルな対策なら、c#には逆コンパイルされないILコード使って復号ロジック書くべきかと思うな。
ちゃんとやるならドングルかライセンスサーバのどっちかじゃねえかな。
182デフォルトの名無しさん
2018/08/26(日) 16:44:19.57ID:Aux3ZmsD nativeと同程度の隠匿で良いならそこだけnativeにすれば良いだけやん
183デフォルトの名無しさん
2018/08/26(日) 16:46:40.21ID:UH8BRHfz oauthのキーなら速攻でばれるし文字列でそのまま書くな。難読かしても意味ねぇし。やるだけ無駄。
184デフォルトの名無しさん
2018/08/26(日) 16:48:17.70ID:7VY92v0a DBのパスワードとかソースに直書きしてるわ
ハッシュにしてもどこで復号すればいいのか
ハッシュにしてもどこで復号すればいいのか
185デフォルトの名無しさん
2018/08/26(日) 17:33:04.42ID:Lq+jppE1 自前でやるだけのセキュリティのスキルがあるとこは珍しい
素直にASP.NET Identity + IdentityServerでOIDC使っとくのが懸命な判断
素直にASP.NET Identity + IdentityServerでOIDC使っとくのが懸命な判断
186デフォルトの名無しさん
2018/08/26(日) 17:45:57.13ID:6lhNHki6 こういう大事な部分を手軽で強固なセキュリティとしてなんでMSは用意しておかないんだ?
187デフォルトの名無しさん
2018/08/26(日) 17:47:36.13ID:vKa62JvF はい意味不明
OIDCってアプリ側がユーザーの認証認可をする仕組みだぞ?
それをどうクライアントアプリのAPIキーの隠蔽に使うのか教えてくれ
OIDCってアプリ側がユーザーの認証認可をする仕組みだぞ?
それをどうクライアントアプリのAPIキーの隠蔽に使うのか教えてくれ
188デフォルトの名無しさん
2018/08/26(日) 17:47:37.20ID:86UvKUWS >>186
もうすでにC#関係なくなっているが手軽で強固なやり方ってどんなことよ?
もうすでにC#関係なくなっているが手軽で強固なやり方ってどんなことよ?
189デフォルトの名無しさん
2018/08/26(日) 17:49:20.77ID:vKa62JvF190デフォルトの名無しさん
2018/08/26(日) 17:49:59.20ID:6lhNHki6 まあそれよりもソースを復元できるのが問題だわな
191デフォルトの名無しさん
2018/08/26(日) 17:50:52.91ID:O9adGcKd192デフォルトの名無しさん
2018/08/26(日) 17:51:50.11ID:86UvKUWS >>190
中間言語形式だけでなくスクリプト言語も否定する気かw
中間言語形式だけでなくスクリプト言語も否定する気かw
193デフォルトの名無しさん
2018/08/26(日) 17:54:18.49ID:Lq+jppE1 >>187
チュートリアルもやったことないのかよ…
チュートリアルもやったことないのかよ…
194デフォルトの名無しさん
2018/08/26(日) 17:56:14.36ID:vKa62JvF195デフォルトの名無しさん
2018/08/26(日) 17:57:02.40ID:6lhNHki6 >>192
サーバー型はビジネスロジックがサーバー内にあるからそこで防げるけど、c#アプリは無理じゃん
サーバー型はビジネスロジックがサーバー内にあるからそこで防げるけど、c#アプリは無理じゃん
196デフォルトの名無しさん
2018/08/26(日) 18:00:17.07ID:O9adGcKd197デフォルトの名無しさん
2018/08/26(日) 18:02:46.79ID:6lhNHki6 >>196
UWPじゃなくFormアプリでおねがい
UWPじゃなくFormアプリでおねがい
198デフォルトの名無しさん
2018/08/26(日) 18:04:53.73ID:vKa62JvF >>196
これユーザーが入力した認証情報を安全に保持するのと、サーバー側のリソースに関するユーザーの認証認可をする話だよね
開発者の機密情報を安全にクライアントに持たせるのとは全く別の問題だよ(そしてそれは原理的に不可能)
これユーザーが入力した認証情報を安全に保持するのと、サーバー側のリソースに関するユーザーの認証認可をする話だよね
開発者の機密情報を安全にクライアントに持たせるのとは全く別の問題だよ(そしてそれは原理的に不可能)
199198
2018/08/26(日) 18:15:55.92ID:vKa62JvF もちろんクライアント側で復号する必要がなくて、単にデータストアをクライアント側に置きたいだけなら、サーバー側で暗号化すればいいだけだよ
原理的に不可能なのはクライアント側でも機密情報を復号して使う必要がある場合の話ね
原理的に不可能なのはクライアント側でも機密情報を復号して使う必要がある場合の話ね
200デフォルトの名無しさん
2018/08/26(日) 18:22:46.80ID:wR7TFJf0 こんな解説しないと分からないってのが信じられん
201デフォルトの名無しさん
2018/08/26(日) 18:40:28.29ID:O9adGcKd >>198
だから「それなり」って書いてあるだろ
だから「それなり」って書いてあるだろ
202デフォルトの名無しさん
2018/08/26(日) 23:06:54.05ID:BDbiNYg/ Dapperを使用するにあたり、下記の「DAO」クラスの「SelectDAO」メソッドの
戻り値を抽象的に表現できれば、SQL与えるだけで共通に使えるのになと思っているのですが
戻り値を下記のList<IAB>のように書く方法はあるでしょうか?
interface IAB{ }
public class A : IAB { public string nen{ get; set; } }
public class B : IAB { public string nen{ get; set; } }
public class DAO
{
public List<IAB> SelectDAO(string sql)
{
System.Data.IDbConnection _con = new SqlConnection("接続文字列");
return (List<IAB>)_con.Query<IAB>(sql);//DynamicMethodに対する型オーナーが無効です。
と怒られます。
}
}
戻り値を抽象的に表現できれば、SQL与えるだけで共通に使えるのになと思っているのですが
戻り値を下記のList<IAB>のように書く方法はあるでしょうか?
interface IAB{ }
public class A : IAB { public string nen{ get; set; } }
public class B : IAB { public string nen{ get; set; } }
public class DAO
{
public List<IAB> SelectDAO(string sql)
{
System.Data.IDbConnection _con = new SqlConnection("接続文字列");
return (List<IAB>)_con.Query<IAB>(sql);//DynamicMethodに対する型オーナーが無効です。
と怒られます。
}
}
203デフォルトの名無しさん
2018/08/26(日) 23:10:18.71ID:iDr2keD8 >>202
いやSQLを隠蔽するのがDAOなのにSQL渡したらダメだろ…
いやSQLを隠蔽するのがDAOなのにSQL渡したらダメだろ…
204デフォルトの名無しさん
2018/08/26(日) 23:12:59.95ID:hANAm2gW ようするにdaoなんか使わずに
odbc使いなさいということ
odbc使いなさいということ
205デフォルトの名無しさん
2018/08/26(日) 23:15:38.55ID:qu/vhMXg >>204
ODBCだなんて何十年前の話だよ…
ODBCだなんて何十年前の話だよ…
206デフォルトの名無しさん
2018/08/26(日) 23:26:06.62ID:HvpvLn4I207デフォルトの名無しさん
2018/08/26(日) 23:30:34.69ID:BDbiNYg/208デフォルトの名無しさん
2018/08/26(日) 23:32:55.01ID:acagJbyI API抜かれるってどのシーンで警戒してるの?サーバー上でアプリ起動してるとき?
209デフォルトの名無しさん
2018/08/26(日) 23:33:30.52ID:8W/FdQms 5chせんぶら
210デフォルトの名無しさん
2018/08/27(月) 10:42:42.81ID:YXkmN521 >>202
最終的にDapperも何らかのインスタンスをnewしないといけないのに
IABだけ渡されても何作ればいいのか分からないだろ
素直に
public List<T> SelectDAO<T>(string sql) where T : IAB
とかに
というかSelectDAOを呼び出した側はメンバの存在しないIABを使って何をすればいいのか
最終的にDapperも何らかのインスタンスをnewしないといけないのに
IABだけ渡されても何作ればいいのか分からないだろ
素直に
public List<T> SelectDAO<T>(string sql) where T : IAB
とかに
というかSelectDAOを呼び出した側はメンバの存在しないIABを使って何をすればいいのか
211デフォルトの名無しさん
2018/08/27(月) 13:05:39.06ID:97nSTlug >>207
いやそういう問題じゃなくて、SQLを書くんだったらDAOの中で書くんだよ
外からSelectクエリを文字列で受け取るってそれ使う側がDBのテーブル構造を知ってないとできないだろ
データストアの詳細を全く隠蔽できてない
いやそういう問題じゃなくて、SQLを書くんだったらDAOの中で書くんだよ
外からSelectクエリを文字列で受け取るってそれ使う側がDBのテーブル構造を知ってないとできないだろ
データストアの詳細を全く隠蔽できてない
212デフォルトの名無しさん
2018/08/27(月) 13:51:51.69ID:eRxM3k20 Dapperの実装ってこんな大変だったのか
213デフォルトの名無しさん
2018/08/27(月) 17:39:21.68ID:dQ3pJlXI214デフォルトの名無しさん
2018/08/27(月) 20:08:24.29ID:LmPAdMN0 VS2017WindowsFormsAppの実行ファイルを作成したのですが、
実行ファイルをzip圧縮するとサイズが10分の1以下になります
小さくなりすぎな気がするのですが正常の範囲で問題ありませんでしょうか?
または、実行ファイルが肥大?(余分な情報が含まれている等)していたりするのでしょうか?
なにかVS上で出来ることはありますか?
実行ファイルをzip圧縮するとサイズが10分の1以下になります
小さくなりすぎな気がするのですが正常の範囲で問題ありませんでしょうか?
または、実行ファイルが肥大?(余分な情報が含まれている等)していたりするのでしょうか?
なにかVS上で出来ることはありますか?
215デフォルトの名無しさん
2018/08/27(月) 20:15:33.37ID:RlI7Tzg3216デフォルトの名無しさん
2018/08/27(月) 20:39:37.08ID:liNpwcvg プログラミング初心者です
visual studio for mac2017をインストールしてC#を覚えたいんだけど、どうやって学習したらいいのか教えてください!
探してもなかなかいい日本語の学習動画やサイトがなくて、、、
visual studio for mac2017をインストールしてC#を覚えたいんだけど、どうやって学習したらいいのか教えてください!
探してもなかなかいい日本語の学習動画やサイトがなくて、、、
217デフォルトの名無しさん
2018/08/27(月) 20:46:49.73ID:lvpUeXXJ 未確認飛行が定番じゃないかね
218デフォルトの名無しさん
2018/08/27(月) 21:10:56.77ID:LmPAdMN0 >>215
ありがとうございます
1MBほどのファイルが80KBほどになるので、小さくなりすぎではないかと思いまして…
生成される実行ファイルが、プロジェクトのある時点から1MBほどに大きくなったような記憶もあります
読み込み差し替えした画像リソースが上手く外れていないのかなと想像したりしますが…
もうちょっと色々自分で調査してみます
ありがとうございます
1MBほどのファイルが80KBほどになるので、小さくなりすぎではないかと思いまして…
生成される実行ファイルが、プロジェクトのある時点から1MBほどに大きくなったような記憶もあります
読み込み差し替えした画像リソースが上手く外れていないのかなと想像したりしますが…
もうちょっと色々自分で調査してみます
219デフォルトの名無しさん
2018/08/27(月) 21:15:57.46ID:RlI7Tzg3220デフォルトの名無しさん
2018/08/27(月) 22:15:24.67ID:SLuEHwvX >>219
コードは5000行ほどですね。試しにプロジェクトを新規で作り直して中身を移し替えてみます
エクスポートインポート的なのがあれば良いのですがVS標準ではないみたいなので
大変ですが手動でやるしかないですが
コードは5000行ほどですね。試しにプロジェクトを新規で作り直して中身を移し替えてみます
エクスポートインポート的なのがあれば良いのですがVS標準ではないみたいなので
大変ですが手動でやるしかないですが
221デフォルトの名無しさん
2018/08/27(月) 22:26:04.85ID:liNpwcvg >>217
ありがとうございます!!!
ありがとうございます!!!
222デフォルトの名無しさん
2018/08/27(月) 22:36:37.03ID:HUaFIhtM >>217
あそこほんと神
あそこほんと神
223デフォルトの名無しさん
2018/08/27(月) 23:34:18.00ID:nPk8x20U OSデフォルト環境だとsn.exeがインストールされてないのか
隔離環境で作ったアセンブリにストロングネームつけたい時ってみんなどうしてんだ?
隔離環境で作ったアセンブリにストロングネームつけたい時ってみんなどうしてんだ?
224デフォルトの名無しさん
2018/08/27(月) 23:53:32.54ID:E9g9LiKW225デフォルトの名無しさん
2018/08/27(月) 23:57:11.03ID:rJOuuZ33 まあそうだね
C#でプログラミング入門って正直キツいと思うし、そういうコンセプトのところは
たぶんないんじゃないか
C#でプログラミング入門って正直キツいと思うし、そういうコンセプトのところは
たぶんないんじゃないか
226デフォルトの名無しさん
2018/08/27(月) 23:58:55.68ID:m5aHtIH2227デフォルトの名無しさん
2018/08/28(火) 00:04:55.80ID:5gce9PvO プログラミングはDelphi6からだったなー
\5,000でパッケージを買ったすぐ後に、無料版のDL提供が始まった思い出
高校生にとって\5,000は地味に痛かった……
\5,000でパッケージを買ったすぐ後に、無料版のDL提供が始まった思い出
高校生にとって\5,000は地味に痛かった……
228デフォルトの名無しさん
2018/08/28(火) 00:10:26.77ID:ym/+5T0Q229デフォルトの名無しさん
2018/08/28(火) 00:11:23.06ID:9uK3R3xF Androidもjavaのコンパイル通すだけなら
230デフォルトの名無しさん
2018/08/28(火) 00:36:01.05ID:a3yKcaCh 英語得意ではなくてプログラミング言語の経験が全くないのなら
本を買う方がいいような気もする・・
本を買う方がいいような気もする・・
231デフォルトの名無しさん
2018/08/28(火) 03:46:31.78ID:CqD+kceR 猫でも判るで十分じゃね
232デフォルトの名無しさん
2018/08/28(火) 07:03:31.88ID:CaCX57FK 神サイトはどぼんでしょ
あのサイトのコピペがC#する日本ITドカタを支えてる
あのサイトのコピペがC#する日本ITドカタを支えてる
233デフォルトの名無しさん
2018/08/28(火) 07:14:31.08ID:TOj+sTb1 そこもう情報が古くね
234デフォルトの名無しさん
2018/08/28(火) 12:15:17.24ID:psOOFlwe >>228
細かいことよくわかんないけどなんとなくコピペで動くからいいやとVB的に使うならそれでいいけど、
言語を一から体系的に習得しようとするとC#はかなり大変だよ
継続的に進化してるから実感がないかもしれないが、今のC#はもはやメジャーな言語の中ではC++に次いでトップクラスに複雑な部類
細かいことよくわかんないけどなんとなくコピペで動くからいいやとVB的に使うならそれでいいけど、
言語を一から体系的に習得しようとするとC#はかなり大変だよ
継続的に進化してるから実感がないかもしれないが、今のC#はもはやメジャーな言語の中ではC++に次いでトップクラスに複雑な部類
235デフォルトの名無しさん
2018/08/28(火) 12:27:46.49ID:Xl5gotOf 仕事でも趣味でも体系的に一から学ぶとかやっていたら何もできなくなる
自分の必要な部分以外勉強するのはもはや研究者
自分の必要な部分以外勉強するのはもはや研究者
236デフォルトの名無しさん
2018/08/28(火) 12:31:32.32ID:fGWTaV2a C#って、言語仕様で難し目なのはyield, dynamic, awaitくらいな気がする
複数ある実行環境や巨大なフレームワーク、コンパイル後のILの話まで含めたら複雑だと思う
複数ある実行環境や巨大なフレームワーク、コンパイル後のILの話まで含めたら複雑だと思う
237デフォルトの名無しさん
2018/08/28(火) 12:39:40.35ID:wSuYfii2 >>234
具体的に
具体的に
238デフォルトの名無しさん
2018/08/28(火) 13:10:00.14ID:psOOFlwe >>237
たとえば簡単なところでいうと、読み取り専用プロパティの定義には今何種類のバリエーションがあるか知ってる?
int Hoge { get { return 5; } }
int Hoge { get => 5; }
int Hoge => 5;
int Hoge { get; private set; } = 5;
int Hoge { get; } = 5;
これらにどういう違いがあってどういうときにどれを使うべきか初学者向けに説明できる?
たとえば簡単なところでいうと、読み取り専用プロパティの定義には今何種類のバリエーションがあるか知ってる?
int Hoge { get { return 5; } }
int Hoge { get => 5; }
int Hoge => 5;
int Hoge { get; private set; } = 5;
int Hoge { get; } = 5;
これらにどういう違いがあってどういうときにどれを使うべきか初学者向けに説明できる?
239デフォルトの名無しさん
2018/08/28(火) 13:12:12.91ID:H5BH2HV+240デフォルトの名無しさん
2018/08/28(火) 13:14:07.70ID:5WHkkAct C++やったことないから知らないどC++は基本的なことも複雑なイメージ
C#は極めるほど複雑なイメージ
C#は極めるほど複雑なイメージ
241デフォルトの名無しさん
2018/08/28(火) 13:14:21.36ID:5WHkkAct 基本はかんたん
242デフォルトの名無しさん
2018/08/28(火) 13:15:27.95ID:5WHkkAct >>238の例なら初心者は一番上だけ知っとけばいい
243デフォルトの名無しさん
2018/08/28(火) 13:20:49.83ID:onl38Ff8 複雑なことができると学習が困難
すべてを学習すること前提ならそうかもしれん
すべてを学習すること前提ならそうかもしれん
244デフォルトの名無しさん
2018/08/28(火) 13:55:05.69ID:8egnCxzp245デフォルトの名無しさん
2018/08/28(火) 14:22:59.40ID:MmXTTGRL >>244
>volatile がある場合とない場合で動作が変わるコード
難しいんじゃないかなあ
(1) 実行儒所を入れ替える
(2) 変数(メモリ)に直接アクセスしない
みたいな最適化がどういうケースでコンパイラによって行われるか、たぶん誰もよく知らないw
だけでなく、古い記事だけど
http://www.itmedia.co.jp/enterprise/articles/0503/23/news086_4.html
↑にあるように、CPUレベルの最適化はCPUに依存する
>volatile がある場合とない場合で動作が変わるコード
難しいんじゃないかなあ
(1) 実行儒所を入れ替える
(2) 変数(メモリ)に直接アクセスしない
みたいな最適化がどういうケースでコンパイラによって行われるか、たぶん誰もよく知らないw
だけでなく、古い記事だけど
http://www.itmedia.co.jp/enterprise/articles/0503/23/news086_4.html
↑にあるように、CPUレベルの最適化はCPUに依存する
246デフォルトの名無しさん
2018/08/28(火) 14:32:18.53ID:sGx9mZW+ 使ったことなくてググったけどそもそものvolatileに対する理解がなんか違う気がする
http://d.hatena.ne.jp/dotnetmemo/touch/20111023/1319380181
http://d.hatena.ne.jp/dotnetmemo/touch/20111023/1319380181
247デフォルトの名無しさん
2018/08/28(火) 14:33:27.71ID:d5vKjLdu >>125
volitateは「この変数はマルチスレッドで使うよ」と明示することによってシングルスレッドの場合にしか効果的ではないような実行速度の最適化技術を使わせないようにするだけであって、排他制御を自動で行うものではないのでは?
volitateは「この変数はマルチスレッドで使うよ」と明示することによってシングルスレッドの場合にしか効果的ではないような実行速度の最適化技術を使わせないようにするだけであって、排他制御を自動で行うものではないのでは?
248デフォルトの名無しさん
2018/08/28(火) 14:53:49.79ID:8egnCxzp >>245-247
皆さんレスどうもありがとうございます!
>>245
> >volatile がある場合とない場合で動作が変わるコード
> 難しいんじゃないかなあ
ありがとうございます。
ということは逆に言えば、volatile が無いことによって想定外の最適化が行われて
不具合につながること自体が起こりにくいものだと考えてもいいのでしょうか。
ただ仮にそうだとしても、お作法的には複数のスレッドからアクセスされる可能性のある
フィールドはすべてに volatile を付けるべきなのかなとも思うのですが、
CS0420 : volatile フィールドへの参照は、volatile として扱われません。
のような警告がうるさくてあまり volatile をつけたくないときもあるので悩んでしまいます。
皆さんレスどうもありがとうございます!
>>245
> >volatile がある場合とない場合で動作が変わるコード
> 難しいんじゃないかなあ
ありがとうございます。
ということは逆に言えば、volatile が無いことによって想定外の最適化が行われて
不具合につながること自体が起こりにくいものだと考えてもいいのでしょうか。
ただ仮にそうだとしても、お作法的には複数のスレッドからアクセスされる可能性のある
フィールドはすべてに volatile を付けるべきなのかなとも思うのですが、
CS0420 : volatile フィールドへの参照は、volatile として扱われません。
のような警告がうるさくてあまり volatile をつけたくないときもあるので悩んでしまいます。
249デフォルトの名無しさん
2018/08/28(火) 14:54:59.71ID:8egnCxzp >>246
参考ページのご紹介どうもありがとうございます。
実はそのページも読んでみたのですが
> ちなみに後者の記事では実際にvolatileをつけないと問題のあるコードが記載されている。
> 以下のコードをReleaseモードでビルドして、デバッグなしで実行すると終了しない。
> volatile をつける(static volatile bool complete = false;)と正しく終了する。
という記述に反して、私の環境(Win10, .NET Framework 4.7.1)では
volatile がなくても終了してしまうようです。
そもそも私にはそのページのコードと >>125 のコードが本質的に同じものに見えてしまい、
> volatileに対する理解がなんか違う気がする
とおっしゃることの真意が理解できていないのですが、
何かお気づきのことがあれば教えていただけないでしょうか。
>>247
レスありがとうございます。
つまり、volatite の有無で実行速度に差が出ることはあっても
計算結果が変わることはない、ということでしょうか。
そうであるなら気が楽なのですが、いくつかのページやここでの他の方のレスを読むと
どうしても確信が持てずにいます。
参考ページのご紹介どうもありがとうございます。
実はそのページも読んでみたのですが
> ちなみに後者の記事では実際にvolatileをつけないと問題のあるコードが記載されている。
> 以下のコードをReleaseモードでビルドして、デバッグなしで実行すると終了しない。
> volatile をつける(static volatile bool complete = false;)と正しく終了する。
という記述に反して、私の環境(Win10, .NET Framework 4.7.1)では
volatile がなくても終了してしまうようです。
そもそも私にはそのページのコードと >>125 のコードが本質的に同じものに見えてしまい、
> volatileに対する理解がなんか違う気がする
とおっしゃることの真意が理解できていないのですが、
何かお気づきのことがあれば教えていただけないでしょうか。
>>247
レスありがとうございます。
つまり、volatite の有無で実行速度に差が出ることはあっても
計算結果が変わることはない、ということでしょうか。
そうであるなら気が楽なのですが、いくつかのページやここでの他の方のレスを読むと
どうしても確信が持てずにいます。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 万引きJC「すいません許してください!何でもしますから!」←どうする?
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 5時だから窓から5回ちんこ出した
- 「黙らせてやろうと思った」自宅マンション10階から高校テニスコート内の女子生徒目掛けて貯金箱を投擲した女の子、殺人未遂で逮捕 [399583221]
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
