タイトルが技術的に正しいかどうかわかりませんが、別の時に同じメソッドに別の文字列を渡そうとしています。異なる文字列を同じメソッドに渡すにはどうすればよいですか?
ユーザーが新しいアカウントを削除すると、
この方法を通過してしまいますRecordMetric(Constants.AccountDeleted, userId, String.Empty);
:
internal static void RecordMetric(Constants Constant, long userid, string data, long? siteid)
{
MetricsSystemService.TrackEvent(Constants.AccountDeleted,
new Dictionary<string, string> { { "userid", userid.ToString() }, { "data", data} });
}
これは私たちに自分のアカウントを削除したどのように多くのユーザーの指示を与えるアプリケーション洞察にデータを送信します。
しかし、私は、例えば、上記の方法によって異なる文字列を渡したい場合:
RecordMetric(Constants.PasspointReset, userId, String.Empty);
私はそれになりたいの代わりに、私はちょうどそれのための別の方法を作成することもできますが、それは非効率的になるだろうAccountDeleted文字列と同じメソッドを通過します。 "「いいえ過負荷方法は:
internal static class ConstantsString
{
internal static string ToConstantsString(this string input)
{
if (input == "SignupStart") return Constants.SignupStart;
if (input == "SignupEnd") return Constants.SignupEnd;
if (input == "LoginStart") return Constants.LoginStart;
if (input == "LoginEnd") return Constants.LoginEnd;
if (input == "AccountDeleted") return Constants.AccountDeleted;
if (input == "PasspointReset") return Constants.PasspointReset;
if (input == "ImageChange") return Constants.ImageChange;
if (input == "LoginFailed") return Constants.LoginFailed;
if (input == "SignupVerified") return Constants.SignupVerified;
if (input == "LibraryImageUsed") return Constants.LibraryImageUsed;
if (input == "DeveloperAccountCreated") return Constants.DeveloperAccountCreated;
if (input == "DeveloperAccountEdited") return Constants.DeveloperAccountEdited;
if (input == "DeveloperAccountDeleted") return Constants.DeveloperAccountDeleted;
return String.Empty;
}
}
などのような文字列の拡張子を通る:
は、私は、文字列の拡張子を作ってみた
MetricsSystemService.TrackEvent(ConstantsString.ToConstantsString(),
new Dictionary<string, string> { { "userid", userid.ToString() }, { "data", data} });
が、私はエラーを取得していませんよToConstantsString 'は0個の引数をとります。 "
これを行う別の方法はありますか?または私は何か間違っているのですか?
なぜ、 'RecordMetric(Constants.PasspointReset、userId、String.Empty);'は動作しませんか? 'RecordMetric'は既に' string'、 'userid'と' string'パラメータを取っているようです。 – Lee
新しいメソッドを作成せずにやりたいことができるようです。 'RecordMetric(Constants.AccountDeleted、userId、String.Empty);などのコードは実際に実行されるべきです。 – pijemcolu