这有可能吗?在F#或C#中?都?
例如,我想在F#程序中设置一个条件断点,如下所示:
[x] Condition:
myTuple == (3,3)
(o) Is true
(_) Has changed
Run Code Online (Sandbox Code Playgroud)
谢谢.
具体来说,是Session变量.我的ASP.NET MVC项目中有一个.ashx,它将一些图像数据显示给用户,我需要能够访问我在会话中存储的对象.从控制器我可以很好地拉动对象,但在我的ashx页面中,context.Session为null.有什么想法吗?谢谢!
这是我正在尝试做的一个例子... context.Session总是返回null.
private byte[] getIconData(string icon)
{
//returns the icon file
HttpContext context = HttpContext.Current;
byte[] buffer = null;
//get icon data
if ( context.Session["tokens"] != null)
{
//do some stuff to get icon data
}
}
Run Code Online (Sandbox Code Playgroud) 这个:
Console c = System.console();
String readline;
String u = c.readLine("%s", "args");
Run Code Online (Sandbox Code Playgroud)
抛出NullPointerException.
然而该方法的签名是:
public String readLine(String fmt, Object... args)
Run Code Online (Sandbox Code Playgroud)
为什么抛出这个异常?
OOP原则(如果有的话)在动态类型环境中不适用或应用不同,而不是静态类型环境(例如Ruby vs C#)?这不是对静态与动态辩论的呼吁,而是我想看看是否存在适用于一方而非另一方适用于该范围的任何一方的公认原则,或者采用不同的方式.在"静态类型"OOP文献中,诸如"喜欢组合到继承"的短语是众所周知的.它们是否适用于动态方面?
例如,在动态类型环境中,似乎耦合的粒度不会超过方法的级别.换句话说,任何给定的函数调用只将调用者耦合到任何类可能满足的特定接口- 或者换句话说,任何像那个特定的鸭子那样嘎嘎叫的东西.
另一方面,在Java中,耦合的粒度可以与包一样高.一个特定的方法调用不仅与另一个类/接口建立契约,而且还将它耦合到该类/接口的package/jar/assembly中.
像这样的差异会产生不同的原则和模式吗?如果是这样,这些差异是否明确表达了?Ruby Pickaxe书中有一节向这个方向发展(Duck Typing/Classes Are Types),但我想知道是否还有其他内容.我知道Ruby中的设计模式,但还没有读过它.
编辑 - 有人认为Liskov在动态环境中并不像在静态环境中那样应用它,但我不禁想到它确实如此.一方面,没有与全班同学的高级合同.但是,不是所有对任何特定类别的调用构成一个隐含的契约,需要像Liskov所规定的那样由子类来满足吗?考虑以下."做一些酒吧"的电话会创建一个需要由子课程来处理的合同.这不是"将专门对象视为基类吗?"的情况:
class Bartender
def initialize(bar)
@bar = bar
end
def do_some_bar_stuff
@bar.open
@bar.tend
@bar.close
end
end
class Bar
def open
# open the doors, turn on the lights
end
def tend
# tend the bar
end
def close
#clean the bathrooms
end
end
class BoringSportsBar < Bar
def open
# turn on Golden Tee, fire …
Run Code Online (Sandbox Code Playgroud) oop design-patterns static-typing dynamic-typing static-language
我有一些代码可以自定义绘图.基本上它是具有WYSIWYG编辑器的表单填充程序.编辑器允许设置缩放级别.我的标签宽度相对于表单上的其他内容跳到不同的大小时出现问题.
我用来输出文本的代码示例如下.我很确定这个问题与字体大小的变化有关,与其他所有内容的缩放程度不相符.缩放级别必须更改足以在文本更改之前将字体提升到下一个大小,即使表单上的其他内容在每次更改时都移动了几个像素.
这会导致两个不同的问题 - 文本可能看起来很小,有很多空白区域,或者文本将是两个大的并与下一个控件重叠.当我有一整行文字时,事情看起来很糟糕.单字标签的变化不足以引起任何问题.
我考虑过限制缩放级别 - 现在我有一个1%增量的滑块.但我看不出任何一组水平比其他水平更好.我的表单有多个不同字体大小的标签,可以在不同的时间在较短和较长的时间内跳转.
MultDiv函数对结果进行舍入.我可以截断这个值以确保我总是更小而不是更长,但这看起来同样糟糕,因为这些缩放级别的间隙看起来要大得多.
代码说明:
这是目前在Delphi 7上的.这是我们最后一个没有前进的项目,因此欢迎与更新版本的Delphi相关的答案.
我们调查这个,我确实看到ExtDrawText函数存在.但是,更改为该功能似乎没有任何区别.
边界框的右侧设置为0,并且绘制文本时没有剪切,因为我们用于构建表单定义的工具不跟踪文本的右边界.我们只是将它直观地排列到正确的位置.
procedure OutputText(Canvas: TCanvas; LineNumber: integer; CurrentZoomLevel: integer; FontSize: integer; Text: string);
const
FormatFlags = DT_BOTTOM + DT_SINGLELINE + DT_NOPREFIX + DT_LEFT + DT_NOCLIP;
var
OutputBox: TRect;
ZoomedLineHeight: integer;
begin
ZoomedLineHeight := MulDiv(UnZoomedLineHeight, CurrentZoomLevel, 96);
Canvas.Font.Height := -MulDiv(FontSize, CurrentZoomLevel, 96);
OutputBox.Left := ZoomedLineHeight;
OutputBox.Right := 0;
OutputBox.Top := (LineNumber * ZoomedLineHeight);
OutputBox.Bottom := OutputBox.Top + ZoomedLineHeight;
DrawText(Canvas.Handle, PChar(Text), length(Text), OutputBox, FormatFlags);
end;
Run Code Online (Sandbox Code Playgroud)
编辑:
在这里使用mghie的答案是我修改过的测试应用程序.缩放代码随着MapMode的设置而消失.但是,TextOut函数似乎仍然选择完整的字体大小.除了我自己不需要计算字体的高度之外,文本似乎没有任何改变 - 地图模式对我来说也是如此.
我确实找到了这个非常有用的网页 …
在MySQL中,假设我有一个表格,其中一个名为'actionTime'的列被声明为'datetime'(YYYY-MM-DD HH:MM:SS).
有没有一种简单的方法可以使用"GROUP BY actionTime"但只使用'datetime'的'date'部分?
谢谢
我正在尝试在同一页面上运行多个草图.
init脚本指定:
/*
* This code searches for all the <script type="application/processing" target="canvasid">
* in your page and loads each script in the target canvas with the proper id.
* It is useful to smooth the process of adding Processing code in your page and starting
* the Processing.js engine.
*/
Run Code Online (Sandbox Code Playgroud)
当我指定每个草图的目标画布时,它不起作用:
<script type="application/processing" target="canvas1">..</script>
<script type="application/processing" target="canvas2">..</script>
<canvas id="canvas1".. />
<canvas id="canvas2".. />
Run Code Online (Sandbox Code Playgroud)
但它不起作用?这有可能吗?任何帮助将非常感激.我试图让一个内联画布元素的文档运行一个草图,彼此同步.
我有一个算法,它目前分配一个非常大的双精度数组,它经常更新和搜索.数组的大小为N ^ 2/2,其中N是算法运行的行数.为了与围绕算法的应用程序相关的目的,我还必须保留整个事物的副本.
当然,这限制了我的算法可以处理的行数,因为我有堆限制要与之抗衡.到目前为止,我已经离开了要求使用该算法的人更新-Xmx设置以分配更多空间,并且这已经正常工作.但是,我现在有一个真正的问题,我需要这个数组大于我可以适应内存.
我已经计划改变我的算法以减轻这个大型阵列的必要性,并在该领域有一些有希望的结果.然而,这是对该过程的根本改变,并且在它达到我当前代码的高度抛光条件之前需要更多的工作,该代码在生产中非常成功地运行并且已经存在了几年.
因此,当我完善我的新算法时,我想延长现有算法的寿命,这意味着解决与分配我庞大的双精度数组相关的堆限制.
我的问题是处理它的最佳方法是什么?我应该使用nio FileChannel和MappedByteBuffer,还是有更好的方法.如果我确实使用了nio方法,那么与相同大小的内存数组相比,我期望获得什么样的性能?
谢谢
在我的论文中,我有一个词汇表,解释了我使用的一些缩写.我把它放在桌子上让它看起来更好.但是,LaTeX不会在页面末尾打破行.
我知道我可以在表格中的任何一点强制换行,但它是一个很长的表(很多工作!)和手动换行使文本看起来锯齿状和丑陋.有没有一种很好的方法可以有一个漂亮的词汇表或在表中自动制作LaTeX断行?
......如果LaTeX不经常做这些事情我会非常喜欢它.就这样,我不断在感情和愤怒之间切换......
我有一个可以使用当前用户或root权限启动的应用程序.
事实上,应用程序可能同时运行两次 - 一次在当前用户下,一次在root下.
我想在应用程序在root下运行时通知用户.目前,我在其窗口标题中显示了这一点,但我更愿意更改应用程序的名称,以便在适当的位置显示"Appname(Root)".这样,名称将出现在菜单栏和Dock中,带有这个"根"信息,它将允许用户告诉Dock中的两个应用程序实例中的哪一个是根版本.
有人知道应用程序名称是否可以通过代码更改,即应用程序本身或其启动程序?
如果没有,我唯一的选择似乎是在Dock图标上添加一个徽章,上面写着"root",但这是我的最后一招,因为它不适用于菜单栏,也不适用于显示应用名称的其他工具(即其他应用程序启动器,如DragThing).