Tag: C#的

没有参数的构造函数没有括号是语言标准吗?

我正在使用g ++编译一个Cygwin中的C ++程序,而且我有一个构造函数没有参数的类。 我有线: MyClass myObj(); myObj.function1(); 而当试图编译它,我得到的消息: 错误:请求“myObj”中的成员'function1',它是非types的'MyClass()()' 经过一番研究,我发现修正是把第一行改成myClass myObj; 我可以发誓我已经用C ++中的圆括号做了空的构造函数声明。 这可能是我正在使用的编译器的限制还是语言标准真的说不使用不带参数的构造函数括号?

什么时候在编译时才会对constexpr函数进行评估?

由于可能在运行时调用一个声明为constexpr的函数,编译器决定是在编译时还是在运行时计算它? template<typename base_t, typename expo_t> constexpr base_t POW(base_t base, expo_t expo) { return (expo != 0 )? base * POW(base, expo -1) : 1; } int main(int argc, char** argv) { int i = 0; std::cin >> i; std::cout << POW(i, 2) << std::endl; return 0; } 在这种情况下,我在编译时是未知的,这可能是编译器将POW()作为在运行时调用的常规函数​​的原因。 然而,这种dynamic,似乎很方便,有一些不切实际的影响。 例如,在编译期间,是否可能会有编译器计算constexpr函数的情况,编译器决定将其作为一个普通函数来处理,而编译期间它也能工作? 有什么已知的常见陷阱?

在C ++中recursion到main()是合法的吗?

我读过C ++标准禁止在main()recursion,但g ++编译下面的代码没有抱怨: int main() { main(); } 任何人都可以澄清这一点?

哪个CI / O库应该用在C ++代码中?

在新的C ++代码中,我倾向于使用C ++ iostream库而不是C stdio库。 我注意到一些程序员似乎坚持stdio,坚持它更便携。 这是真的吗? 有什么更好的使用?

SQL Express连接string:相对于应用程序位置的mdf文件位置

我正在使用SQL Express数据库作为C#中的unit testing项目的一部分。 我的数据库位于这里: ./Databases/MyUnitTestDB.mdf 我想在app.config使用相对path或variables,而不是将连接string定义为: AttachDbFilename=C:\blah\blah\blah\yea\yea\yea\MyApplication\Databases\MyUnitTestDB.mdf 我已经看到|DataDirectory|的使用 但我是否正确认为这只适用于Web应用程序? 我想在应用程序configuration文件中控制这个,因为在生产中应用程序使用托pipe的sql数据库。

如何将C ++代码转换为C

我有一些C ++代码。 在代码中定义了许多类,它们的成员函数,构造函数,这些类的析构函数,很less的模板类以及大量的C ++东西。 现在我需要将源代码转换为纯C代码。 我有以下问题: 有什么工具可以将C ++代码和头文件转换为C代码吗? 我将不得不彻底重写代码(我将不得不删除构造函数,析构函数并将代码移入init() , deinit()函数;将类更改为结构,将现有成员函数作为函数指针定义的结构,然后使用函数指针调用这些函数等)。 如果我必须自己手动进行转换,那么在从C ++转换到C时需要注意哪些C ++特定的代码 – 数据结构/语义?

将图像转换为灰度

有没有办法将图像转换为灰度16位像素格式,而不是设置每个r,g和b组件的亮度。 我目前有一个从文件bmp。 Bitmap c = new Bitmap("filename"); 我想要一个位图d,即c的灰度版本。 我看到包含System.Drawing.Imaging.PixelFormat的构造函数,但我不明白如何使用它。 我是image processing和相关C#库的新手,但对C#本身有一定的经验。 任何帮助,参考在线来源,暗示或build议将不胜感激。 谢谢。 编辑:D是C的灰度版本。

gcc预处理器输出中以“#1”ac“'开头的行号是什么意思?

我用C打印出C预处理器的输出 gcc -E ac 输出包含许多行 # 1 "ac" # 1 "<built-in>" # 1 "<command-line>" # 1 "ac" # 1 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 1 3 # 19 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 3 # 1 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 1 3 # 31 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 3 # 32 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 3 # 20 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 2 3 我从来没有在C中看到这种语法。有人可以解释这是什么吗?

C#使用reflection来复制基类属性

我想使用reflection来将MyObject的所有属性更新到另一个属性。 我遇到的问题是,特定的对象是从基类inheritance而来的,这些基类的属性值是不会更新的。 下面的代码复制顶级属性值。 public void Update(MyObject o) { MyObject copyObject = … FieldInfo[] myObjectFields = o.GetType().GetFields( BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo fi in myObjectFields) { fi.SetValue(copyObject, fi.GetValue(o)); } } 我正在查看是否有更多的BindingFlags属性,我可以用来帮助,但无济于事。

检查Internet连接是否可用C#

什么是最简单的方法来检查互联网连接是否可用编程方式? 编辑:build议我尝试使用下面的方法,但它总是返回true。 [Flags] enum InternetConnectionState : int { INTERNET_CONNECTION_MODEM = 0x1, INTERNET_CONNECTION_LAN = 0x2, INTERNET_CONNECTION_PROXY = 0x4, INTERNET_RAS_INSTALLED = 0x10, INTERNET_CONNECTION_OFFLINE = 0x20, INTERNET_CONNECTION_CONFIGURED = 0x40 } class Program { [DllImport("WININET", CharSet = CharSet.Auto)] static extern bool InternetGetConnectedState(ref InternetConnectionState lpdwFlags, int dwReserved); static void Main(string[] args) { InternetConnectionState flags = 0; bool isConnected = InternetGetConnectedState(ref […]