为什么他们决定在Java和.NET(以及其他一些语言)中使字符串不可变?他们为什么不让它变得可变?
这是克莱
这适用于C#
dynamic c = new ClayFactory();
var plant = c.Plant(new {LatinName = "test"});
Console.WriteLine(plant.LatinName);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
但这在VB.Net中不起作用
Dim c As Object = New ClayFactory
Dim plant = c.Plant(New With {.LatinName = "test"})
Console.WriteLine(plant.LatinName)
Console.ReadLine()
Run Code Online (Sandbox Code Playgroud)
我在VB.Net中收到此错误消息:
> Cannot close over byref parameter
> '$arg1' referenced in lambda ''
Run Code Online (Sandbox Code Playgroud)
如果我能解决它,我不是100%肯定如何解决这个问题.我猜测匿名类型的VB.Net实现略有不同.
我在这一行得到错误:
Dim plant = c.Plant(New With {.LatinName = "test"})
Run Code Online (Sandbox Code Playgroud)
如果有人能向我解释,我将不胜感激.
IL似乎不同了.
对于VB,私有字段Latinname是这样的:
.field private initonly !T0 $LatinName
Run Code Online (Sandbox Code Playgroud)
对于C#,它是:
.field private initonly !'<LatinName>j__TPar' '<LatinName>i__Field'
.custom instance void …Run Code Online (Sandbox Code Playgroud) 所以我对这个Activity有不同的布局.
我有不同的类,每个类都打开并用布局做他们的事情.
我通过@Inject在Activity中注入这些类.这一切都没有问题.
但是当我尝试在非活动布局中的一个控件上使用@InjectView时,我收到错误.
11-02 19:17:31.086:ERROR/AndroidRuntime(1326):显示java.lang.NullPointerException:致不能注入空值成类be.baes.notes.View.EditNoteImpl.saveButton当字段不@Nullable
这将是代码.
public class EditNoteImpl implements EditNote {
@Inject CancelEditNoteClickListener cancelEditNoteClickListener;
@Inject SaveNoteClickListener saveNoteClickListener;
@Inject Provider<Activity> activity;
@InjectView(R.id.saveButton) Button saveButton;
/* (non-Javadoc)
* @see be.baes.notes.EditNote#activateEditNote()
*/
@Override
public void activateEditNote()
{
activity.get().setContentView(R.layout.editnote);
this.saveButton.setOnClickListener(saveNoteClickListener);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我可以这样做.
public class EditNoteImpl implements EditNote {
@Inject CancelEditNoteClickListener cancelEditNoteClickListener;
@Inject SaveNoteClickListener saveNoteClickListener;
@Inject Provider<Activity> activity;
private Button saveButton;
/* (non-Javadoc)
* @see be.baes.notes.EditNote#activateEditNote()
*/
@Override
public void activateEditNote()
{
activity.get().setContentView(R.layout.editnote);
saveButton = (Button)activity.get().findViewById(R.id.saveButton);
this.saveButton.setOnClickListener(saveNoteClickListener);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
我想停止/杀死某个进程,然后在完成我必须做的事情后重新启动。
这就是我已经拥有的。
Clear-host
$processes = Get-Process devenv
$processes.Count
if($processes.Count -gt 1)
{
$i = 0
Write-host "There are multiple processes for devenv."
foreach($process in $processes)
{
$i++
$i.ToString() + '. ' + $process.MainWindowTitle
}
$in = Read-host "Give a number of the process to kill: "
write-host
write-host "killing and restarting: " + $processes[$in-1].MainWindowTitle
$processes[$in-1].Kill()
$processes[$in-1].WaitForExit()
$processes[$in-1].Start()
}
else
{
write-host "something else"
}
Run Code Online (Sandbox Code Playgroud)
但是开始需要一些参数,我认为我可以从过程中获得。但是我不确定我知道该给什么。
我想在使用查询字符串时查询数据。
从我在这里可以读到的内容来看 ,这应该可行。
{
"query": {
"query_string": {
"query": "date:[20100101 TO 20141231]"
}
},
"size": 10
}
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,但也没有结果。
我在映射中有日期字段(为了方便起见缩短了)。
{
"cases": {
"mappings": {
"texcaseelastic": {
"properties": {
"dateIn": {
"type": "date",
"format": "dateOptionalTime"
},
"type": {
"type": "string"
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我至少有一些应该属于这个范围。
"dateIn": "2011-11-21T00:00:00",
Run Code Online (Sandbox Code Playgroud)
欢迎任何帮助。谢谢。
我正在查看posh-git代码,我发现作者正在这样做.
function script:gitCmdOperations($command, $filter)
毋庸置疑,我没有在谷歌上找到任何关于此的内容.
我正在寻找的是他使用脚本的原因:部分.
我想获得一个字段列表,我可以使用nest查询elasticsearch中的某个索引.
我知道我能做到
获取_mapping
通过http,这让我或多或少得到了我想要的东西.但我对Nest有点难过.
我看着了
Dim _client = New ElasticClient(setting)
Dim mapping = _client.GetMapping(Function(x) x.Index(Of TexCaseElastic)())
Run Code Online (Sandbox Code Playgroud)
但真的找不到我的路.