タグ付けされた質問 「c#」

C#(「seesharp」と発音)は、Microsoftによって開発された、静的に型指定された高レベルのマルチパラダイムプログラミング言語です。C#コードは通常、Microsoftの.NETファミリのツールとランタイムを対象としています。これには、.NET Framework、.NET Core、Xamarinなどが含まれます。このタグは、C#またはC#の正式な仕様で記述されたコードに関する質問に使用します。

1
'+'演算子を使用した文字列の連結
見るとstring、クラスのメタデータは、私が唯一の演算子を参照==して!=、オーバーロード。では、 ' +'演算子の連結をどのように実行できるのでしょうか。 編集: 文字列の連結に関するEricLippertからの興味深いメモ: パート1 パート2 パート2で参照されているJoelのスーパー記事もあります(http://www.joelonsoftware.com/articles/fog0000000319.html)。
86 c#  .net  string 

10
引用された返信からメールの内容を解析する
引用された返信テキストからメールのテキストを解析する方法を見つけようとしています。私は通常、電子メールクライアントが「そのような日付にそう書かれた」を付けるか、行の前に山かっこを付けることに気づきました。残念ながら、誰もがこれを行うわけではありません。プログラムで返信テキストを検出する方法について誰かが何か考えを持っていますか?このパーサーの作成にはC#を使用しています。
86 c#  ruby  email  email-parsing 

2
intをdoubleに置き換える場合のVisualStudioの長いコンパイル
VS2013 Ultimateの私のコピーは、このコードを60秒以上コンパイルします。 class Program { static void Main(string[] args) { double dichotomy = Dichotomy( d => { try { int size = (int) d; byte[] b = new byte[size]; return -b.Length; } catch (Exception) { return 0; } }, 0, int.MaxValue, 1); Console.WriteLine(dichotomy); Console.ReadKey(); } private static double Dichotomy( Func<double, …

10
Linq to Entitiesを使用した「Contains()」回避策?
Silverlight ADO.Net Data ServicesクライアントAPI(したがって、Linq To Entities)を使用して、where句のIDのリストを使用するクエリを作成しようとしています。誰かがサポートされていないContainsの回避策を知っていますか? 私はこのようなことをしたい: List<long?> txnIds = new List<long?>(); // Fill list var q = from t in svc.OpenTransaction where txnIds.Contains(t.OpenTransactionId) select t; これを試しました: var q = from t in svc.OpenTransaction where txnIds.Any<long>(tt => tt == t.OpenTransactionId) select t; しかし、「メソッド 'Any'はサポートされていません」というメッセージが表示されました。

7
C#とRhinoMocksを使用したテスト駆動開発のベストプラクティス[終了]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 チームがテスト可能なコードを作成できるようにするために、C#コードベースをよりテストしやすくするためのベストプラクティスの簡単なリストを作成しました。(いくつかのポイントは、C#のモックフレームワークであるRhino Mocksの制限に言及していますが、ルールはより一般的に適用される場合もあります。)従うベストプラクティスはありますか? コードのテスト容易性を最大化するには、次のルールに従います。 最初にテストを記述し、次にコードを記述します。理由:これにより、テスト可能なコードを記述し、コードのすべての行でテストが記述されるようになります。 依存性注入を使用してクラスを設計します。理由:見えないものをモックしたりテストしたりすることはできません。 Model-View-ControllerまたはModel-View-Presenterを使用して、UIコードをその動作から分離します。理由:テストできない部分(UI)を最小限に抑えながら、ビジネスロジックをテストできるようにします。 静的メソッドまたはクラスを記述しないでください。 理由:静的メソッドを分離することは困難または不可能であり、RhinoMocksはそれらをモックすることができません。 クラスではなく、インターフェイスをプログラムします。理由:インターフェースを使用すると、オブジェクト間の関係が明確になります。インターフェイスは、オブジェクトがその環境から必要とするサービスを定義する必要があります。また、RhinoMocksやその他のモックフレームワークを使用してインターフェイスを簡単にモックすることができます。 外部の依存関係を分離します。理由:未解決の外部依存関係はテストできません。 モックするメソッドを仮想としてマークします。理由:RhinoMocksは非仮想メソッドをモックできません。

7
リポジトリパターンを正しく使用するにはどうすればよいですか?
リポジトリをどのようにグループ化する必要があるのでしょうか。asp.net mvcや私の本で見た例のように、基本的にデータベーステーブルごとに1つのリポジトリを使用します。しかし、それは多くのリポジトリのように思われるため、後でモックなどのために多くのリポジトリを呼び出す必要があります。 だから私はそれらをグループ化する必要があると思います。ただし、それらをグループ化する方法がわかりません。 今、私はすべての登録を処理するための登録リポジトリを作成しました。ただし、更新する必要があるテーブルが4つあり、これを行うために3つのリポジトリがあります。 たとえば、テーブルの1つはライセンステーブルです。彼らが登録するとき、私は彼らの鍵を見て、データベースに存在するかどうかを確認します。登録以外の場所で、このライセンスキーまたはそのテーブルの何かを確認する必要がある場合はどうなりますか? 1つの場所はログインである可能性があります(キーの有効期限が切れていないかどうかを確認してください)。 それで、私はこの状況で何をしますか?コードを書き直します(DRYを破ります)?これらの2つのリポジトリを一緒にマージして、他の時点でメソッドが不要になることを期待してください(userNameが使用されているかどうかをチェックするメソッドがあるかもしれませんが、別の場所で必要になるかもしれません)。 また、それらをマージする場合、サイトの2つの異なる部分のすべてのロジックが長くなり、ValidateLogin()、ValdiateRegistrationForm()のような名前が必要になるため、同じリポジトリに2つのサービスレイヤーを配置する必要があります。 、ValdiateLoginRetrievePassword()など。 または、とにかくリポジトリを呼び出して、奇妙な名前を付けますか? アプリケーションの多くの場所で使用できるように、十分に一般的な名前のリポジトリを作成するのは難しいようですが、それでも意味があります。リポジトリ内の別のリポジトリを呼び出すことは良い習慣ではないと思いますか?

15
WebAPIで応答をシリアル化できませんでした
ASP.NET MVC Web APIで作業していましたが、次のエラーが発生します。 'ObjectContent`1'タイプは、コンテンツタイプ 'application / xmlの応答本文のシリアル化に失敗しました。charset = utf-8 '。 私のコントローラーは: public Employee GetEmployees() { Employee employees = db.Employees.First(); return employees; } なぜこのエラーが発生するのですか?

5
XPで.NET4.5アプリを実行することは可能ですか?
まず、私は以下を読みました: ケースを接続する VSケース 特にこのchannel9の投稿 したがって、前回の箇条書きから、これを回避する方法は本当にないと思いますが、チームが.NET4.0から.NET4.5にアップグレードしたいので、決定的な答えが得られるかどうかを確認する必要がありました。ただし、XPをサポートする必要があります。 XPをサポートしたい場合、.NET 4.5に移行する可能性はありませんか? 私が考えることができる唯一のことは、2つの別々のソリューションを作成することですが、.NET 4.5の機能を使用した場合、コードベースは分岐する必要があります。 だから、私は見つけることができなかったいくつかの素晴らしい回避策を探しています、そして他の人はおそらくすでに知っています。

5
2回の間に何分あるかを計算する
アプリケーションに開始時刻と終了時刻を保持するdatagridviewがあります。この2つの時間の間の分数を計算したいと思います。これまでのところ私は持っています: var varFinish = tsTable.Rows[intCellRow]["Finish Time"]; TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue; int intMinutes = TimeSpan.FromMinutes(varTime); しかし、Timespanコンストラクターに無効な引数を使用していると表示されているため、最後の行はコンパイルされません。2回の間の分数を計算する方法についてはかなり調査しましたが、少しレンガの壁にぶつかっています。誰かが私の目的を達成するための最良の方法について私にアドバイスできますか? 編集/ 今私のコードは次のとおりです: var varFinish = tsTable.Rows[intCellRow]["Finish Time"]; TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue; int intMinutes = (int)varTime.TotalMinutes; しかし、2行目に無効なキャストが表示されます。varFinishとvarValueはどちらも、たとえば10:00と8:00などの時間です。では、なぜ彼らがDateTime型にキャストしないのかわからないのですか?
86 c# 

7
foreachループはC#でどのように機能しますか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 5か月前に閉鎖されました。 この質問を改善する どのタイプのクラスがforeachループを使用できますか?
86 c#  foreach 

4
linqのletキーワードはintoキーワードよりも優れていますか?
私は現在LINQをブラッシュアップしletており、intoキーワードとキーワードの使用の違いを理解しようとしています。私の理解では、これまでのところ、letキーワードはキーワードよりも優れintoているようです。 intoキーワードは、本質的に1投影後にクエリを継続することができます。(グループ参加用のものを参照していないことを明示的に述べたいだけです。) 名前の配列が与えられると、次のことが可能になります。 var intoQuery = from n in names select Regex.Replace(n, "[aeiou]", "") into noVowel where noVowel.Length > 2 select noVowel; これは、選択の結果を取り、にそれを置きnoVowel、その後1を追加導入することができます変数where、orderbyおよびselect句。一度noVowel変数が作成され、n変数は使用できなくなりました。 letキーワードは、他の一方で、一度に複数の変数を再利用できるようにするために一時匿名型を使用しています。 次のことができます。 var letQuery = from n in names let noVowel = Regex.Replace(n, "[aeiou]", "") where noVowel.Length > 2 select noVowel; noVowelとn変数の両方を使用できます(この場合は使用していませんが)。 違いはわかりますが、クエリの後半で前の変数を使用できないことを明示的に確認したい場合を除いて、intoキーワードよりもletキーワードを使用する理由がよくわかりません。 それで、両方のキーワードが存在する正当な理由がありますか?
86 c#  linq 




7
AppDomain.CurrentDomain.BaseDirectoryまたはSystem.Environment.CurrentDirectoryを使用する必要がありますか?
同じフォルダに2つのexeファイルがあります。exe1のボタンからexe2を実行できます。今日、リモート(ターミナルサービス)セッションで顧客を監視していて、exe2が「ファイルが見つかりません」エラーを実行できませんでしたが、チェックしたときにexe1は同じディレクトリにありました。では、AppDomain.CurrentDomain.BaseDirectoryまたはSystem.Environment.CurrentDirectoryを使用する必要がありますか? ありがとう
86 c#  exception 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.