在使用Swift玩一点时,我尝试编写一个readonly和lazy初始化属性.我很快就编写了这行代码,以了解它是不允许的.
// no valid Swift code.
lazy let foo : Int = { return 42 }()
Run Code Online (Sandbox Code Playgroud)
您必须将延迟属性声明为var.这本快速的书明确指出,懒惰是不可能有充分理由:
"您必须始终将惰性属性声明为变量(使用var关键字),因为在实例初始化完成之后,可能无法检索其初始值.在初始化完成之前,常量属性必须始终具有值,因此不能声明为惰性."
假设我想在swift中拥有一个readonly lazy属性.什么是存档的最佳方式?
给出C#中的以下枚举和switch/case,以根据其状态返回文本框的边框颜色.
enum TextboxState {
Default,
Error
}
switch(foo) {
default:
case TextboxState.Default: return Color.Black;
case TextboxState.Error: return Color.Red;
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我定义了一个真实的,而不仅仅是通过约定默认状态,也就是TextboxState.Default通过添加default:案例 我只是想这样做,以防止在枚举中添加新值时将来的更改.
根据Swift的书,这是不可能的:
"如果为每个可能的值提供一个switch case是不合适的,你可以定义一个默认的catch-all case来覆盖任何未明确解决的值.这个包罗万象的案例由关键字default指示,并且必须始终显示在最后."
这一段很清楚,所以我认为上面的模式不适用于Swift或者我错过了什么?有没有其他方式来存档像上面的代码?
我想在winforms文本框中显示一些数学表达式.因此我认为"Cambria Math"字体是一个不错的选择,但由于字体的顶部和底部边缘较高,文本看起来很奇怪.首先,我认为我犯了一个错误,但根据这个问题,这是字体的正确行为.

为什么Cambria Math具有这些大的边距值,如何在Word 2010等文本框中正确显示我的字符串?
(请注意,我只对排版有所了解;)
编辑:我必须使文本框高,否则插入符号将是不可见的.文本框的字体大小设置为8.25pt
是否可以转储TWebRequest(和TWebResponse)对象的所有头字段?目前我使用GetFieldByName()并使用Writeln()打印它们,但这只有在我已经知道标题字段的名称时才有效.我正在寻找一种方法来获取所有标题字段名称以创建每个字段,但我没有找到任何方法来做到这一点.
我编写了一个REST datasnap控制台应用程序,并希望将所有HTTP请求/响应记录到控制台.
我必须为我们公司的程序编写一个屏幕键盘,该程序主要用于具有触摸功能的工业PC.
我们无法使用Windows默认键盘,因为我们不需要键盘上的所有键.所以我被要求用C#写一个自定义的.
我已经发现这个博客作为参考,但我不知道如何开始.
我创建了一个小型原型GUI,为每个键分配一个扫描码,并将这些扫描码转换为相关的字符.并将它们发送到主动控件.但我不确定我应该使用哪种扫描码.
所以我的问题是,这是编写像这样的OSK的正确方法,如果是,我应该使用哪些扫描码?有链接吗?
我也不确定如何处理这些shift州......
编辑:
好吧,我做了一些研究,想出了一个osk,它读取当前的键盘布局,甚至可以处理简单的shift状态(Shift和Alt Gr).我写了一个KeyButton继承自的类Button,它KeyButton有一个ScanCodebyte类型的属性,如果你为它分配一个有效的扫描码,它KeyButton会调用相关的函数来获得正确的文本.我使用Michael Kaplan博客的功能进行了一些小改动.最后我发现我必须像他一样做.
所以我的问题的答案是:是的,您必须在按钮上使用扫描码,然后从键盘布局中获取虚拟键和unicode.使用这些扫描码.
现在我得到的角色唯一剩下的就是发送它们.
我们需要为学校项目启动一个单词实例并跟踪文档是否已关闭.来自单词的COM api没有事件,有没有其他方法可以做到这一点?
目前我们正在使用COM api,但其他一切都没问题.我们正在用C#编程.
我尝试将图形对象的内容复制到位图.我正在使用此代码
public static class GraphicsBitmapConverter
{
[DllImport("gdi32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool BitBlt(IntPtr hdc, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, TernaryRasterOperations dwRop);
public static Bitmap GraphicsToBitmap(Graphics g, Rectangle bounds)
{
Bitmap bmp = new Bitmap(bounds.Width, bounds.Height);
using (Graphics bmpGrf = Graphics.FromImage(bmp))
{
IntPtr hdc1 = g.GetHdc();
IntPtr hdc2 = bmpGrf.GetHdc();
BitBlt(hdc2, 0, 0, bmp.Width, bmp.Height, hdc1, 0, 0, TernaryRasterOperations.SRCCOPY);
g.ReleaseHdc(hdc1);
bmpGrf.ReleaseHdc(hdc2);
}
return bmp;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我像这样使用这种方法
Graphics …Run Code Online (Sandbox Code Playgroud) 我在互联网上找到了一些信息,但没有任何帮助我.如何合并父mdi表单中的工具条?
编辑:
这个代码对我有用:
private void MainForm_MdiChildActivate(object sender, EventArgs e)
{
IChildWindow child = ActiveMdiChild as IChildWindow;
if (child != null)
{
ToolStripManager.Merge(child.ToolStrip, toolStrip1);
child.ToolStrip.Hide();
child.FormClosing += delegate(object sender2, FormClosingEventArgs fe)
{
child.ToolStrip.Show();
ToolStripManager.RevertMerge(toolStrip1, child.ToolStrip);
};
}
}
Run Code Online (Sandbox Code Playgroud) 我正在用NancyFx编写REST API.我经常得到这样的代码:
Post["/something"] = _ => {
// ... some code
if (success)
return HttpStatusCode.OK;
else
return someErrorObject;
};
Run Code Online (Sandbox Code Playgroud)
客户端始终假定application/json为所有响应的内容类型.它实际上是Accept: application/json在请求中设置的.application/json无论实际身体如何,没有错误的回答都是错误的.它只是检查内容类型,如果它与json不匹配则中止.我无法改变这种行为.
现在我面临的问题是,只需返回HttpStatusCode.OKNancy集,Content-Type: text/html但正如所说客户端假定application/json并且即使正文为空也会失败并出现错误.
我能够像这样强制内容类型:
return Negotiate
.WithContentType("application/json")
.WithStatusCode(HttpStatusCode.OK);
Run Code Online (Sandbox Code Playgroud)
我不想在任何地方重复这个代码.当然,我可以在一个函数中抽象它,但我正在寻找一个更优雅的解决方案.
有没有办法覆盖默认的Content-Type响应,以便return HttpStatusCode.OK将我的Content-Type设置为application/json?
我发现这篇文章描述了如何找到办公室的安装路径:
http://support.microsoft.com/kb/234788/en-us
但是在文章中只有2007年的GUID,办公室2010的GUID是什么,或者我在哪里可以找到它们?