在Python中,您可以这样写:
def add(a, b, c):
return a + b + c
list_of_args = [4, 5, 6]
print(add(*list_of_args))
Run Code Online (Sandbox Code Playgroud)
前面的星号list_of_args展开了iterable,使其元素是参数a,b和c的值.
你能在F#做类似的事吗?具体来说,我正在寻找一个好的或惯用的F#解决方案,并且不想用反射等来解决问题.
我无处可寻.我想在gridview中的数据绑定表达式中引用行对象本身,如下所示:
<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<asp:Label runat="server"
Text = '<%# GetPendingReason(Eval("this")) %>' />
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为"this"不涉及任何属性.引用单个属性可以正常工作,但是如何引用当前行?
我有一个庞大的存储库.不久之前,一个名为FooBar.xml的文件已从tfs中的某个未知目录中删除.查找文件最简单的方法是什么?存储库中有数千个目录,因此手动检查每个目录以查找已删除的文件都不是一个可行的选择.
GetProcAddress()在 32 位 DLL 上使用的正确方法是什么?在 win32 上,共有三种调用约定,cdecl、stdcall 和 fastcall。如果 DLL 中的函数是foo他们将通过以下方式修饰名称_foo,_foo@N并且@foo@N。
但是如果 dll 的作者使用了 .def 文件,那么导出的名称将更改为“foo”,没有任何修饰。
这给我带来了麻烦,因为如果我想foo从使用 stdcall 的 dll加载,我应该使用装饰名称:
void *h = LoadLibraryEx(L"foo.dll", NULL, 0);
GetProcAddres((HMODULE)h, L"_foo@16");
Run Code Online (Sandbox Code Playgroud)
或未装饰的:
void *h = LoadLibraryEx(L"foo.dll", NULL, 0);
GetProcAddres((HMODULE)h, L"foo");
Run Code Online (Sandbox Code Playgroud)
? 我应该猜吗?我查看了很多 32 位 DLL 文件(stdcall 和 cdecl),它们似乎都导出了未修饰的名称。但是你能假设情况总是如此吗?
winapi calling-convention stdcall getprocaddress name-decoration