许多开发人员会声称从一种编程语言转移到另一种编程语言相对简单,特别是如果语言基于类似的范例.然而,在实践中,努力不是通过学习语言的语法,而是通过深入理解语言的细微差别,更重要的是了解语言库中提供的内容.例如,从语法角度来看,从Java切换到.Net并不困难,但编程效率需要对可用库有很好的了解.鉴于语言差异,从PHP切换到.Net可能会带来更大的障碍.
开发人员在同一范例中迁移到不同语言的实际开销是多少?如果范式不同怎么办?
在.NET 4 beta 2中,有一个新的Numerics命名空间 struct BigInteger.该文件指出,这是一个不变的类型,因为我本来期望.
但我对后增量运算符(++)有点困惑.这种defintely似乎改变了价值.以下while循环有效:
static BigInteger Factorial(BigInteger n)
{
BigInteger result = BigInteger.One;
BigInteger b = BigInteger.One;
while (b <= n)
{
result = result * b;
b++; // immutable ?
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
这就是MSDN对Increment运算符的看法:
因为BigInteger对象是不可变的,所以Increment运算符创建一个新的BigInteger对象,其值比value表示的BigInteger对象多一个.因此,重复调用Increment可能很昂贵.
一切都很好,我会理解,如果我必须使用, b = b++但显然++本身就足以改变一个价值.
有什么想法吗?
编辑:
正如Lasse所指出的那样,对增量后工作的方式有一个逐步的说明.但这仍然似乎与不变性有关.例如,我无法想象使用此运算符是线程安全的.
为什么我必须将MeasureString()结果宽度增加21%
size.Width = size.Width * 1.21f;
来逃避Word Wrap DrawString()?
我需要一个解决方案来获得确切的结果.
相同的字体,相同的字符串格式,两个函数中使用的文本相同.
从OP回答:
SizeF size = graphics.MeasureString(element.Currency, Currencyfont, new PointF(0, 0), strFormatLeft);
size.Width = size.Width * 1.21f;
int freespace = rect.Width - (int)size.Width;
if (freespace < ImageSize) { if (freespace > 0) ImageSize = freespace; else ImageSize = 0; }
int FlagY = y + (CurrencySize - ImageSize) / 2;
int FlagX = (freespace - ImageSize) / 2;
graphics.DrawImage(GetResourseImage(@"Flags." + element.Flag.ToUpper() + ".png"),
new Rectangle(FlagX, FlagY, ImageSize, ImageSize)); …Run Code Online (Sandbox Code Playgroud) 我有一个机场名称列表,我的用户可以输入一个机场名称来选择它以便进一步处理.
你会如何处理拼写错误的名字并提出一系列建议?
language-agnostic algorithm spell-checking search-suggestion
当我在Visual Studio 2008立即窗口中键入它时:
? .9 - .8999999999999995
它给了我这个答案:
0.00000000000000055511151231257827
文档说双精度具有15-16位精度,但是它给出了32位精度的结果.所有额外的精度来自何处?
我想知道如何为winform应用添加帮助支持.
如何创建chm文件以获取帮助,以及如何将其与应用程序集成.我想为我的应用程序中的几乎所有控件提供帮助.
有人可以通过一些代码告诉我如何从另一个类调用位于Form类中的函数吗?
有些代码会有很大的帮助!
谢谢
编辑:这是我目前的代码
public partial class frmMain : Form
{
//*******Class Instances*******
ImageProcessing IP = new ImageProcessing();
//********************
public void StatusUpdate(string text)
{
tlsStatusLabel.Text = text;
}//
public frmMain()
{
InitializeComponent();
}//
}
class ImageProcessing
{
private void UpdateStatusLabel(frmMain form, string text)
{
form.StatusUpdate(text);
}//
private UpdateLabel()
{
UpdateStatusLabel(frmMain, "Converting to GreyScale");
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是与frmMain.
目前我正在为大学做一个关于F#的培训.我有一个关于F#交互式控制台和F#编译器的问题.
F#编译器在编译F#-source时生成Microsoft中间语言(MSIL)代码.然后,在执行编写的程序时,JIT编译器将其转换为机器代码.
但是F#Interpreter Console有什么作用?它是否也按行每行将F#代码转换为MSIL,然后将其转换为机器代码?或者它是否将F#-Code直接转换为机器代码?
如果它首先将它转换为IL,那么我认为可能会有一个IL解释器,因为JIT编译器只编译完整的程序.不是吗?
你怎么看,F#-interpreter如何处理F#代码并进行翻译?
问候,马丁
我有一个ac#console应用程序,最多可以创建5个线程.
线程执行正常,但UI线程在完成其工作时关闭.
有没有办法保持主UI线程运行,只要侧线程正在运行?
foreach (var url in urls)
{
Console.WriteLine("starting thread: " + url);
ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(myMethod), url);
}
Run Code Online (Sandbox Code Playgroud)
我按照上面的代码开始了我的线程.
有没有办法在Windows7和VS2010中编写WinRT应用程序?一些SDK下载?
我对网络东西特别感兴趣(Windows.Networking.Socktes)
或者我是否需要使用Windows 8开发人员预览?
.net ×6
c# ×5
winforms ×2
algorithm ×1
biginteger ×1
f# ×1
fcl ×1
graphics ×1
immutability ×1
interpreter ×1
migration ×1
precision ×1
string ×1
windows-7 ×1