有人可以帮忙赐教吗?
我去办理了TFS的一些变更,我的办理登机手续被拒绝了.它促使我看一下我编辑过的switch语句.
我发现Visual Studio 2017声称没有编译时间问题,并允许我成功构建和部署应用程序.最重要的是,即使方法的单元测试似乎也按预期传递.
public enum PaymentStatus
{
Issued,
Cleared,
Voided,
Paid,
Requested,
Stopped,
Unknown
}
public class PaymentViewModel
{
public PaymentStatus Status { get; set; }
...
public String StatusString
{
get
{
switch (this.Status)
{
case PaymentStatus.Cleared:
return "Cleared";
case PaymentStatus.Issued:
return "Issued";
case PaymentStatus.Voided:
return "Voided";
case PaymentStatus.Paid:
return "Paid";
case PaymentStatus.Requested:
return "Requested";
case PaymentStatus.Stopped:
return "Stopped";
case PaymentStatus Unknown:
return "Unknown";
default:
throw new InavlidEnumerationException(this.Status);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,请注意"case PaymentStatus Unknown"行缺少'.' 点运算符.如上所述,该项目建立并运行; 但未能使用门控构建服务器签入. …
在大多数现代IDE中,您可以使用Debug和Release构建配置,并且可以在它们之间快速切换.
在Delphi 7中,这似乎不可能.我必须手动转到项目设置并切换优化和所有调试信息.
如果有一个插件或其他类似的东西为我处理这个将是很好的.
有谁知道吗?还有其他建议吗?
编辑:我无法升级到Delphi 2007或2009,因为我们有一个必须转换的大型Delphi 7代码库.我同意这是理论上最好的解决方案:P
最近我在泛型的背景下读到了一个术语"裸体约束".这是什么意思?我们在哪里使用它?
我有一个创建无效目录的应用程序...例如c:\Program Files\somedirectory. - 句点是目录名称的一部分.
现在,我已经尝试了所有关于在delphi中重命名文件的知识.
我试过让Windows短路径,ExtractShortPathName但这只是返回一个空字符串.(调用commandPrompt:"RENAME ShortOldName NewName")
现在我知道我可以在cmd中手动执行它,但我不打算花时间浏览所有文件并执行它;)
这是我的一些代码:
xshortname := ExtractFileName(ExtractShortPathName(ns + oldName));
xNewName := newName;
cmdTxt := PWideChar('/C cd ' + ns);
cmdTxt2 := PWideChar(cmdTxt + '&&' + ' RENAME ' + xshortname + ' ' + #34 + xNewName + #34);
ShellExecute(0, nil, 'cmd.exe', cmdTxt2, nil, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)
我知道shellExecute不是这里使用的最佳方法.我只是想让臭味发挥作用.我将担心以后优化和正确的Delphi编码.
所以我的问题是:有没有人知道一个允许我重命名无效目录的功能?
为什么不能投射一个实例:
sealed class Foo
{
public void Go() { }
}
Run Code Online (Sandbox Code Playgroud)
...到这个界面:
interface IBar
{
void Go();
}
Run Code Online (Sandbox Code Playgroud)
......即使Foo有签名IBar?
如何将实例Foo转换为IBar?假设我无法控制Foo.
我有一个ac#assembly,我正在通过COM从Delphi(win32 native)应用程序调用它.
这适用于我测试过的所有机器,除了一台.
问题是Delphi应用程序在尝试创建COM对象时获得"Class not registered".
现在,当我查看下面的注册表时HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID,列出的GUID与AssemblyInfo.cs中的程序集Guid不同.它应该是相同的 - 它在安装它的所有其他计算机上是相同的.
我试过了regasm /unregister delphitocsharp.dll,删除了注册表项.然后如果我这样做regasm delphitocsharp.dll,注册表键返回,但GUID与之前相同(即错误),Delphi仍然获得"Class not registered".
工作机器上的DelphiToCSharp.dll与非工作机器上的版本完全相同(通过md5验证).
我能想到的只是之前注册了一个旧版本的dll,并且仍然存在一些使该文件混乱的文件的残余.
我该如何修复或至少进一步诊断此问题?
我正在建立一个DataGridViewComboBoxColumn这样的:
var newColumn = new DataGridViewComboBoxColumn() {
Name = "abc"
};
newColumn.DataSource = new string[] { "a", "b", "c" };
dgv.Columns.Add(newColumn);
Run Code Online (Sandbox Code Playgroud)
这样做:每行在该列中都有一个下拉框,填充了a,b,c.
但是,现在我想修剪某些行的列表.我试图像这样设置每行的列表:
foreach (DataGridViewRow row in dgv.Rows) {
var cell = (DataGridViewComboBoxCell)(row.Cells["abc"]);
cell.DataSource = new string[] { "a", "c" };
}
Run Code Online (Sandbox Code Playgroud)
但是,此代码无效 - 每行仍显示"a","b","c".
我曾尝试更换new string[]同new List<string>和new BindingList<string>,都无济于事.
我也尝试删除设置的代码newColumn.DataSource,但是列表是空的.
我该如何正确地做这件事?
这是我想要的DI容器:
public class Class
{
public Class(IDependency dependency, string data) { }
}
var obj = di.Resolve<Class>(() => new Class(null, "test"));
Run Code Online (Sandbox Code Playgroud)
兴趣点:
另一个主要要求是我希望自动拾取我的组件,即我不想注册类 - 我希望IoC能够选择它,因为它知道如何解决IDependency.
此外,Property Injection有时也很有用,但这是可选的.
问题实际上是关于功能的组合 - 拥有所有功能 - 类型安全,参数,自动拾取......很容易检查一个功能,但除非一个人熟悉,否则它们的组合不容易验证特定容器并了解其功能.这样的问题.
我遇到了一个有点特殊的语法,你能帮我找出它的含义吗?谢谢.
SELECT ROW NUMBER() OVER (ORDER BY Product.ProductID) FROM Product;
Run Code Online (Sandbox Code Playgroud)
此外,这失败了.我特别感兴趣ROW NUMBER() OVER.这是我第一次遇到OVER关键字.
如果您需要完整的示例,请告诉我.为了清楚起见,我稍微缩短了一点.
我已经在一些地方(例如这里)阅读了有关PyData的内容,但我仍然对这个术语的含义感到困惑.
PyData是官方实体吗?(例如,是否有一个拥有/支持PyData.org的基金会?).这只是一次会议吗?或者它是否主要用于松散地引用Python包列表?
哪些包被认为是PyData生态系统的核心部分?它只是可用于处理数据的任何包吗?(那将是非常通用的).我发现的一些软件包通常与PyData相关联:
此列表是否与通常与PyData关联的包组一致?或者有任何重要的遗漏?
最后,PyData生态系统在多大程度上支持Python 3.x?假设大多数PyData生态系统与Python 3.x兼容是否安全?如果没有,哪些包不支持呢?