C#, C♯, C#相談室 Part95
■ このスレッドは過去ログ倉庫に格納されています
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part94
http://mevius.2ch.net/test/read.cgi/tech/1492843013/
■次スレは>>970が建てる事
建てられない場合は他を指定する事。 >>69
何に比べてレスポンスが悪いの?
初回が遅いのはどうしようもない >>69
EFはサーバーで長時間にわたって大量のメモリ食わせて使うもんだ >>81
リクエストオブジェクトにCookieContextオブジェクト入れる&リダイレクトをオフで取れた ASP.NET MVCでControllerの中のソースコードが増えて来て混乱気味なのだが、
どうやって整理すればいいのかな? >>84
モデルって言うのは本来は何を入れるところなの?
細々とした色んな処理を書いてもいいの? >>83
インプットを基にして処理を振り分けて、得た結果をViewに返すだけじゃないの? >>85
モデルにはすべてのロジックを実装するのが正しい
コントローラの役割はリクエストの内容を受け取りモデルに投げて結果をVMに入れて返すだけ ASPって出番ある?みんな仕事の案件でやってるの? WebFormsの案件はドカタだとWinFormsより多いだろ
うちはMVCでSaaSやってる クラスのメンバのプロパティを小文字で始めると
メッセージ IDE1006 名前指定の規則違反: これらの単語は、大文字で始まらなければなりません:
と出るのだが、なんで小文字だとエラーなの?
世の中では、大文字で始める習慣があるの? VS2017ならデフォルトで提案事項になっているがエラーになるのは自分で設定したせいでは で、それはエラーなの?
メッセージが出たら警告だろうが何だろうが全部エラーって言う人も多いけど >>97
自分でいじってないなら初期設定決めたMSの人では class A{
class B{
class C{
}
}
}
みたいに三重くらいになると、自分でもわけ分からなくなって来るんですが、
世間では三重くらいは普通ですか? >>100
内部クラスって表記しやすいだけでそれ以外のメリットあるのかね? javaの人は良く使うけど
スコープの問題だけだから本来は使わないでもよさそう 内部クラスはたまーーーに使うけど3重なんて一度もしたことないな >>100
static classだとよくやるけど
static class My{
static class Hoge{
static class Config{
}
}
}
My.Hoge.Configのように使える
でも3重は使わないな Javaだと1クラス1ファイル
客先の規約で配置できるファイルに制限があると内部クラスを使わざるをえない enum使いにくいから代わりにstatic class乱用してるわ >>109
後で要素増えたら参照先全部ビルドし直さなきゃならんあたり .Net Core 2.0では、だいぶん.NetFrameworkの実装がカバーされたと聞きました。
https://raw.githubusercontent.com/dotnet/standard/master/docs/versions/netstandard2.0_ref.md
これを見る限りでは、System.IO.StreamやSystem.IO.FileInfo、ISerializableなど
もあります。これらをUWPやASP.NET Coreでも使えるようになるという理解でいいでしょうか。 >>113
javaとは思想が違うからな
どうしてもメソッド使いたけりゃ拡張メソッド書けばいいだけのこと enumにメソッドを定義できないとenumスイッチがあちこちに書かれてシステムが汚染される
そんなことになるぐらいならenumは言語機能から追放したほうがいい >>116
メソッドが使えるとスッキリ書けるの?
例を教えて >>112
逆に聞きたいんだけど、どういう理解があると思ったの? >>117
Javaのenumのメソッドはポリモーフィック
なのでステートやストラテジーなど様々な応用が利く enumはどうせ定数に置き換えられるんだから、最初から定数で書いとけばいいな >>107
javaって、内部クラスも1ファイルとして出力されるんじゃなかったっけ? class A,B,C,...が有って
void func<T>(...){...}
みたいな関数を
func<A>(...);
func<B>(...);
func<C>(...);
みたいに順番に実行したい場合、
forループ使って書ける? >>122
>>107はソースの話やで?
オブジェクトはまとめたらいいだけだし >>123
var list = new dynamic[] { a, b, c };
foreach (var x in list)
func(x);
引数もインスタンスも無いならreflection >>125
なるほど。
dnamic使うしか無いんですね? >>127
reflectionと言うのでやる方法を教えて下さい >>119
APIはあっても、実際は例外投げるんじゃないかとか。
StreamやISerializableなど今まで散々レガシー扱いされてたのに、
すんなり実装されたのだったら、今までは何だったのかと思ってしまって。 >>124
「配置できるファイルに〜」のところもソースファイルの話だったか、失礼した >>126
リフレクション
そもそも用途がわからんけど >>130
最初のリンクがそもそも.NETStandardの話なんだけど、.NETStandardとは何か知ってれば(最低限ググれば)前者は迷う余地がない
後者は経緯知らないけどレガシーが実装されたらだめという理由がない
…と考える人が大多数だと思う C#でちょっとした文字列の連結を行う場合、+がいいのかFormatがいいのかReplaceがいいのかStringBuilderを使うのがいいのか悩んでます
どれが一番いいのでしょうか?
1. string value = A + "-" + B;
2. string value = string.Format({0}-{1}, A, B);
3. string value = "{A}-{B}".Replace("{A}", A).Replace("{B}, B);
4. StringBuilder sb = new StringBuilder();
sb.Append(A);
sb.Append("-");
sb.Append(B); こんな細かいことで悩んでいたら禿げるわ
それぞれにどれだけの差が出てくるか考えろよ とりあえず、環境が許すなら141、駄目なら139の1 連結ならいつもは分かりやすさ優先で+
実際に扱うデータで使ってみて遅いと感じたらStringBuilderに変えてるわ
置き換えは置き換えの時だし、フォーマット形式が必要と感じたらそれ使うし
悩むのかこれ…コーディング終わらんやろ… 最初はくだらない事に悩むからしょうがない。直に、開き直るからそれまでとことん悩め。 >>145
こういうので悩みだすのはスキルが伸びず閉塞感に陥って逃げ道探しているときだw StringBuilder必要なのはループで回す時くらいやろ
固定回数なら最適化されるんちゃうか
しらんけど 改行したい時はsb.AppendLine使う
var s = $@"hello
{A}
world";
別にこれでもいいけど、インデントが気持ち悪い 数個程度の定数個の結合にStringBuilderは無いね
@""で改行入れたときの改行コードってソースコードの改行コードに依存するんかな StringBuilder使うのは基本、ループ内で文字列結合するときだけだな と書くと、問題あるな。あるメソッド内でループしてないから普通に文字列結合してても、
そのメソッドを使う方でループしてメソッド呼び出されたら・・
ということでなんでもない。 パフォーマンスは大差ないので可読性で選ぶ
となると
定数個なら+
動的ならlinqとJoin public override と
override public とでは、どっちが普通ですか? >>156
じゃあstatic使う場合は
どこに入れるべきですか? EF Core + MariaDBで行ロックをするにはどうしたらいいですか? >>159
EFに明示的なロックは要らん
保存するときに他の変更があれば保存は失敗する EFは基本、楽観ロックだからね。
自分が更新するデータは誰も変更しないだろうということで楽観的に考えて行ロックを取得しない。
で、実際の更新時に、保存しておいたタイムスタンプ列や全列を比較して更新するUpdate文を
発行して誰も変更してなきゃ成功する。 対して、悲観的ロックは誰か変更するんじゃないかと悲観的に考え前もって行ロックする。
行ロック取得したければ、トランザクションの分離レベル変更して、間接的に取得すればいいんじゃねぇかな。
例えば、トランザクションをロックを使って実装してるデータベース使ってるなら、
トランザクションの分離レベルをREPEATABLE READにして読めば、読み込んレコードには
行ロックがかかる。 Consoleアプリの関数Aから別のスレッドで関数Bをを実行。
Bが終わるまで数分かかるので、その間はAの処理を引き続きやる。
Bが終わったら何らかの通知をA(あるいはアプリ)で受けとる。
そんな処理をしたいのですが、どんな手法がお勧めですか? >>166
普通にTaskとasync-await >>167
情報ありがとうございました。調べてみます。
>>168
それは何ですか?
>>169
関数Aの中で関数Bの終了をawaitするとそこでAの処理が停止しますよね?
それでは困るんです。 ■ このスレッドは過去ログ倉庫に格納されています