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

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

8
メソッドシグネチャの新しいキーワード
リファクタリングの実行中に、次の例のようなメソッドを作成してしまいました。単純化のためにデータ型が変更されました。 私は以前に次のような割り当てステートメントを持っていました: MyObject myVar = new MyObject(); これは偶然にこれにリファクタリングされました: private static new MyObject CreateSomething() { return new MyObject{"Something New"}; } これは私の側での切り取り/貼り付けエラーの結果でしたが、newキーワードin private static newは有効でコンパイルされます。 質問:newキーワードはメソッドシグネチャで何を意味しますか?C#3.0で導入されたものだと思いますか? これはどう違いますoverrideか?
113 c#  methods  keyword 

17
DLLをロードできません(モジュールが見つかりませんHRESULT:0x8007007E)
.NET 4.0アプリケーションで使用する必要があるアンマネージC ++ APIコードを含むDLLライブラリがあります。しかし、私が自分のdllをロードしようとすると、エラーが発生します。 DLL 'MyOwn.dll'を読み込めません:指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E) 私はインターネットで見つけたseveraソリューションを読んで試しました。何も動作しません。 次の方法を試してみました: [DllImport("MyOwn.dll", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs((UnmanagedType.I4))] public static extern Int32 MyProIni(string DBname, string DBuser_pass, string WorkDirectory, ref StringBuilder ErrorMessage); この記事を試してみて、この例を(ダウンロードしたコードから)実行すると、問題なく実行されます(使用されているdllはbin / debugフォルダーにあります) 私は自分のdllを(binフォルダーに依存するすべてのファイルとともに)コピーしました。 私もこのアプローチを試しましたが、同じエラーが発生しました: [DllImportAttribute(MyOwnLibDllPath, EntryPoint="TMproIni")] [return: MarshalAs(UnmanagedType.I4)] public static extern int MyproIni(string DBname, string DBuser_pass, string WorkDirectory, ref StringBuilder ErrorMessage); 助言がありますか?
113 c#  c++  dll  pinvoke 


4
F#とC#の両方から使用するF#ライブラリを設計するための最良のアプローチ
F#でライブラリを設計しようとしています。ライブラリは、F#とC#の両方から使用できるようにする必要があります。 そして、これは私が少し行き詰まっているところです。私はそれをF#フレンドリーにすることも、C#フレンドリーにすることもできますが、問題は両方に対してフレンドリーにする方法です。 例を示します。F#に次の関数があるとします。 let compose (f: 'T -> 'TResult) (a : 'TResult -> unit) = f >> a これはF#から完全に使用できます。 let useComposeInFsharp() = let composite = compose (fun item -> item.ToString) (fun item -> printfn "%A" item) composite "foo" composite "bar" C#では、compose関数には次のシグネチャがあります。 FSharpFunc<T, Unit> compose<T, TResult>(FSharpFunc<T, TResult> f, FSharpFunc<TResult, Unit> a); …
113 c#  f# 


5
MSTestテストの実行中にConsole.Outに書き込む方法
コンテキスト: Webアプリケーションのファイルアップロード機能に関する問題を報告しているユーザーがいます。まれにしか発生せず、特別なパターンはありません。私たちは長い間それを理解しようと試み、それが役立つと思われるあらゆる場所にデバッグ情報を追加したり、ログをクロールしたりしていますが、それを再現したり理解したりすることはできませんでした。 問題: 現在、MSTestとWatiNを使用して、何度も失敗するはずの操作(数百回)を繰り返すことで、これを再現しようとしています。テストがループのどこまで進んだかについての手掛かりを得るために、次のようなものを出力したいと思います。 Console.WriteLine(String.Format("Uploaded file, attempt {0} of {1}", i, maxUploads)); ただし、これは[出力]ウィンドウには表示されません。今、私はあなたがテスト結果(だけでなく、から何を出力にコンソール出力を得るだろうことを知っているDebug.Writelineなど)が、これはまでは利用できませんした後にテストが完了しました。そして、何百回もの繰り返しを伴う私のテストはかなり時間がかかる可能性があるので、それがどれだけ進んでいるかを知りたいのです。 質問:テストの実行中 に[出力]ウィンドウでコンソール出力を取得する方法はありますか?
113 c#  console  mstest  watin 

3
10進数型の宣言接尾辞
コードで10進リテラルを使用したい場合、mサフィックス(mはお金を表す)が存在することを確認しました。これは小数に適していますか、それともより一般的な割り当てがありますか(dはdoubleを表します。直接変換はサポートされていますが、これは確かに適切ではありません)。 object decimalValue=2m; 注意してください、私はオブジェクト割り当てを例として取り上げました、なぜなら... decimal decimalValue=2; ...コンパイラーを通じて2が10進数として解釈される必要があることは暗黙のうちに明らかです。 mは問題ないようですが、msdnはこれを10進数型の例として使用しています。
113 c#  .net 

9
C#から添付ファイル付きのメールを送信すると、添付ファイルがThunderbirdのパート1.2として届く
SMTPを使用してExchange 2007サーバー経由でExcelスプレッドシートレポートを電子メールで送信するC#アプリケーションがあります。これらはOutlookユーザーには問題なく届きますが、ThunderbirdおよびBlackberryユーザーには添付ファイルの名前が「パート1.2」に変更されました。 問題を説明するこの記事を見つけましたが、回避策を提供していないようです。Exchangeサーバーを制御できないため、そこで変更を加えることができません。C#でできることはありますか?本文に短いファイル名とHTMLエンコーディングを使用してみましたが、どちらも違いはありませんでした。 私のメール送信コードはこれだけです: public static void SendMail(string recipient, string subject, string body, string attachmentFilename) { SmtpClient smtpClient = new SmtpClient(); NetworkCredential basicCredential = new NetworkCredential(MailConst.Username, MailConst.Password); MailMessage message = new MailMessage(); MailAddress fromAddress = new MailAddress(MailConst.Username); // setup up the host, increase the timeout to 5 minutes smtpClient.Host = …
113 c#  email  smtp  attachment 

13
無限再帰なしで「==」演算子オーバーロードでnullをチェックするにはどうすればよいですか?
以下は==演算子オーバーロードメソッドで無限再帰を引き起こします Foo foo1 = null; Foo foo2 = new Foo(); Assert.IsFalse(foo1 == foo2); public static bool operator ==(Foo foo1, Foo foo2) { if (foo1 == null) return foo2 == null; return foo1.Equals(foo2); } nullを確認するにはどうすればよいですか?

2
C#ジェネリック「where制約」と「任意のジェネリック型」の定義?
例を挙げましょう。 私はいくつかの一般的なクラス/インターフェースの定義を持っています: interface IGenericCar< T > {...} 上記のクラスに関連付けたい別のクラス/インターフェイスがあります。次に例を示します。 interface IGarrage< TCar > : where TCar: IGenericCar< (**any type here**) > {...} 基本的に、またはにIGenericCar関係なく、ジェネリックIGarrageがに依存するようにします。これは、その型に依存しないためです。IGenericCar<int>IGenericCar<System.Color>

15
値の解析中に予期しない文字が見つかりました
現在、いくつか問題があります。Json.NETでC#を使用しています。問題は、私が常に得ることです: {「値の解析中に予期しない文字が見つかりました:e。パス ''、行0、位置0。 "} したがって、Json.NETの使用方法は次のとおりです。保存する必要があるクラスがあります。クラスは次のようになります。 public class stats { public string time { get; set; } public string value { get; set; } } public class ViewerStatsFormat { public List<stats> viewerstats { get; set; } public String version { get; set; } public ViewerStatsFormat(bool chk) { this.viewerstats = new List<stats>(); …

3
文字列補間とString.Format
文字列補間の使用には顕著なパフォーマンスの違いがありますか? myString += $"{x:x2}"; vs String.Format()? myString += String.Format("{0:x2}", x); Resharperが修正を促しているため、私は質問しているだけで、以前はだまされていました。

6
ILogger、ILogger <T>、ILoggerFactory、またはILoggerProviderをライブラリに使用する必要がありますか?
これは、AspNet CoreのコンストラクターにILoggerまたはILoggerFactoryを渡すことにいくらか関連している可能性がありますか?ただし、これは特にライブラリの設計に関するものであり、それらのライブラリを使用する実際のアプリケーションがロギングを実装する方法についてではありません。 Nugetを介してインストールされる.net標準2.0ライブラリを作成しています。そのライブラリを使用しているユーザーがデバッグ情報を取得できるようにするには、Microsoft.Extensions.Logging.Abstractionsを使用して標準化されたロガーを挿入できます。 ただし、複数のインターフェイスが表示され、Web上のサンプルコードILoggerFactoryがクラスのctorでロガーを使用および作成する場合があります。ILoggerProviderファクトリの読み取り専用バージョンのように見えるものもありますが、実装は両方のインターフェースを実装する場合と実装しない場合があるため、選択する必要があります。(ファクトリーはプロバイダーよりも一般的です)。 私が見たいくつかのコードは非ジェネリックILoggerインターフェイスを使用しており、同じロガーの1つのインスタンスを共有することもあり、いくつかのコードはILogger&lt;T&gt;ctorを受け取り、DIコンテナーがオープンジェネリック型またはILogger&lt;T&gt;ライブラリのすべてのバリエーションの明示的な登録をサポートすることを期待しています使用します。 今のところ、それILogger&lt;T&gt;は正しいアプローチだと思います。おそらく、その引数をとらず、代わりにNull Loggerを渡すだけの俳優です。このようにして、ロギングが必要ない場合、何も使用されません。ただし、一部のDIコンテナーは最大のctorを選択するため、とにかく失敗します。 私は、私は何の興味なって必要に応じて、まだ適切なログ機能のサポートを可能にしながら、ユーザーのための頭痛の最低額を作成するために、ここでやっています。

15
オブジェクトインスタンスのサイズをc#でバイト単位で見つける
任意のインスタンス(異なるオブジェクトのコレクション、構成、単一のオブジェクトなど) サイズをバイト単位で確認するにはどうすればよいですか? (私は現在、さまざまなオブジェクトのコレクションを取得しており、その合計サイズを特定しようとしています) 編集:誰かがこれを行うことができるオブジェクトの拡張メソッドを書いたことがありますか?それはかなりきちんとしたイモでしょう。
113 c# 

15
単体テストの出力を書き込むにはどうすればよいですか?
単体テストでの呼び出しは、デバッグ中にスキップされるかDebug.Write(line)、Console.Write(Line)単にスキップされて、出力が印刷されません。私が使用しているクラス内からのこれらの関数の呼び出しは問題なく動作します。 単体テストは自動化されていることを理解していますが、単体テストからメッセージを出力できるようにしたいのですが。

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