Tag: C#的

如何在ItemsControl中的项目之间添加分隔符

我需要在Items Control中显示一个集合中的数字列表。 所以项目是:“1”,“2”,“3”。 当它们被渲染时,我需要用逗号(或类似的东西)来分隔它们。 所以上面的3个项目看起来是这样的:“1,2,3”。 我怎样才能添加一个分隔符到单个项目,而没有一个钉在列表的最后? 我没有停留在使用ItemsControl,但这就是我已经开始使用。

为什么我得到“未定义的引用sqrt”错误,即使我包含math.h头?

我对C很新,我有这样的代码: #include <stdio.h> #include <math.h> int main(void) { double x = 0.5; double result = sqrt(x); printf("The square root of %lf is %lf\n", x, result); return 0; } 但是,当我编译这个: gcc test.c -o test 我得到这样的错误: /tmp/cc58XvyX.o: In function `main': test.c:(.text+0x2f): undefined reference to `sqrt' collect2: ld returned 1 exit status 为什么会发生? sqrt()不在math.h头文件中? 我得到与cosh和其他三angular函数相同的错误。 为什么?

为什么string在许多编程语言中是不可变的?

可能重复: 为什么string不能在Java和.NET中变化? 为什么.NETstring是不可变的? 有几种语言select了这种语言,比如C#,Java和Python。 如果为了节省内存或提高像比较这样的操作的效率,它对连接和其他修改操作有什么影响?

是否有RValue Reference(&&)的返回有用的情况?

当一个函数应该返回一个RValue引用时是否有一个原因? 技巧,技巧,成语或模式? MyClass&& func( … ); 我知道一般返回引用的危险,但有时候我们也是这么做的,难道我们( T& T::operator=(T)只是一个习惯用法的例子)。 但是T&& func(…)怎么样? 我们可以从中获益吗? 当你编写库或API代码时,与仅仅客户端代码相比,可能会有所不同?

app.config / web.config中的variables

是否可以在app.config或web.config文件中执行以下操作? <appSettings> <add key="MyBaseDir" value="C:\MyBase" /> <add key="Dir1" value="[MyBaseDir]\Dir1"/> <add key="Dir2" value="[MyBaseDir]\Dir2"/> </appSettings> 然后我想在我的代码中访问Dir2,只需说: ConfigurationManager.AppSettings["Dir2"] 这将帮助我在不同的服务器和位置安装我的应用程序时,我将只需要更改我的整个app.config一个条目。 (我知道我可以pipe理代码中的所有连接,但我更喜欢这种方式)。

最快的方法将图像转换为字节数组

我正在制作远程桌面共享应用程序,在该应用程序中,我捕获桌面的图像并将其压缩并发送到接收器。 要压缩图像我需要将其转换为一个字节[]。 目前我正在使用这个: public byte[] imageToByteArray(System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } public Image byteArrayToImage(byte[] byteArrayIn) { MemoryStream ms = new MemoryStream(byteArrayIn); Image returnImage = Image.FromStream(ms); return returnImage; } 但我不喜欢它,因为我必须将它保存在一个ImageFormat,并可能会耗尽资源(减慢),以及产生不同的压缩results.I阅读使用Marshal.Copy和memcpy,但我无法了解他们。 那么有没有其他方法可以达到这个目标呢?

使用带引号和不带引号的string拆分逗号分隔的string

我有以下逗号分隔的string,我需要拆分。 问题是,一些内容是在引号内,并包含不应该在拆分中使用的逗号… 串: 111,222,"33,44,55",666,"77,88","99" 我想输出: 111 222 33,44,55 666 77,88 99 我试过这个: (?:,?)((?<=")[^"]+(?=")|[^",]+) 但它读取“77,88”,“99”之间的逗号作为命中,我得到以下输出: 111 222 33,44,55 666 77,88 , 99 有谁能够帮助我? 我没有时间… 🙂 /彼得

隐藏C#TabControl上的Tab选项卡标题

我正在开发一个Windows窗体应用程序与几个页面。 我正在使用TabControl来实现这一点。 而不是使用标题切换标签之间,我希望我的应用程序来控制,例如,用户填写文本框,然后单击下一个button后,应打开下一个选项卡。

inheritance共享方法名称的接口

有两个基类具有相同的函数名称。 我想inheritance他们两个,并以不同的方式骑在每个方法。 我怎样才能做到这一点与单独的声明和定义(而不是定义类定义)? #include <cstdio> class Interface1{ public: virtual void Name() = 0; }; class Interface2 { public: virtual void Name() = 0; }; class RealClass: public Interface1, public Interface2 { public: virtual void Interface1::Name() { printf("Interface1 OK?\n"); } virtual void Interface2::Name() { printf("Interface2 OK?\n"); } }; int main() { Interface1 *p = new RealClass(); […]

通过引用在C ++ 11 lambda中捕获参考

考虑这个: #include <functional> #include <iostream> std::function<void()> make_function(int& x) { return [&]{ std::cout << x << std::endl; }; } int main() { int i = 3; auto f = make_function(i); i = 5; f(); } 这个程序保证输出5而不会调用未定义的行为? 我知道它是如何工作的,如果我通过值捕获x ( [=] ),但我不确定是否通过引用捕获它来调用未定义的行为。 难道是在make_function返回之后,我最终会得到一个make_function引用,或者只要最初引用的对象仍然存在,被捕获的引用就能保证工作? 在这里寻找明确的基于标准的答案:) 到目前为止 ,它在实践中运作良好;)