今天我遇到了一个场景,我必须创建一个name, params count and params types与现有方法共享相同方法的方法,如下所示:
public static Department GetDepartment(string departmentName)
{
//LOGIC
}
public static Department GetDepartment(string employeeID)
{
//LOGIC
}
Run Code Online (Sandbox Code Playgroud)
乍一看,我只是说为什么不用不同的名字命名并完成任务,但我不能!我确实希望保持我正在处理的代码的可读性,我希望它是overloaded第一个,
所以我说为什么不添加一个假参数只是为了解决这个问题从编译器的角度来看.
public static Department GetDepartment(string employeeID, object fakePassWtEver)
{
//LOGIC
}
Run Code Online (Sandbox Code Playgroud)
这种情况的最佳做法是什么?我看到所有方法都可以让我的代码运行,但没有一个让我满意
可能重复:和.Equals()
之间的C#区别==
在我的日常代码例程中,我经常使用它们,但实际上并不知道它们彼此之间有多么不同.
if(String.Equals(str1, str2))
Run Code Online (Sandbox Code Playgroud)
和
if(str1 == str2)
Run Code Online (Sandbox Code Playgroud) 我可以像这样创建一个新对象:
Dim sqlconn As New SqlClient.SqlConnection(cs)
Run Code Online (Sandbox Code Playgroud)
或者像这样:
Dim sqlconn = New SqlClient.SqlConnection(cs)
Run Code Online (Sandbox Code Playgroud)
有什么不同?既然两者都适合我!
我的 C# 应用程序订阅 Windows 事件日志消息:
var subscriptionQuery = new EventLogQuery(Settings.Default.LogPath, PathType.LogName, Settings.Default.LogQuery);
_watcher = new EventLogWatcher(subscriptionQuery);
_watcher.EventRecordWritten += EventLogEventRead;
Run Code Online (Sandbox Code Playgroud)
当消息发生时,EventLogEventRead处理程序接收一个System.Diagnostics.Eventing.Reader.EventLogRecord包含事件数据的对象。此信息包括EventProperty对象的集合。问题是:EventProperty只定义了一个值,而不是属性的名称。但是,当我在 Windows 事件日志查看器中打开相同的事件时,它会显示带有名称的属性。现在的问题是:如何获取事件属性名称?
我想获取sharePoint网站中特定列表的所有可见列(隐藏== false),我试图查看SharePointWebService.Lists.GetList(listName),但找不到任何有用的东西,还检查了列表WebService提供的方法,也没什么新的,
请指教.
我不时
地在输出窗格中阅读它简单地说,为什么以及何时发生这种情况?
public class GroupWithSpecificOptionsNotFoundException : Exception
{
public GroupWithSpecificOptionsNotFoundException(string place, Dictionary<string, string> options)
: base(string.Format("Group with specific options not found, in ({0}), at ({1})", place, DateTime.Now.ToString()))
{
foreach (string key in options.Keys)
{
this.Message += string.Format("Option Name : ({0}) with Value : ({1}) not found in this group options set", key, options[key]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这个想法很简单,我想将键/值对象包含在异常中Message.此操作不能在base()事物中执行,也不能在构造函数内部执行("Message is read only").
我找到了一个静态函数可以解决问题的解决方案:
public class GroupWithSpecificOptionsNotFoundException : Exception
{
public static string GenerateOptionValueString(Dictionary<string, string> options)
{
string msg = string.Empty; …Run Code Online (Sandbox Code Playgroud) 我的项目使用App.config来读取配置属性.示例:
ConfigurationManager.AppSettings["MaxThreads"]
您是否知道我可以使用从json读取配置的库.谢谢.
asp.net-core-mvc .net-core asp.net-core asp.net-core-1.0 .net-core-rc2
我的代码就像
DepartmentPaperConsumption dto = null;
Run Code Online (Sandbox Code Playgroud)
然后我有NHibernate QueryOver结果,我想订购它
result.OrderByAlias(() => dto.TotalColorCopys);
Run Code Online (Sandbox Code Playgroud)
但我希望能够dto用字符串动态指定任何属性.我尝试使用动态LINQ,但似乎我无法得到它.我也试过从头开始构建LambdaExpression - 也没有运气.我将不胜感激任何帮助.
我有一个带有文本列和组合框列的数据网格。
数据网格列如下:
<DataGrid.Columns>
<DataGridTextColumn Header="ID"
Binding="{Binding ID}"
Width="0.5*" />
<DataGridComboBoxColumn Header="Threshold"
x:Name="Threshold"
SelectedItemBinding="{SelectedValue}"/>
</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)
对于 ComboBox 列,我使用列表作为 ItemSource。
Threshold.ItemsSource = MaxThreshold; //MaxThreshold is a List
Run Code Online (Sandbox Code Playgroud)
所以每一行都有一个由 List 值组成的 ComboBox。
用户选择特定行,然后选择该特定行中的组合框。我想在 C# 中获取在 ComboBox 中选择的项目的值。
谢谢。
c# ×8
.net ×2
exception ×2
.net-core ×1
asp.net-core ×1
combobox ×1
datagrid ×1
declaration ×1
equals ×1
event-log ×1
lambda ×1
linq ×1
methods ×1
nhibernate ×1
overloading ×1
parameters ×1
queryover ×1
sharepoint ×1
string ×1
vb.net ×1
web-services ×1
windows ×1
wpf ×1
xaml ×1