很好,我是F#的全新手.我创建了我的第一个控制台应用程序,我想不出F#如何决定我.FS的哪些文件它要在启动时运行.通常,应用程序有一个入口点,而F#表单我见过的项目有一个入口点.我的控制台项目没有.
它总是似乎从我添加的最后一个文件开始,这是一个巨大的痛苦.我无法相信它应该以这种方式工作.我一定做错了什么.
我有一个可观察的代表股票价格的流.如果我的可观察序列上没有观察者,我希望能够从提供价格流的远程服务器断开连接,但我不希望这样做,直到每个观察者都调用Dispose().然后以类似的方式,当第一个人调用Subscribe时,我想重新连接到远程服务器.
有没有办法弄清楚有多少观察者在可观察量上调用了订阅?或者也许是一种了解观察者何时调用Subscribe或Dispose的方法?
WinForms应用程序在更大的显示器上运行速度会更慢(即更大的分辨率),而其他更小的其他应用程序是否相同 我的直觉是肯定的,因为有更多的房地产要画,但我找不到任何关于效果的信息.
我问,因为我们有一个WinForms应用程序,通常在两台22英寸显示器上运行,但我们有几个用户在两台30英寸显示器上运行它们,并且它们的GUI似乎总是比使用22英寸显示器的人更多延迟.
我需要使用F#执行一些基本的OLS回归.要做到这一点,我需要一些线性代数函数,但我很困惑那里有什么.我找不到任何方法来反转矩阵.有一些名为库的文档Microsoft.FSharp.Math.LinearAlgebra,但我不知道它是否存在.
有没有办法在打开之前过滤Tortoise SVN修订图?它花了一分多钟打开它,导致太多的走廊剑术.我可以在打开后轻松过滤,但这就是我的问题.
理想情况下,我真的只需要看到最近的100个左右的修订,而不是从一开始就是一切.
我有一个 C# 发布者和订阅者,它们使用 ActiveMQ 和 NMS 相互交谈。一切正常,除了我无法知道 ActiveMQ 何时出现故障。这对消费者来说尤其不利。他们停止获取数据,但除了数据停止显示这一事实之外,不会引发任何错误或事件。
有没有办法使用 NMS(特别是 Apache.NMS.IConnection 或 Apache.NMS.ISession 对象)
我从 Spring 下载了我正在使用的实现,但我没有使用任何特定的 spring 实现,我使用的所有内容都在 Apache.NMS 和 Apache.NMS.ActiveMQ 命名空间中。
我有一个我无法弄清楚的设计问题.这是我得到的:
一般来说,我有两种常见类型的对象Strikes和Options.这些已被抽象为IStrike和IOption两个接口.
假设IOption有以下几个字段,实际上大约有10倍,但我们可以使用以下三个来说明问题.
interface IOption
{
double Bid{get;set;}
double Ask{get;set;}
double ImpliedVol{get;set;}
}
interface IStrike
{
IOption Call{get;set;}
IOption Put{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
现在,这一切都很好,但是让我说我已经有了以下方法来对IOption隐含卷执行一些"数学"
public double SquareImpliedVol(IOption opt)
{
return Math.Pow(opt.ImpliedVol,2);
}
Run Code Online (Sandbox Code Playgroud)
同样,不是问题,但是当我为我的测试编写一些模拟对象时,我不清楚是否需要实现Bid和Ask.我没有,但我不知道除非我知道SquareImpliedVol里面的内容,这意味着我正在编写针对代码的测试,这很糟糕.
所以为了解决这个问题,我可以创建另一个只包含ImpliedVol属性的接口IOptionImpliedVol,然后让IOption继承自IOptionImpliedVol,就像这样
interface IOption : IOptionImpliedVol
{
double Bid{get;set;}
double Ask{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
然后我们可以切换SquareImpliedVol
public double SquareImpliedVol(IOptionImpliedVol opt)
{
return Math.Pow(opt.ImpliedVol,2);
}
Run Code Online (Sandbox Code Playgroud)
而且我们很棒.我可以写模拟对象,一切都很甜蜜.除了....我想编写一个将在List上运行的方法,但我需要的唯一属性是IStrike,它是Call.ImpliedVol和Put.ImpliedVol.我想创造类似的东西
interface IStrikeImpliedVol
{
IOptionImpliedVol Call;
IOptionImpliedVol Put;
}
Run Code Online (Sandbox Code Playgroud)
然后我也可以
interface IStrike : IStrikeImpliedVol
{
IOption Call;
IOption Put;
}
Run Code Online (Sandbox Code Playgroud)
除非这不合法.我觉得必须有某种设计模式,我可以解决这个问题,但我陷入了某种组合和继承的网络.
我在这里找到了这个版本的VB版本,但是我想使用Lambda Expression来获取字符串列表,然后在字符串中的每个项目前面添加一个字符串.
似乎使用ForEach最终按值发送字符串,因此任何更改都会消失.这是我希望工作的代码行.
listOfStrings.ForEach((listItem) => {listItem = listItem.Insert(0,"a");});
Run Code Online (Sandbox Code Playgroud) 双方ShowDialog();并ShowDialog(IWin32Window);似乎做同样的事情对我来说.文档也不是很清楚.
我被告知ShowDialog(IWin32Window);将确保对话窗口位于作为所有者窗口传入的内容之上.
MSDN文档没有提到这一点,所以感觉有点像黑魔法.
我需要在我的应用程序中添加一些日志记录,它需要处于发布模式,我需要确保日志代码没有在生产中运行.因此,我想使用#define和#if来确保在移动到生产时删除日志语句.
麻烦的是,我需要记录多个文件,将#define放在每个文件的顶部是一件痛苦的事.有没有办法集中#define?这样我就可以从所有文件中删除单个#define而不是#define(这意味着我几乎肯定会忘记一个).