この質問の背景が必要ない場合は、以下の質問に進んでください。
最初のコード ブロックでわかるように、スタイル ディクショナリに渡されるパラメーターとして定数を使用しています。
私は(今では)型が で広く使用されていることを知っている.net
ので、辞書が型ではなく専用の型として渡されるパラメーターを受け入れるように指定する方法を知りたいstring
です。
これは、 types について、私にとってもう 1 つの小さな教訓になります。
//string //string
html.StyleDict.Add(Stl.Prop.BgColor, Stl.Vals.Clr.Aquamarine);
今までは、(スタイル ディクショナリ) 文字列をパラメーターとして使用するために渡していたので、シンプルに保ちながら仕事をさせることができました.net
...このクラスを作成したとき、何が何であるか、またはそれらをどのように使用するかを学ぶことさえ考えられませんでしtypes
た。
したがって、このシナリオに関しては、実装と使用法は非常に単純なタスクである必要があります(一部のユーザーにとっては、実際にはすべてではないにしてもほとんどの場合 (:)、 string の代わりにカスタム型を使用して実装を変換する必要があります。
質問は: スタイル クラスを作成する方法?
...そのため、最終的にはそのC#スタイリングタスクに文字列を渡すことになりますが、辞書ではパラメーターを の型として渡すことができます。style
これは、html css スタイリングがコードビハインドによって行われるためです。ただし、スタイル ディクショナリにデータを入力するときは、カスタム Style クラスを使用します。
//styleType //styleType
html.StyleDict.Add(Stl.Prop.BgColor, Stl.Vals.Clr.Aquamarine);
例えば。
これは、HTML マークアップを生成するループを使用して要素のバックラウンドを変更するために使用しているクラスであるため、ループ内の現在の要素の他のスタイル プロパティと共にループのカウンターを渡しています。
(トピックから少し外れていますが、この質問の意味を説明するために使用例を示す必要がありました)
...それはまた、スタイルの辞書が使用されるようになる場所です.
public sealed class html
{
// current Typless Dictionary
public static Dictionary<string, string> StyleDict = new Dictionary<string, string>();
// future dictionary (: , naturally it wouldnt work with the parameters as it is now (see relevant Styles Class
public static Dictionary<Styles.Prop, Styles.Vals> StyleDict = new Dictionary<Stl.Prop, Stl.Vals>();
public static string DynamicStyle_Generator
(
int LoopCounter = -1,
Dictionary<string, string> StyleAttributeDict = null
)
{
string BaseStyle = "", Terminator = "'", BgCol = "";
StringBuilder StylerSB = new StringBuilder();
BgCol = "";
bool bgcolAlternator;
if (LoopCounter >= 0)
{
LoopCounter++ ;
bgcolAlternator = (RowCounter % 2) == 0;
if (bgcolAlternator)
BgCol = "#70878F";
else BgCol = "#E6E6B8";
}
BaseStyle = string.Format("style='background-color:{0};", BgCol);
return string.Concat(BaseStyle, StyleDict, Terminator);
}
Lsts.StlsDict.Add(Stl.Prop.BgColor, Stl.Vals.Clr.Aquamarine);
public Dictionary<Stl.Prop, Stl.Vals> StlsDict = new Dictionary<Stl.Prop, Stl.Vals>();
public static class Styles
{
public sealed class Props
{
public static string pBgUrl1(string fileName)
{
return "url('images/" + fileName + "')";
}
/// <summary>
/// Specifies the HTML backgroundimage style.
/// </summary>
public static readonly string BgColor = "Background-Color ",
/// <summary>
/// Specifies the HTML backgroundimage style.
/// </summary>
BackgroundImage = "Background-image ",
/// <summary>
/// Specifies the HTML bordercollapse style.
/// </summary>
BorderCollapse = "BorderCollapse ",
/// <summary>
/// Specifies the HTML bordercolor style.
///</summary>
BorderColor = "BorderColor ",
/// <summary>
/// Specifies the HTML borderstyle style.
/// </summary>
BorderStyle = "BorderStyle ",
}
public sealed class Vals
{
public class fontNames
{
public const string Aharoni = "Aharoni",
Andalus = "Andalus",
AngsanaNew = "Angsana New",
AngsanaUPC = "AngsanaUPC",
Aparajita = "Aparajita";
}
public class Color
{
public const string AliceBlue = "AliceBlue";
public const string AntiqueWhite = "AntiqueWhite";
public const string Aqua = "Aqua";
public const string Aquamarine = "Aquamarine";
public const string Azure = "Azure";
}
}
}
私が自分の型を渡すために使用できる別の方法(条件は同じ辞書を使用することです)私が思いつくことができる唯一のことは、パラメータに設定されたデフォルト値を使用することです
while writing this , i could have thought of this actually
Dictionary<T,T> StyleDict = new Dictionary<T, T>();
文字列に変換するだけではありません!(動作していません)
public static string DynamicStyle_Generator
(
int LoopCounter = -1,
Dictionary<Styles.Props, Styles.Vals.Color> StyleColor = null
Dictionary<Styles.Props, Styles.Vals.fontNames> StylefontNames = null
)
{
ここでは、フォントは必要だが色は必要ない場合を除き、必要はありません。このように呼び出すことで不快になる必要があります
DynamicStyle_Generator(counterhere , null, DictionaryOfFonts);
それ以外は
DynamicStyle_Generator(counterhere , DictionartyColors, DictionaryOfFonts);
次に、これは値に関係なく同じように機能します(nullかどうか)
return string.Concat(BaseStyle, DictionartyColors, DictionaryOfFontsm, Terminator);