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

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

7
prevTask.Wait()は、(タスクライブラリの)ContinueWithで使用することをお勧めしますか?
それで、最近、私は.ContinueWith for Tasksをどのように使用しているかが、適切な使用方法ではないと言われました。私はインターネットでこれの証拠をまだ見つけていないので、皆さんに尋ねて、答えが何であるかを確認します。これが.ContinueWithの使用例です。 public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 2"); }) .ContinueWith((prevTask) => { Console.WriteLine("Step 3"); }); } これは簡単な例であり、非常に高速に実行されることを知っていますが、各タスクがより長い操作を実行すると仮定します。だから、私が言われたことは、.ContinueWithでは、prevTask.Wait();と言う必要があるということです。それ以外の場合は、前のタスクが完了する前に作業を行うことができます。それは可能ですか?2つ目と3つ目のタスクは、前のタスクが終了して初めて実行されると想定しました。 コードの書き方を教えられた: public Task DoSomething() { return Task.Factory.StartNew(() => { Console.WriteLine("Step 1"); }) .ContinueWith((prevTask) => { prevTask.Wait(); Console.WriteLine("Step 2"); }) .ContinueWith((prevTask) => { …


6
C#でのvolatileキーワードの使用例
volatileキーワードの動作を視覚的に示す小さなプログラムをコーディングしたいと思います。理想的には、非揮発性の静的フィールドへの同時アクセスを実行し、そのために正しくない動作をするプログラムである必要があります。 同じプログラムにvolatileキーワードを追加すると、問題が修正されます。 私がなんとか成し遂げられなかったもの。何度か試したり、最適化を有効にしたりしても、「volatile」キーワードなしで常に正しい動作が得られます。 このトピックについて何か知っていますか?簡単なデモアプリでそのような問題をシミュレートする方法を知っていますか?ハードウェアに依存しますか?
88 c#  .net  volatile 

3
DataContractJsonSerializerとJavaScriptSerializerの違いは何ですか?
.NET FrameworkにはSystem.Runtime.Serialization.Json.DataContractJsonSerializerとSystem.Web.Script.Serialization.JavaScriptSerializerが同梱されており、どちらもJSONをデシリアライズします。これらのタイプのどちらを他のタイプよりもいつ選択するかをどのようにして知ることができますか?MSDNはそれらの相対的な利点が何であるかを明確にしません。 JSONを使用または放出するプロジェクトがいくつかあり、それぞれに対して選択されたクラスは、各プロジェクトの主要開発者の意見に依存しています。単純なものもあれば、JSONからのマネージ型の作成に関する複雑なロジックを持つものもあります(型はストリームに厳密にマッピングされません)が、速度は特に重視されず、1つは速度が必要です。少なくとも現時点では、WCFとのやり取りはありません。 私は別のライブラリに興味がありますが、誰かが私の質問にも答えてくれることを期待しています。

1
FacebookチャットAPI(XMPP)C#経由でメッセージを送信する
OBSERVE https://developers.facebook.com/docs/chat/ このドキュメントがカバーするサービスとAPIは、プラットフォームAPI v2.0のリリースで廃止されました。バージョン1.0が非推奨になると、chat.facebook.comは使用できなくなります。 重要!これを読んで、おそらくあなたはこの質問に関係するものとはまったく違うことをしたいと思うでしょう。 FacebookチャットAPIに接続するWebForms C#でチャットを作成しています。 私も見てきました。このSO質問(およびすべてのリンク)。Facebookがauth_token今必要としているため、いくつかの部分はもはや関係ありません。 これを複製するには、Facebook Webアプリを設定し、appIdxmpp_login権限が設定されたユーザーアカウントを使用する必要があります。次に、Chat.aspx背後にコードを含むを作成し、このコードを適宜貼り付けます。対話するハードコードされたユーザーを置き換えます。 チャットメッセージを送信するという目標を達成するのを妨げる2つ(おそらく3つ)の問題があります。 ドキュメントに記載され// finishes auth processているプロセスがドキュメントの説明と一致しません (FacebookからSSL / TLSベースの成功メッセージを受信した後、応答がありません。) 「チャットメッセージの送信」部分をどのように設定すればよいのかわかりません。Facebookからメッセージを受信しないので、何が問題なのかを判断するのは困難です。 PasteBinのコード全体を以下に示します。 また、xmpp_login権限などを追加するためのヘルパーもいくつかあります。わかりやすくするために削除しました。 グローバル変数: public partial class Chat : Page { public TcpClient client = new TcpClient(); NetworkStream stream; private SslStream ssl; private string AppId { get; set; } public string AppSecret …


23
コマンドラインパラメーターを含む文字列をC#のstring []に分割する
別の実行可能ファイルに渡されるコマンドラインパラメーターを含む単一の文字列があり、コマンドラインでコマンドが指定された場合のC#と同じ方法で、個々のパラメーターを含むstring []を抽出する必要があります。string []は、リフレクションを介して別のアセンブリエントリポイントを実行するときに使用されます。 これの標準機能はありますか?または、パラメーターを正しく分割するための推奨される方法(正規表現)はありますか?スペースを含む可能性のある「」で区切られた文字列を正しく処理する必要があるため、「」で分割することはできません。 文字列の例: string parameterString = @"/src:""C:\tmp\Some Folder\Sub Folder"" /users:""abcdefg@hijkl.com"" tasks:""SomeTask,Some Other Task"" -someParam foo"; 結果の例: string[] parameterArray = new string[] { @"/src:C:\tmp\Some Folder\Sub Folder", @"/users:abcdefg@hijkl.com", @"tasks:SomeTask,Some Other Task", @"-someParam", @"foo" }; コマンドライン解析ライブラリは必要ありません。生成されるString []を取得する方法だけです。 更新:C#によって実際に生成されるものと一致するように期待される結果を変更する必要がありました(分割文字列内の余分な「」を削除しました)

30
ビルドエラー:「別のプロセスで使用されているため、プロセスはファイルにアクセスできません」
私はC#webformsアプリを持っています。今日まで、それは水泳だけで動作していました。 さて、今日、突然、アプリを実行しようとするたびに、ファイルロックエラーが発生します。 ファイル「obj \ Debug \ MyProject.exe」を「bin \ Debug \ MyProject.exe」にコピーできません。"bin \ Debug \ MyProject.exe"ファイルは別のプロセスによって使用されているため、プロセスはファイルにアクセスできません。 エラーをグーグルすることは、明白なことを超えて何も思い付きません、すなわち、VSはファイルがロックされていると考えます。そして、ファイルをロックするのは間違いなく Visual Studio自体です。VSを閉じて再び開くと、プロジェクトは初めて実行されるためです。もう一度実行しようとすると、ファイルロックエラーが発生します。 アプリを実行するたびにVSを閉じて再度開くことは、実行可能な回避策ではありません。ファイルをロックしているものを見つけて、ロックされないようにするにはどうすればよいですか? 編集:もう1つの興味深い発見:アプリを実行する必要すらありません。一度コンパイルするだけでファイルがロックされます。2回続けてコンパイルすることはできません! この問題は、私のソリューションの1つのプロジェクトに固有です。他のすべてのプロジェクトは正常に動作し、好きなだけ何度でも実行できます。それ自体がロックされるのは、この1つのプロジェクトだけです。

4
「追加」要素の単純なリストを含むカスタムapp.configセクション
単純なadd要素のリストであるカスタムapp.configセクションを作成するにはどうすればよいですか? 次のようなカスタムセクションの例(例:app.configでカスタム構成セクションを作成する方法)を見つけました。 <RegisterCompanies> <Companies> <Company name="Tata Motors" code="Tata"/> <Company name="Honda Motors" code="Honda"/> </Companies> </RegisterCompanies> しかし、余分なコレクション要素( "Companies")を避けてappSettings、connectionStringsセクションやセクションと同じに見えるようにするにはどうすればよいですか?言い換えれば、私は次のことを望みます。 <registerCompanies> <add name="Tata Motors" code="Tata"/> <add name="Honda Motors" code="Honda"/> </registerCompanies>
88 c#  app-config 

3
Moqフレームワークを使用してModelState.IsValidをモックする方法は?
次のModelState.IsValidようなEmployeeを作成するコントローラーアクションメソッドをチェック インしています。 [HttpPost] public virtual ActionResult Create(EmployeeForm employeeForm) { if (this.ModelState.IsValid) { IEmployee employee = this._uiFactoryInstance.Map(employeeForm); employee.Save(); } // Etc. } Moqフレームワークを使用した単体テストメソッドでそれを模擬したいと思います。私はそれを次のように模倣しようとしました: var modelState = new Mock<ModelStateDictionary>(); modelState.Setup(m => m.IsValid).Returns(true); しかし、これは私のユニットテストケースで例外をスローします。誰かがここで私を手伝ってくれる?

12
C#で動的プロパティを作成するにはどうすればよいですか?
静的プロパティのセットを持つクラスを作成する方法を探しています。実行時に、データベースからこのオブジェクトに他の動的プロパティを追加できるようにしたいと思います。また、これらのオブジェクトにソート機能とフィルタリング機能を追加したいと思います。 C#でこれを行うにはどうすればよいですか?
88 c# 



5
オブジェクトをXML文字列に変換します
WebserviceTypeXSDファイルのツールxsd.exeから取得したという名前のクラスがあります。 ここで、WebServiceTypeオブジェクトのインスタンスを文字列に逆シリアル化します。これどうやってするの? MethodCheckTypeparamsはのようにオブジェクトが持つWebServiceType配列。 私の最初の試みは、それをシリアル化したようなものでした:aXmlSerializerとaStringWriterを使用しました(シリアル化中にはを使用しましたStringReader)。 これは、WebServiceTypeオブジェクトをシリアル化する方法です。 XmlSerializer serializer = new XmlSerializer(typeof(MethodCheckType)); MethodCheckType output = null; StringReader reader = null; // catch global exception, logg it and throw it try { reader = new StringReader(path); output = (MethodCheckType)serializer.Deserialize(reader); } catch (Exception) { throw; } finally { reader.Dispose(); } return output.WebService; 編集: 別の言葉で言うと、このMethodCheckTypeオブジェクトのインスタンスを取得している一方で、このオブジェクトをシリアル化したXMLドキュメントを取得しています。次に、このインスタンスを文字列形式のXMLドキュメントに変換します。この後、(XMLドキュメントの)両方の文字列が同じであるかどうかを証明する必要があります。XMLドキュメントをに読み込んでオブジェクトにStringReaderシリアル化する最初のメソッドの単体テストを行うため、これを行う必要がありMethodCheckTypeます。
88 c#  xml  serialization 

4
C#でpingを使用する
Windowsを使用してリモートシステムにpingを実行すると、応答がないと表示されますが、c#を使用してpingを実行すると、成功と表示されます。Windowsは正しく、デバイスは接続されていません。Windowsが正常にpingできないのに、コードが正常にpingできるのはなぜですか? これが私のコードです: Ping p1 = new Ping(); PingReply PR = p1.Send("192.168.2.18"); // check when the ping is not success while (!PR.Status.ToString().Equals("Success")) { Console.WriteLine(PR.Status.ToString()); PR = p1.Send("192.168.2.18"); } // check after the ping is n success while (PR.Status.ToString().Equals("Success")) { Console.WriteLine(PR.Status.ToString()); PR = p1.Send("192.168.2.18"); }
88 c#  ping 

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