假设我有一个标签控件,我有超过50个标签,没有足够的空间来容纳这么多标签,如何使这些标签可滚动?
当使用sql时,我必须创建一个按分组总和排序的row_number列:
select Sales.Name, SUM(Sales.Bill) as billsum, ROW_NUMBER() over (order by billsum DESC) as rn
from Sales group by Sales.Name
Run Code Online (Sandbox Code Playgroud)
它报告错误,因为row_number over无法解析"billsum"别名,我必须写:
select Sales.Name, SUM(Sales.Bill) as billsum, ROW_NUMBER() over (order by SUM(Sales.Bill) DESC) as rn
from Sales group by Sales.Name
Run Code Online (Sandbox Code Playgroud)
所以我在这里写了两次SUM(Sales.Bill),反正在这里使用别名吗?
这是一个控制台程序,希望10个线程批量启动,等待5秒,然后批量停止.
static void Main(string[] args)
{
System.Threading.Tasks.Parallel.For(0, 10, (index) =>
{
Action<int> act = (i) =>
{
Console.Write("start {0} ", i);
Thread.Sleep(5000);
};
act.BeginInvoke(index, OnTaskComplete, index);
});
Console.ReadKey();
}
static void OnTaskComplete(IAsyncResult res)
{
Console.Write("finish {0} ", res.AsyncState);
}
Run Code Online (Sandbox Code Playgroud)
但结果不是我的预期,10个线程一个接一个地慢慢开始(大约1秒间隔),甚至一些"完成"在一些"开始"之前出现.
当注释掉Thread.Sleep时,所有线程都在flash中开始和结束.
会Thread.Sleep
影响其他线程吗?无论如何要做一个纯粹的空闲时间?
/ - - - - - - - - - - - - - - -编辑 - - - - - - - - - - ----------
同样的问题也发生在:
static void Main(string[] args)
{
System.Threading.Tasks.Parallel.For(0, 10, (index) …
Run Code Online (Sandbox Code Playgroud) 首先,为什么要返回const?说我有
friend const MyVec operator-(const MyVec& left, const MyVec& right)
Run Code Online (Sandbox Code Playgroud)
所以返回const让我无法做到:
mva - mvb = mvc;
Run Code Online (Sandbox Code Playgroud)
二,为什么返回const引用?如果有:
friend const MyVec& operator++(MyVec& v)
Run Code Online (Sandbox Code Playgroud)
用const我不能: (++mva) = mvc
如果是
MyVec& operator++(MyVec& v)
我可以:++(++mva)
//增加两次.
我理解对吗?
我在代码中有一些上下文要切换,具体取决于它是在测试版本还是在发布版本下运行.在我的产品编码中说:
PublishRequest(); // the real one
//PublishRequestPsudo(); // the one want to be run during unit test
Run Code Online (Sandbox Code Playgroud)
我正在考虑的方法是创建一个TestFlag类:
if (!TestFlag.PublishFlag)
{
PublishRequest();
}
else
{
PublishRequestPsudo();
}
Run Code Online (Sandbox Code Playgroud)
如果我有很多地方可以这样做,这似乎很冗长.这样做有什么好的模式吗?
由于我想将未初始化的指针传递给函数,因此会出现运行时错误.但如果我将此指针作为参考传递,它就可以正常工作.我无法解释为什么......
class Body
{
};
void check(Body* b)
{
b = new Body();
}
void checkRef(Body* &b)
{
b = new Body();
}
int main001()
{
Body* b;
//check(b);// error: The variable 'b' is being used without being initialized. (in VS2010)
checkRef(b); // OK
return 0;
}
Run Code Online (Sandbox Code Playgroud)
什么是传递给check和checkRef的差异?我在VisualStudio2010中遇到运行时错误.错误:正在使用变量'b'而未进行初始化.
编辑:这是一个VS2010调试输出.发布版本中不会出现"错误"
在书中看到一段代码:
T& operator[](int i) throw(RangeError)
{
if(i >= 0 && i < sz) return ptr[i];
throw RangeError();
}
Run Code Online (Sandbox Code Playgroud)
throw(RangeError)是什么意思?函数声明的后面,我知道我们可以添加常量,或= 0(纯虚拟的),但我从来没有见过掷(...)
我有一个返回本地对象的函数:
class AT
{
public:
AT() { cout<<"construct"<<endl; }
AT(const AT& at) { cout<<"copy"<<endl; }
~AT() { cout<<"destroy"<<endl; }
};
AT funcAt()
{
AT tmp;
return tmp;
}
...
funcAt();
Run Code Online (Sandbox Code Playgroud)
输出是:
construct
copy
destroy
destroy
Run Code Online (Sandbox Code Playgroud)
我想只有"tmp"的构造和破坏,为什么有副本和另一个毁灭?复制对象在哪里?
我是MVVM的新手,现在在Silverlight项目上做一些MVVM重构工作,假设它是一本书购物应用程序.
View是一个书籍列表,我将书籍的标题绑定到ViewModel.所以我public string Title { get; set; }
在ViewModel中也有一个public string Title { get; set; }
模型(我是对的吗?)
现在我想放一个事件处理程序来更新书名,我应该把事件处理程序放在ViewModel或Model中吗?什么是模型用于?
c++ ×4
c# ×2
silverlight ×2
const ×1
mvvm ×1
parallel-for ×1
pointers ×1
return-value ×1
shortcut ×1
sql-server ×1
thread-sleep ×1
throw ×1
unit-testing ×1
wpf ×1