我想将一个整数转换为数组,所以它看起来如下所示:
int number = 123456 ;
int array[7] ;
Run Code Online (Sandbox Code Playgroud)
结果:
array[0] = 1
array[1] = 2
...
array[6] = 6
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,我想实现一个进程窗口,该窗口在进行冗长的过程时出现.
我已经创建了一个标准的Windows窗体项目,我使用默认窗体创建了我的应用程序.我还创建了一个新表单作为进度窗口.
使用以下命令打开进度窗口(在函数中)时出现问题:
ProgressWindow.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
遇到这个命令时,焦点在进度窗口上,我认为它现在是正在为事件处理主循环的窗口.缺点是它阻止了我在主窗体中执行冗长的操作.
如果我使用以下命令打开进度窗口:
ProgressWindow.Show();
Run Code Online (Sandbox Code Playgroud)
然后窗口正确打开,现在不会阻止主窗体的执行,但它不会作为子窗口(模态)窗口,即允许选择主窗体,不以父窗口为中心等. .
我有什么想法可以打开一个新窗口,但继续在主窗体中处理?
我与Johannes Schaub就关键字进行了讨论.那里的代码是这样的:inline
namespace ... {
static void someFunction() {
MYCLASS::GetInstance()->someFunction();
}
};
Run Code Online (Sandbox Code Playgroud)
他说:
将其作为内联函数可以在可执行文件中保存代码大小
然而,约翰内斯表示明确指定它还有其他好处.不幸的是我不理解他们.例如,他说,"内联"允许您在程序中多次定义函数.,我很难理解(并找到参考).
所以
inline
只是编译器的建议?inline
?inline
以减少可执行文件的大小,即使编译器(根据维基百科[我知道,错误的引用])应该自己找到这样的函数?还有什么我想念的吗?
我想更改sql server中表的列的数据类型.我使用了以下声明:
ALTER TABLE dbo.tbltest
ALTER COLUMN ID uniqueidentifier
Run Code Online (Sandbox Code Playgroud)
但它会引发错误
操作数类型冲突:bigint与uniqueidentifier不兼容
我能够分配的方法M
,以委托对象d
与不太具体参数类型,但是当我想用相同的签名方法分配一个匿名方法M
来d
,我得到一个错误.
这是为什么?
class derivedEventArgs : EventArgs { }
delegate void newDelegate(object o, derivedEventArgs e);
static void Main(string[] args)
{
newDelegate d = M; // ok
d = (object o, EventArgs e) => { }; // error
}
public static void M(object o, EventArgs e) { }
Run Code Online (Sandbox Code Playgroud) 由于我Window
在我的应用程序中有多个s,我正在寻找一个不需要我binding
在每个上面设置的解决方案Window
.
我创建了一个ResourceDictionary
具有style
窗口背景的:
<Style TargetType="{x:Type Window}">
<Setter Property="Background" Value="AliceBlue"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
在我XAML
,我设置ResourceDictionary
:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Templates.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
没有错误,但我的Window
颜色保持白色.
我ng-repeat
在模板中使用自定义指令,如下所示:
<li ng-repeat="image in images">
<img ng-src="{{image.url}}" ng-click="togglePhoto({{$index}})">
</li>
Run Code Online (Sandbox Code Playgroud)
在页面上呈现源时看起来像
<li ng-repeat="image in images" class="ng-scope">
<img ng-src="http://example.com/example.jpg" ng-click="togglePhoto(1)" src="http://example.com/example.jpg">
</li>
Run Code Online (Sandbox Code Playgroud)
我有togglePhoto
我的指令中定义的函数.如果没有{{index}}
传入参数,它就可以工作并调用该函数.使用索引,它不会触发.
如何获取单击该togglePhoto
功能的照片索引?
我在使用时遇到了一个问题,Task.Factory.StartNew
并试图捕获exception
被抛出的问题.在我的应用程序中,我有一个长期运行的任务,我想封装在一个Task.Factory.StartNew(.., TaskCreationOptions.LongRunning);
但是,当我使用时,没有捕获异常Task.Factory.StartNew
.然而,当我使用时Task.Run
,它正如我所期望的那样工作,我认为它只是一个包装器Task.Factory.StartNew
(根据例如这篇MSDN文章).
这里提供了一个工作示例,不同之处在于在使用时将异常写入控制台Task.Run
,但在使用时不会Factory.StartNew
.
我的问题是:
如果我有一个LongRunning
可以抛出异常的任务,我应该如何在调用代码中处理它们?
private static void Main(string[] args)
{
Task<bool> t = RunLongTask();
t.Wait();
Console.WriteLine(t.Result);
Console.ReadKey();
}
private async static Task<bool> RunLongTask()
{
try
{
await RunTaskAsync();
}
catch (Exception e)
{
Console.WriteLine(e);
return false;
}
Console.WriteLine("success");
return true;
}
private static Task RunTaskAsync()
{
//return Task.Run(async () =>
// {
// throw new Exception("my exception");
// }); …
Run Code Online (Sandbox Code Playgroud) 当我试图在我的库中为const和非const模板参数提供函数时,我遇到了一个奇怪的问题.以下源代码是一个最小的示例现象:
#include <iostream>
template<typename some_type>
struct some_meta_class;
template<>
struct some_meta_class<int>
{
typedef void type;
};
template<typename some_type>
struct return_type
{
typedef typename some_meta_class< some_type >::type test;
typedef void type;
};
template<typename type>
typename return_type<type>::type foo( type & in )
{
std::cout << "non-const" << std::endl;
}
template<typename type>
void foo( type const & in )
{
std::cout << "const" << std::endl;
}
int main()
{
int i;
int const & ciref = i;
foo(ciref);
}
Run Code Online (Sandbox Code Playgroud)
我试图为foo实现一个非const版本和一个const版本,但不幸的是这个代码不能在CLANG 3.0和gcc 4.6.3上编译.
main.cpp:18:22:错误:未定义模板'some_meta_class'的隐式实例化
因此,由于某种原因,编译器想要使用非const版本的foo作为const …
给出以下代码片段(在学习线程时在某处找到).
public class BlockingQueue<T>
{
private readonly object sync = new object();
private readonly Queue<T> queue;
public BlockingQueue()
{
queue = new Queue<T>();
}
public void Enqueue(T item)
{
lock (sync)
{
queue.Enqueue(item);
Monitor.PulseAll(sync);
}
}
public T Dequeue()
{
lock (sync)
{
while (queue.Count == 0)
Monitor.Wait(sync);
return queue.Dequeue();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要了解的是,
为什么会有一个while循环?
while (queue.Count == 0)
Monitor.Wait(sync);
Run Code Online (Sandbox Code Playgroud)
这有什么问题,
if(queue.Count == 0)
Monitor.Wait(sync);
Run Code Online (Sandbox Code Playgroud)
事实上,当我看到使用while循环时发现的类似代码时,任何人都可以帮助我理解一个在另一个之上的使用.谢谢.