template<class T>
struct is_iterator
{
static const bool value = ??? // What to write ???
};
int main()
{
assert(false == is_iterator<int>::value);
assert(true == is_iterator<vector<int>::iterator>::value);
assert(true == is_iterator<list<int>::iterator>::value);
assert(true == is_iterator<string::iterator>::value);
assert(true == is_iterator<char*>::value); // a raw pointer is also an iterator
}
Run Code Online (Sandbox Code Playgroud)
问题是:如何使五个断言语句通过?
我想爆炸像这样的多行字符串
color:red
material:metal
Run Code Online (Sandbox Code Playgroud)
到这样的数组
$array['color']=red
$array['material']=metal
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我正在阅读TAP白皮书,并对第22页中为实现超时而给出的示例感到困惑:
"考虑一个想要下载图像并在图像下载时禁用UI的UI应用程序.但是,如果下载时间太长,则应该重新启用UI,并且应该放弃下载."
public async void btnDownload_Click(object sender, EventArgs e)
{
btnDownload.Enabled = false;
try
{
Task<Bitmap> download = GetBitmapAsync(url);
if (download == await Task.WhenAny(download, Task.Delay(3000)))
{
Bitmap bmp = await download.TimeoutAfter(3000);
pictureBox.Image = bmp;
status.Text = “Downloaded”;
}
else
{
pictureBox.Image = null;
status.Text = “Timed out”;
download.ContinueWith(t => Trace(“Task finally completed”));
}
}
finally { btnDownload.Enabled = true; }
}
Run Code Online (Sandbox Code Playgroud)
令我困惑的是这一行:
Bitmap bmp = await download.TimeoutAfter(3000);
Run Code Online (Sandbox Code Playgroud)
在这个逻辑中,TimeoutAfter的重点是什么?这不应该是通过调用Task.WhenAny完成的吗?它似乎正在说的是,"下载任务完成后,再给它3秒钟完成." 这是示例中的错误还是我误解了?
我需要一个Http请求,我可以在.Net中使用,这需要不到100毫秒.我能够在浏览器中实现这一点,所以我真的不明白为什么这在代码中是个问题.
我已经尝试过WinHTTP以及WebRequest.Create,它们都超过500毫秒,这对我的用例来说是不可接受的.
以下是我试图通过的简单测试的示例.(WinHttpFetcher是我写的一个简单的包装器,但是它确实是一个获取请求的最简单的例子,我不确定它是否值得粘贴.)
我正在使用LibCurlNet获得可接受的结果,但如果同时使用该类,我会收到访问冲突.此外,由于它不是托管代码,必须复制到bin目录,因此使用我的开源项目进行部署并不理想.
尝试另一个实现的任何想法?
[Test]
public void WinHttp_Should_Get_Html_Quickly()
{
var fetcher = new WinHttpFetcher();
var startTime = DateTime.Now;
var result = fetcher.Fetch(new Uri("http://localhost"));
var endTime = DateTime.Now;
Assert.Less((endTime - startTime).TotalMilliseconds, 100);
}
[Test]
public void WebRequest_Should_Get_Html_Quickly()
{
var startTime = DateTime.Now;
var req = (HttpWebRequest) WebRequest.Create("http://localhost");
var response = req.GetResponse();
var endTime = DateTime.Now;
Assert.Less((endTime - startTime).TotalMilliseconds, 100);
}
Run Code Online (Sandbox Code Playgroud) 如果我有一个foreach循环,有没有办法检查一个布尔值?
我不想在内部检查foreach()然后打破例如.我想要foreach收集一个集合,同时评估某些事情是否属实.
例如,我不想这样做:
IEnumerable<Job> jobs = currentJobs;
foreach(Job job in jobs)
{
if (found)
break;
}
Run Code Online (Sandbox Code Playgroud) 我有一个SQL Server 2008数据库和nvarchar(256)一个表的字段.疯狂的问题是,当我运行此查询时:
update ruds_values_short_text
set value = '? asjdklasd'
where rud_id=12202 and field_code='detection_limit'
Run Code Online (Sandbox Code Playgroud)
然后
select * from ruds_values_short_text
where rud_id=12202 and field_code='detection_limit'
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
12202 detection_limit = asjdklasd 11
Run Code Online (Sandbox Code Playgroud)
您可以看到字符≤已在=中转换
这是一个与编码相关的问题,实际上,如果我尝试在Notepad ++中粘贴'≤',它会粘贴'='但是当我将ANSI转换为UTF-8时我得'≤'.
所以..我想我应该用UTF8编写查询..但是怎么样?谢谢.
我正在尝试加速调用子shell并执行各种操作的脚本集合.我很想知道是否有任何工具可用于执行shell脚本及其嵌套shell的时间,并报告脚本的哪些部分是最昂贵的.
例如,如果我有一个如下的脚本.
#!/bin/bash
echo "hello"
echo $(date)
echo "goodbye"
Run Code Online (Sandbox Code Playgroud)
我想知道三条线中的每一条花了多长时间.time只会给我一些脚本的总时间.bash -x很有趣,但不包括时间戳或其他时间信息.
对不起标题,它不明确.
继我的先例问题之后,我想订阅一个方法来动态检索一个事件对象(通过反射).有问题的对象是Control的一个字段:
public void SubscribeEvents(Control control)
{
Type controlType = control.GetType();
FieldInfo[] fields = controlType.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
MethodInfo method = typeof(Trace).GetMethod("WriteTrace");
// "button1" hardcoded for the sample
FieldInfo f = controlType.GetField("button1", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
// "Click" hardcoded for the sample
EventInfo eInfo = f.FieldType.GetEvent("Click");
if (eInfo != null)
{
EventHandler dummyDelegate = (s, e) => WriteTrace(s, e, eInfo.Name);
Delegate realDelegate = Delegate.CreateDelegate(eInfo.EventHandlerType, dummyDelegate.Target, dummyDelegate.Method);
eInfo.AddEventHandler(?????, realDelegate); // How can I reference the variable button1 ??? …Run Code Online (Sandbox Code Playgroud) 例如,默认按钮在其状态和背景图像之间具有以下依赖关系:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/btn_default_normal_disable" />
<item android:state_pressed="true"
android:drawable="@drawable/btn_default_pressed" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_default_selected" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_focused="true"
android:drawable="@drawable/btn_default_normal_disable_focused" />
<item
android:drawable="@drawable/btn_default_normal_disable" />
</selector>
Run Code Online (Sandbox Code Playgroud)
如何定义自己的自定义状态(类似于smth android:state_custom),那么我可以使用它来动态更改我的按钮视觉外观?
如果我编译一个简单的(没有额外的库或程序集)c#应用程序,我可以假设它将在本地运行在任何新的Windows 7机器上,或者我是否必须担心安装了.Net或其他库的最终用户?