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

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


8
文字列が有効なWindowsディレクトリ(フォルダ)パスであるかどうかを確認します
ユーザーが入力した文字列がフォルダへのパスを表すのに有効かどうかを判断しようとしています。有効とは、適切にフォーマットされていることを意味します。 私のアプリケーションでは、フォルダーはインストール先を表します。フォルダパスが有効であれば、フォルダが存在するかどうかを確認し、存在しない場合は作成します。 現在使用していIO.Directory.Exists( String path )ます。ユーザーが文字列を適切にフォーマットしない場合を除いて、これは正常に機能することがわかりました。その場合、このメソッドはfalseを返します。これは、フォルダーが存在しないことを示します。しかし、後でフォルダを作成できなくなるため、これは問題です。 グーグルから、正規表現を使用して形式が適切かどうかを確認するという提案を見つけました。私は正規表現の経験がなく、それが実行可能なアプローチであるかどうか疑問に思っています。これが私が見つけたものです: Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" ); return r.IsMatch( path ); と組み合わせた正規表現テストは、パスが有効かどうか、およびパスが存在するかどうかを確認するのに十分な方法をDirectory.Exists()教えてくれますか?これはOSやその他の要因によって異なることはわかっていますが、このプログラムはWindowsユーザーのみを対象としています。

6
ジェネリッククラスの静的メンバーは特定のインスタンスに関連付けられていますか?
これは、実際の質問というよりもドキュメントです。これはまだSOで対処されていないようです(私がそれを見逃していない限り)ので、ここに行きます: 静的メンバーを含むジェネリッククラスを想像してみてください。 class Foo<T> { public static int member; } 特定のクラスごとにメンバーの新しいインスタンスがありますか、それともすべてのFooタイプのクラスに1つのインスタンスしかありませんか? 次のようなコードで簡単に確認できます。 Foo<int>.member = 1; Foo<string>.member = 2; Console.WriteLine (Foo<int>.member); 結果はどうなりますか?また、この動作はどこに文書化されていますか?
84 c#  .net  generics  static 

7
C#.Equals()、. ReferenceEquals()および==演算子
これら3つについての私の理解は次のとおりです。 .Equals()データの同等性をテストします(より適切な説明がないため)。.Equals()同じオブジェクトの異なるインスタンスに対してTrueを返すことができます。これは、最も一般的にオーバーライドされるメソッドです。 .ReferenceEquals() 2つのオブジェクトが同じインスタンスであり、オーバーライドできないかどうかをテストします。 ==ReferenceEquals()デフォルトと同じですが、これはオーバーライドできます。 しかし、C#ステーションは次のように述べています。 オブジェクトクラスでは、Equalsと ReferenceEqualsメソッドは意味的に同等ですが、ReferenceEqualsオブジェクトインスタンスでのみ機能する点が異なります。 ReferenceEqualsこの方法は、静的です。 今はわかりません。誰かがこれに光を当てることができますか?
84 c#  equality 

6
C#でジェネリックメソッドを作成する
私はたくさんの同様のメソッドを一般的なメソッドに結合しようとしています。クエリ文字列の値を返すメソッドがいくつかあります。クエリ文字列が存在しないか、正しい形式でない場合はnullを返します。すべての型がネイティブにnull許容であれば、これは十分に簡単ですが、整数と日付にはnull許容のジェネリック型を使用する必要があります。 これが私が今持っているものです。ただし、数値が無効な場合は0が返されます。残念ながら、これは私のシナリオでは有効な値です。誰かが私を助けることができますか?ありがとう! public static T GetQueryString<T>(string key) where T : IConvertible { T result = default(T); if (String.IsNullOrEmpty(HttpContext.Current.Request.QueryString[key]) == false) { string value = HttpContext.Current.Request.QueryString[key]; try { result = (T)Convert.ChangeType(value, typeof(T)); } catch { //Could not convert. Pass back default value... result = default(T); } } return result; }
84 c#  generics 

6
ファイルをbyte []に​​変換する信頼できる方法
私はウェブ上で次のコードを見つけました: private byte [] StreamFile(string filename) { FileStream fs = new FileStream(filename, FileMode.Open,FileAccess.Read); // Create a byte array of file stream length byte[] ImageData = new byte[fs.Length]; //Read block of bytes from stream into the byte array fs.Read(ImageData,0,System.Convert.ToInt32(fs.Length)); //Close the File Stream fs.Close(); return ImageData; //return the byte data } …
84 c# 

12
グラフで明確に異なるRGBカラーを生成する
グラフを生成してさまざまなデータセットを表示する場合は、通常、セットを色で区別することをお勧めします。つまり、1つの線は赤で、次の線は緑というように続きます。問題は、データセットの数が不明な場合、これらの色をランダムに生成する必要があり、多くの場合、それらは互いに非常に近くなることです(たとえば、緑、薄緑)。 これをどのように解決できるか、そして明確に異なる色を生成することがどのように可能になるかについてのアイデアはありますか? C#およびRGBベースの色の例(簡単な場合は、例なしで問題と解決策について自由に話し合ってください)があれば素晴らしいと思います。
84 c#  random  graph  colors 

7
C#でテンプレートの特殊化を行う方法
C#をどのように専門化しますか? 問題を提起します。テンプレートタイプがあり、それが何であるかわかりません。しかし、それがXYZあなたが呼び出したいものから派生したものであるかどうかはわかります.alternativeFunc()。優れた方法は、特殊な関数またはクラスを呼び出してnormalCallreturn.normalFunc()を持ち、派生型のXYZ呼び出しに他の特殊化を行うこと.alternativeFunc()です。これはC#でどのように行われますか?

7
'int'の違いは何ですか?およびC#の「int」?
私は以前にstackoverflowでこの答えを見たと90%確信しています。実際、私は「int?」を見たことがありませんでした。ここに表示される前の構文ですが、どのように検索しても前の投稿が見つからず、頭がおかしくなります。 偶然に面白いキノコを食べていた可能性がありますが、そうでない場合は、誰かが前の投稿を見つけたり、再説明したりできるかどうかを指摘してもらえますか?私のstackoverflowsearch-fuは明らかに低すぎます...。
84 c#  syntax  types  nullable 

4
TimeZoneInfoを使用して、夏時間中に現地時間を取得するにはどうすればよいですか?
私はDateTimeOffset、任意のタイムゾーンで特定の瞬間を伝えるために使用しようとしています。TimeZoneInfo夏時間の処理方法がわかりません。 var dt = DateTime.UtcNow; Console.WriteLine(dt.ToLocalTime()); var tz = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time"); var utcOffset = new DateTimeOffset(dt, TimeSpan.Zero); Console.WriteLine(utcOffset.ToOffset(tz.BaseUtcOffset)); これは印刷されます: 2010年6月2日16:37:19 2010年6月2日15:37:19-06:00 私は中部標準時で、現在夏時間になっています。私は2行目を読ませようとしています: 2010年6月2日16:37:19-05:00 BaseUtcOffset どうやらDSTに基づいて変更されません。 適切なオフセット値で適切な時間を取得するにはどうすればよいですか?

5
並行辞書正しい使用法
私はこれが並行辞書の正しい使用法であると考えるのは正しいですか private ConcurrentDictionary<int,long> myDic = new ConcurrentDictionary<int,long>(); //Main thread at program startup for(int i = 0; i < 4; i++) { myDic.Add(i, 0); } //Seperate threads use this to update a value myDic[InputID] = newLongValue; ロックなどがなく、複数のスレッドが同じことを行おうとしている場合でも、辞書の値を更新しているだけです。

2
Razorビューエンジン-部分ビューを追加するにはどうすればよいですか
可能であれば、新しいレイザービューエンジンを使用してパーシャルをレンダリングするための最良の方法は何であるか疑問に思いました。これはその時までに完全に終わっていなかったものだと理解しています 現在、RenderPageを使用してユーザーコントロールをレンダリングしています。 @RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model) RenderPageを呼び出すページは、TitleContent、HeadContent、Maincontentの3つのセクションが定義されたレイアウト(マスター)ページを使用します。このページからロケールコントロールをレンダリングしようとすると、これらのセクションも必要であるように見えます。これらのセクションは、呼び出し元のページでのみ必要であり、存在しているはずです。部分ビューにセクションを含めるかどうかに関係なく、次のメッセージが表示されます(明らかに、これらのセクションを含めたくありませんが、興味深いデバッグポイントのように見えました...)。 次のセクションは定義されていますが、レイアウトページ '〜/ Views / Shared / LocaleUserControl.cshtml'には表示されていません:TitleContent; HeadContent; メインコンテンツ 私の部分的な見解は次のとおりです(次のリンクから適応): @inherits System.Web.Mvc.WebViewPage<LocaleBaseModel> @using System.Web.UI; <p> @Html.LabelFor(model => Model.CountryName) <br /> @Html.DropDownListFor(model => Model.CountryName,null, string.Empty, new { @class = "text", accesskey="u"}) </p> <p> @Html.LabelFor(model => Model.StateProvince) <br /> @Html.DropDownListFor(model => Model.StateProvince, null, string.Empty, new { @class = …
84 c#  asp.net-mvc  razor 


3
C#言語仕様6.0はどこにありますか?[閉まっている]
閉まっている。この質問は、StackOverflowのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、StackOverflowのトピックになります。 3年前に閉鎖されました。 この質問を改善する C#5言語仕様の場所はわかっていますが、C#6言語仕様がどこにも見つかりません。 C#6言語仕様はどこにありますか?

2
リリースモードとデバッグモードでコードの動作が異なるのはなぜですか?
次のコードについて考えてみます。 private static void Main(string[] args) { var ar = new double[] { 100 }; FillTo(ref ar, 5); Console.WriteLine(string.Join(",", ar.Select(a => a.ToString()).ToArray())); } public static void FillTo(ref double[] dd, int N) { if (dd.Length >= N) return; double[] Old = dd; double d = double.NaN; if (Old.Length > 0) d …
84 c#  .net  .net-core  coreclr 

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