Tag: C#的

什么是C#中的谓词?

我对使用谓词很陌生,刚学会如何写: Predicate<int> pre = delegate(int a){ a %2 == 0 }; 谓词将返回什么,编程时它有什么用处?

使用Makefile和cmake编译代码之间的区别

我在C / C ++上编码并使用(GNU)Makefile来编译代码。 我可以用cmake做同样的事情,并得到一个MakeFile。 不过,我不明白使用Makefile和cmake编译代码有什么区别。

带输出参数的Func <T>

我可以传递一个带有out参数的方法作为Func吗? public IList<Foo> FindForBar(string bar, out int count) { } // somewhere else public IList<T> Find(Func<string, int, List<T>> listFunction) { } Func需要一个types,所以不会在那里编译,并且调用listFunction需要一个inttypes,并且不允许输出。 有没有办法做到这一点?

民意调查和select有什么区别?

我指的是POSIX标准select和轮询系统C API调用。

gdbdebugging器最棘手/有用的命令

你可以发布你最棘手的和有用的命令,而你运行像gdb或dbxdebugging器。

静态成员函数错误; 如何正确书写签名?

当我尝试使用当前签名在g ++中编译我的代码时出现错误: cannot declare member function static void Foo::Bar(std::ostream&, const Foo::Node*) to have static linkage 我的问题是双重的: 为什么不这样编译? 什么是正确的签名,为什么? 使用C ++时签名一直是我的死亡 编辑:这是类头文件,以及: class Foo { public: Foo(); ~Foo(); bool insert(const Foo2 &v); Foo * find(const Foo2 &v); const Foo * find(const Foo2 &v) const; void output(ostream &s) const; private: //Foo(const Foo &v); //Foo& operator =(const Foo […]

在C / C ++预处理器中,它自己的行上有一个单一的井号/散列符号(#)的目的是什么?

我一直在看Boost的库源代码,我注意到经常有没有任何预处理器指令附加到他们的单磅迹象。 我阅读了GCC预处理器手册和规范指南,并且找不到任何相关内容。 (1) #ifndef BOOST_CONFIG_HPP (2) # include <boost/config.hpp> (3) #endif (4) # (5) #if defined(BOOST_HAS_PRAGMA_ONCE) (6) # pragma once (7) #endif 在第四行,英镑符号后没有任何东西。 这有什么影响? 它是否在C预处理器(CPP)规范中定义? 由于Boost是一个跨平台的库,我会假设任何CPP都应该正确parsing它。 整个代码中的随机英镑/散列符号的效果/副作用是什么?

无法启用约束。 一行或多行包含违反非空,唯一或外键约束的值

我做了一个外连接,并成功地在informix数据库中执行,但是在我的代码中出现以下exception: DataTable dt = TeachingLoadDAL.GetCoursesWithEvalState(i, bat); 无法启用约束。 一行或多行包含违反非空,唯一或外键约束的值。 我知道这个问题,但我不知道如何解决这个问题。 我使外部联接的第二个表包含一个复合主键,在以前的外部联接查询中为空。 编辑: SELECT UNIQUE a.crs_e, a.crs_e || '/ ' || a.crst crs_name, b.period, b.crscls, c.crsday, c.from_lect, c.to_lect, c.to_lect – c.from_lect + 1 Subtraction, c.lect_kind, e.eval, e.batch_no, e.crsnum, e.lect_code, e.prof_course FROM rlm1course a, rfc14crsgrp b, ckj1table c, mnltablelectev d, OUTER(cc1assiscrseval e) WHERE a.crsnum = b.crsnum AND b.crsnum […]

什么是布尔在C#中的大小? 真的需要4个字节吗?

我有两个字节和布尔值数组的结构: using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, Pack = 4)] struct struct1 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] values; } [StructLayout(LayoutKind.Sequential, Pack = 4)] struct struct2 { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public bool[] values; } 和下面的代码: class main { public static void Main() { Console.WriteLine("sizeof array of bytes: "+Marshal.SizeOf(typeof(struct1))); Console.WriteLine("sizeof array of bools: " + Marshal.SizeOf(typeof(struct2))); Console.ReadKey(); […]

const指针有什么意义?

我不是在讨论const指针的指针,而是指向const指针本身。 我正在学习C和C ++,超越了基本的东西,直到今天,我才意识到指针是按值传递给函数的,这是有道理的。 这意味着在一个函数内,我可以使复制的指针指向其他一些值,而不影响来自调用者的原始指针。 那么有一个函数头说什么点: void foo(int* const ptr); 在这样的函数内部,你不能使ptr指向其他的东西,因为它是const的,你不希望它被修改,但是像这样的函数: void foo(int* ptr); 工作也一样! 因为无论如何都会复制指针,即使修改副本,调用方中的指针也不受影响。 那么const的优点是什么?