不知道其他30篇文章是如何在这里帮助我的,但我正在使用这些重载的ac#dll:
function TqlForBidAskTrade(string, int?, params string[])
function TqlForBidAskTrade(string[], int?, params string[])
Run Code Online (Sandbox Code Playgroud)
我可以用c#中的params调用这个方法,如下所示:
TqlForBidAskTrade("string", null)
Run Code Online (Sandbox Code Playgroud)
F#中的等价物是什么?我似乎无法得到任何东西来编译.我试过了:
TqlForBidAskTrade("string", null)
TqlForBidAskTrade("string", Nullable<int>())
TqlForBidAskTrade("string", Nullable<int>(), null)
TqlForBidAskTrade("string", Nullable<int>(), [])
TqlForBidAskTrade("string", Nullable<int>(), ["doodah"])
TqlForBidAskTrade("string", 4, ["doodah"])
Run Code Online (Sandbox Code Playgroud)
看起来好像我应该偶然发现所有相似的请求,但我一直在寻找一个小时.
可能重复:
C# - 基本问题:什么是'?' ?
使用int16有什么好处?而不是在.net变量声明中使用int16?
dim i as int16?
dim i as int16
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码:
int? myInt = null;
var hasValue = myInt.HasValue;
Run Code Online (Sandbox Code Playgroud)
这是完全可以接受的,并且HasValue将返回false.但是我如何设法在一个null的对象上引用属性?以下不起作用:
public class MyClass
{
public bool MyBool { get { return true; } };
}
// Elsewhere in code...
MyClass myObject = null;
myObject.MyBool;
Run Code Online (Sandbox Code Playgroud)
这会引发空引用异常.事实上,我正在比较上面的两个代码片段,好像它们是相等的,这告诉我,我在某处误解了结构或某种语法.
有人可以告诉我为什么代码片段1不会引发异常,但为什么我的代码片段会出现?
在C++中,如果方法参数标识符未使用,则可以跳过它:
void foo( int, int ) {}
Run Code Online (Sandbox Code Playgroud)
这在接口实现的情况下非常有用,其中大量方法具有空体.是否有可能在C#中做类似的事情?直接测试给出错误:
public void OnAddInsUpdate( ref Array ) {} // Error, need identifier :(
Run Code Online (Sandbox Code Playgroud)