使用三元运算符,可以执行以下操作(假设Func1()和Func2()返回int:
int x = (x == y) ? Func1() : Func2();
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法做同样的事情,而不返回值?例如,类似(假设Func1()和Func2()返回void):
(x == y) ? Func1() : Func2();
Run Code Online (Sandbox Code Playgroud)
我意识到这可以使用if语句来完成,我只是想知道是否有办法像这样做.
我正在尝试为我的winforms应用程序添加一个功能,在主屏幕上打印版本号.我目前有这个:
txtVersion.Text = ProductVersion.ToString();
Run Code Online (Sandbox Code Playgroud)
这告诉我程序的版本 - 一切都很好.
但是,我理想的做法是选择用于创建msi的安装程序版本.有没有办法在安装的程序中询问这个问题,或者在安装过程中以某种方式传输信息?
在Dynamics AX 2009中,我试图确定信息消息的缩进级别.我想要的是类似的东西:
Prefix
Info1
Info2
Prefix2
Info3
Run Code Online (Sandbox Code Playgroud)
我找到了这个:
http://www.doens.be/2010/05/the-ax-infolog/
但是不想使用循环,所以我认为这样的东西可能会起作用:
setprefix("Prefix");
{
info("Info1");
info("Info2");
}
setprefix("Prefix2");
{
info("Info3");
}
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.有没有办法在x ++中执行此操作,以及有关缩进级别当前处于活动状态的规则是什么?
我有一个SQL Server 2008数据库项目,并希望在后期部署时按顺序执行多个脚本.
我已经PostDeploy.Sql在脚本文件夹中添加了一个脚本,并将其标记为PostDeploy,并且工作正常.我知道只有一个脚本可以标记为post deploy; 所以我想我可以在剧本中做到这一点:
-- Post Deploy stuff
SELECT * FROM MYTABLE
GO
:r RunPostDeploy2.sql
GO
Run Code Online (Sandbox Code Playgroud)
当RunPostDeploy2.sql位于同一目录的链接中.我试过在本地复制文件,但问题似乎是使用:r.
是否可以通过这种方式从后期部署调用外部脚本,如果是这样,如何?
sql sql-server database-project sql-server-2008 visual-studio
我正在查看一些C#代码,并且遇到了以下声明:
#if DEBUG
// Do something here
#else
// Do something else
#endif
Run Code Online (Sandbox Code Playgroud)
我假设DEBUG将在某处定义如下:
#define DEBUG
Run Code Online (Sandbox Code Playgroud)
但我无法找到这样的定义,尽管代码似乎表现得像设置的那样.DEBUG是一个特例,如果是这样,它是如何设置/取消设置的?
这似乎是一件很简单的事情,但我似乎无法找出正确的语法.我目前有这个:
KeyValuePair<string, string>[] kvpArr = new KeyValuePair<string,string>[];
Run Code Online (Sandbox Code Playgroud)
但是,这似乎有效:
KeyValuePair<string, string>[] kvpArr = new KeyValuePair<string,string>[10];
Run Code Online (Sandbox Code Playgroud)
但我最初不知道数组的大小.我知道我可以使用一系列KVP,我可能会这样做,但我只是想知道如何实现这一点.
以下代码给出了一个错误:
// GetDirectoryList() returns Dictionary<string, DirectoryInfo>
Dictionary<string, DirectoryInfo> myDirectoryList = GetDirectoryList();
// The following line gives a compile error
foreach (Dictionary<string, DirectoryInfo> eachItem in myDirectoryList)
Run Code Online (Sandbox Code Playgroud)
它给出的错误如下:
Cannot convert type 'System.Collections.Generic.KeyValuePair<string,System.IO.DirectoryInfo>' to 'System.Collections.Generic.Dictionary<string,System.IO.DirectoryInfo>’
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么要尝试执行此转换?我可以不在这种类型的对象上使用foreach循环吗?
我目前在我的MVC项目的HomeController中有以下代码:
public class HomeController : Controller
{
public ActionResult Index()
{
MyDataContext dc = new MyDataContext();
IQueryable<Table1Data> j =
from n in dc.Table1
select n;
return View(j);
}
Run Code Online (Sandbox Code Playgroud)
这样可行,但现在我想将第二个表传递到同一个视图.所以我在想我应该能做这样的事情:
public class HomeController : Controller
{
public ActionResult Index()
{
MyDataContext dc = new MyDataContext();
IQueryable<Table1Data> j =
from n in dc.Table1
select n;
IQueryable<Table2Data> l =
from k in dc.Table2
select k;
return View(j, l);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法有观点接受两个模型是这样,或者,一个方法来合并两个结果集(这两个表没有以任何方式联系?
我在我的UWP应用程序中有一个InkCanvas,并希望显示一个图像(理想情况下是Canvas的一部分,但除此之外,以某种方式覆盖它(我的想法是我可以将更改的图像保存回图像文件). WPF似乎允许InkCanvas有孩子,但在UWP似乎不可能.我尝试了以下内容:
<InkCanvas x:Name="drawInkCanvas">
<Image Source="{Binding DrawingImage}"/>
</InkCanvas>
Run Code Online (Sandbox Code Playgroud)
但这不起作用; 我也试过这个:
<Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
<InkCanvas x:Name="drawInkCanvas" Opacity=".5"/>
<Image Source="{Binding DrawingImage}" Opacity=".5"/>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
公平地说,我对此没有太大的期望; 无论如何,虽然它确实有点工作,但它使图像和InkCanvas看起来都不对,显然,我不允许保存生成的图像.
理想情况下,会有背景图像或类似的东西.有什么我可以用来实现这一目标; 我认为我可能不得不用标准画布替换InkCanvas,然后重新编写所有InkCanvas功能!
c# ×8
.net ×2
arrays ×1
asp.net-mvc ×1
axapta ×1
csproj ×1
dictionary ×1
generics ×1
inkcanvas ×1
linq ×1
methods ×1
sql ×1
sql-server ×1
versioning ×1
x++ ×1