草庐IT

符号运算

全部标签

c# - WinForms 文本框的自定义插入符号

我正在WinForms.Net2.0应用程序中开发自定义super终端应用程序。我在面板中有一个多行文本框,您可以在其中与硬件设备进行交互。我的客户想要一个自定义插入符号,一个大小为一个字符空间的填充矩形,而不是默认的垂直线。我知道.Net默认不提供执行此操作的选项,但必须有一些Windows函数才能执行此操作。 最佳答案 这些是Windows提供的nativeCaret函数列表,您可以将它们用于您的应用程序。[DllImport("User32.dll")]staticexternboolCreateCaret(IntPtrhWn

c# - 使用插值 vs "+"运算符连接字符串的内存使用情况

我看到了使用内插字符串在可读性方面的好处:stringmyString=$"Hello{person.FirstName}{person.LastName}!"通过这种方式完成的串联:stringmyString="Hello"+person.FirstName+""person.LastName+"!";作者thisvideotutorial声称第一个可以更好地利用内存。怎么会? 最佳答案 作者实际上并没有说一个比另一个更好地利用内存。它在抽象中说,一种方法“充分利用了内存”,这本身并没有什么实际意义。但是不管他们怎么说,这两种方

c# - 为什么在测试受约束的泛型类型时直接转换失败但 "as"运算符成功?

``在编译一些使用具有类型约束的泛型的C#代码时,我遇到了一个有趣的好奇心。我写了一个快速测试用例来说明。我在VisualStudio2010中使用.NET4.0。namespaceTestCast{publicclassFruit{}publicclassApple:Fruit{}publicstaticclassTest{publicstaticvoidTestFruit(FruitTypefruit)whereFruitType:Fruit{if(fruitisApple){Appleapple=(Apple)fruit;}}}}转换为Apple失败并出现错误:“无法将类型‘Fr

c# - 您如何看待 C# 中的 ??= 运算符?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。您认为C#会支持像??=运算符这样的东西吗?取而代之的是:if(list==null)list=newList();也许可以这样写:list??=newList();现在,我可以使用(但在我看来可读性不佳):list=list??newList();

c# - 在 C# 中使用带有 `new` 运算符的值类型的困境

当operatornew()与引用类型一起使用,实例的空间在堆上分配,引用变量本身放在堆栈上。除此之外,在堆上分配的引用类型实例中的所有内容都被清零。例如这里是一个类:classPerson{publicintid;publicstringname;}在以下代码中:classPersonDemo{staticvoidMain(){Personp=newPerson();Console.WriteLine("id:{0}name:{1}",p.id,p.name);}}p变量在堆栈上并且是Person的创建实例(它的所有成员)都在堆上。p.id将是0和p.name将是null.这是因为在

c# ->> 运算符在 C# 中有什么作用?

我是C#的新手,正在尝试做一个基本的图像处理软件。我了解此代码段从WriteableBitmap像素“当前”的ARGBint值中提取A、R、G、Bfor(inti=0;i>24);varred=(byte)(current>>16);vargreen=(byte)(current>>8);varblue=(byte)(current);//Somecode}“>>”在做什么来转换值?此外,如果我分别对r、g和b进行一些计算,我如何将它们转换回整数ARGB值以用新像素替换原始像素?提前致谢。编辑:谢谢大家,现在明白了。 最佳答案 二元

c# - 将句子拆分成单词但在 C# 中遇到标点符号问题

我已经看到了一些类似的问题,但我正在努力实现这一目标。给定一个字符串,str="月亮是我们的天然卫星,即它绕着地球旋转!"我想提取单词并将它们存储在数组中。预期的数组元素是这样的。themoonisournaturalsatellitei.e.itrotatesaroundtheearth我尝试使用String.split(','\t','\r')但这不能正常工作。我也尝试删除.,和其他标点符号,但我想要一个像“i.e.”这样的字符串也被解析出来。实现这一目标的最佳方法是什么?我也尝试使用regex.split无济于事。string[]words=Regex.Split(line,@"

c# - C#中单个&符号的第二个含义是什么?

我在C#中使用了单个与号(&)表示“检查第二个条件语句,即使第一个为false”。但是下面似乎是&的不同含义,谁能解释一下i&1在下面的例子中是如何工作的?Listscores=newList{1,2,3,4,5,6,7,8};varevenScores=scores.Where(i=>i%2==0);varevenScores2=scores.Where(i=>(i&1)==0); 最佳答案 单个&是“按位与运算符”,就像dove说。我正在看问题的第二部分:“为什么它有效?”用二进制思考:000=0001=1010=2011=31

c# - 无法解析符号 'Void'

在我类(class)的负责人(我正在从别人那里接手一个项目),我有以下内容:usingJava.Util;usingObject=Java.Lang.Object;usingVoid=Java.Lang.Void;无效,显示为红色,带有“无法解析符号‘无效’”并且看不到我可能遗漏的内容。我已经检查了它来自的PC(应用程序确实建立在那个PC上)并安装了相同的(是的,我看到了,更新的,但特别安装了“相同”的项目)Java项目:Java7更新45Java6更新31JavaSE开发工具包6更新31这没有做任何改变。我检查了项目的“引用”分支,一切都显示相同(事实上,我在任何地方都看不到对Jav

c# - 使用 '== false' 而不是否定运算符时,内联变量声明不会编译

考虑以下片段:voidFoo(objectsender,EventArgse){if(!(senderisComboBoxcomboBox))return;comboBox.DropDownWidth=100;}相比于voidBar(objectsender,EventArgse){if((senderisComboBoxcomboBox)==false)return;comboBox.DropDownWidth=100;}包含Foo()的代码在.Net4.6.1中成功编译,而包含Bar()的代码导致Useofunassignedlocalvariable'comboBox'。在不讨论