使用反射,我试图抓住一个类字段并填充它们.目前我有它检测a的实例Dictionary<,>
并创建一个Dictionary<object,object>
填充.之后它尝试更改类型,但这不起作用并且无法转换:
// Looping through properties. Info is this isntance.
// Check is a dictionary field.
Dictionary<object, object> newDictionary = new Dictionary<object, object>();
// Populating the dictionary here from file.
Type[] args = info.PropertyType.GetGenericArguments();
info.GetSetMethod().Invoke(data, new object[]
{
newDictionary.ToDictionary(k => Convert.ChangeType(k.Key, args[0]),
k => Convert.ChangeType(k.Value, args[1]))
});
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢.
在mvc我可以使用这样的结构
@Html.TextAreaFor(model => model.iEventSummary, new { @class = "test" })
Run Code Online (Sandbox Code Playgroud)
我试图将其重现new { @class = "test" }
为参数但未成功
testFunction( new {key1="value1", key2="value2", key3="" })
public static string testFunction(dynamic dict)
{
string ret = string.Empty;
IDictionary<string, string> dictionary = dict;
foreach (var item in dictionary)
{
ret += item.Key + item.Value;
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
如何声明方法变量?如果我想传递new {key1="value1", key2="value2", key3="" }
参数.
我有以下代码:
private void nameTextBox_Leave(object sender, EventArgs e)
{
var names = ConfigurationManager.AppSettings.AllKeys
.Where(k => k.StartsWith("name"))
.ToArray();
// Add names to combobox
comboBox.Items.AddRange(names);
}
Run Code Online (Sandbox Code Playgroud)
问题是每次我Tab从文本框按下,comboBox元素继续加倍.如果有Ken,John,Tim在那里,如果我再次按Tab键,它会显示两次.
我尝试在上面的名称中使用distinct,但是每次创建新的瞬时时都不会执行任何操作,并保存上一个.添加名称后,我无法将comboBox设置为空,因为它在代码中单击后面的按钮时使用.
我认为唯一的替代方法是声明一个全局变量,并确保其值为0,然后只在comboBox中插入值,并在插入值后将其更改为1.但这似乎不是一个好的编码实践.
有没有更好的方法来完成这项工作?
我的perl脚本中有以下行(我从cshell运行)
system("perl -p -i -e 's/\+[a-z]+\+//g' $file1");
Run Code Online (Sandbox Code Playgroud)
我希望它删除所有被+加号包围的单词.相反,我收到以下错误消息.
量词在正则表达式中没有任何关系; 标记为< - HERE,m/+ < - HERE [az] ++/at -e line 1.
怎么了?我给反斜杠,为什么然后这个错误?
我不知道什么是"&"调用,但我想添加到这样的WPF菜单项,&Search
所以当我们点击时Alt,"S"下会出现一个小行.
见下图:
我对编码很新,但已经构建了一些小东西.我在上一个项目中想到的一件事是如何运行通常从控制台运行的2个简单命令,而是从表单应用程序中运行.简单地说,表单有2个按钮,单击一个导致ipconfig
运行,另一个ipconfig /all
.然后它将来自命令的ip信息发布到我创建的另一个表单中作为消息框.这很重要,因为我正在尝试做类似的事情,现在没有任何工作.
我有一个表格,其中包含用户名和密码点.提交时,我希望它基本上运行以下内容:
NET USE F: \\ALPHA\CLIENTAPPS /user:domain\%username% %password% /persistent:no
NET USE O: \\ALPHA\USERS /user:domain\%username% %password% /persistent:no
NET USE S: \\ALPHA\COMPANY /user:domain\%username% %password% /persistent:no
Run Code Online (Sandbox Code Playgroud)
凡%username%
与%password%
从形式和域捕获将成为我们的实际域.
使用与前面提到的ipconfig程序类似的方法,这就是我想出的.但是,当我单击"提交"按钮时,没有任何反应,没有错误,也没有实际创建网络共享:
private void btnSubmit_Click(object sender, EventArgs e)
{
string un = txtUsername.Text;
string pw = txtPassword.Text;
System.Diagnostics.ProcessStartInfo PR = new System.Diagnostics.ProcessStartInfo("cmd", @" /c net use W: \\\\ALPHA\\CLIENTAPPS /user:acsdish\\" + un + " " + pw + "/persistent:no");
PR.RedirectStandardOutput = true;
PR.UseShellExecute = false;
PR.CreateNoWindow = true;
System.Diagnostics.Process …
Run Code Online (Sandbox Code Playgroud) 使用while循环时写入while(1)
与任何其他数字相比意味着什么?
在我的计划while(1)
中给我同样的答案while(3)
int num1;
int loopcount;
while(1) {
printf("enter your positive number:");
scanf("%d",&num1);
if(num1>0) {
break;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用C#,在某些方法中,我使用了几个数据库结果列表.这些可能非常大(每个约1000个对象的10个列表).目前,我只是从这些方法返回并让垃圾收集器清除它.如果在回来之前,我写TheList.Clear();
这会有什么好处?
谢谢.
我有一组属性,其中一些有private
setter,其中一些有internal
setter.有没有办法在运行时我可以检查属性的setter是否是internal
?
我正在使用wpf.我想绑定一个文本框,其中包含在xaml.cs类中初始化的简单字符串类型值.在TextBox
不显示任何.这是我的XAML代码:
<TextBox Grid.Column="1" Width="387" HorizontalAlignment="Left" Grid.ColumnSpan="2" Text="{Binding Path=Name2}"/>
Run Code Online (Sandbox Code Playgroud)
而C#代码是这样的:
public partial class EntitiesView : UserControl
{
private string _name2;
public string Name2
{
get { return _name2; }
set { _name2 = "abcdef"; }
}
public EntitiesView()
{
InitializeComponent();
}
}
Run Code Online (Sandbox Code Playgroud)