Tag: C#的

为什么接口的显式实现不能公开?

我在接口的实现类的方法。 当我做明确的实现时,我得到了编译器错误 The modifier 'public' is not valid for this item 为什么不允许public显式的接口实现?

接口的可选参数

使用C#4.0 – 构build一个接口和一个实现接口的类。 我想在接口中声明一个可选参数,并将其反映在类中。 所以,我有以下几点: public interface IFoo { void Bar(int i, int j=0); } public class Foo { void Bar(int i, int j=0) { // do stuff } } 这编译,但它看起来不正确。 接口需要具有可选参数,否则在接口方法签名中不能正确反映。 我应该跳过可选参数,只使用可空types? 或者这样做是否会按照预期进行,没有任何副作用或后果?

如何在Qt中发出跨线程信号?

Qt文档指出信号和插槽可以是direct , queued和auto 。 它还指出,如果拥有插槽的对象“生活”在一个与拥有信号的对象不同的线程中,发送这样的信号就像是发送消息 – 信号发送将立即返回,在目标线程的事件循环中将调用slot方法。 不幸的是,文档没有说明“生命”是什么,也没有可用的例子。 我已经尝试了下面的代码: main.h: class CThread1 : public QThread { Q_OBJECT public: void run( void ) { msleep( 200 ); std::cout << "thread 1 started" << std::endl; MySignal(); exec(); } signals: void MySignal( void ); }; class CThread2 : public QThread { Q_OBJECT public: void run( void ) { […]

如何将对象传递给属性构造函数

我试图传递对象到属性构造函数如下: [PropertyValidation(new NullOrEmptyValidatorScheme())] public string Name { get; private set; } 有了这个属性的构造函数: public PropertyValidationAttribute(IValidatorScheme validator) { this._ValidatorScheme = validator; } 代码不会编译。 我如何传递一个对象到上面的属性? 编辑:是的NullOrEmptyValidatorScheme实现IValidatorScheme。 错误:错误CS0182:属性参数必须是属性参数types的常量expression式,typeofexpression式或数组创buildexpression式。

更改Windows窗体应用程序中的默认图标

我需要更改我正在处理的应用程序中的图标。 但只需从项目属性选项卡 – > 应用程序 – > 图标浏览其他图标,它不会获取存储在桌面上的图标.. 什么是正确的做法呢?

为什么Java比C ++更快读取大文件?

我有一个2 GB的文件( iputfile.txt ),其中文件中的每一行都是一个单词,就像: apple red beautiful smell spark input 我需要编写一个程序来读取文件中的每个单词并打印出单词数量。 我使用Java和C ++编写,但结果令人惊讶:Java运行速度比C ++快2.3倍。 我的代码如下: C ++: int main() { struct timespec ts, te; double cost; clock_gettime(CLOCK_REALTIME, &ts); ifstream fin("inputfile.txt"); string word; int count = 0; while(fin >> word) { count++; } cout << count << endl; clock_gettime(CLOCK_REALTIME, &te); cost = te.tv_sec – ts.tv_sec + […]

用C ++在头文件中编写函数定义

我有一个有许多小function的课程。 通过小函数,我的意思是函数不做任何处理,只是返回一个文字值。 就像是: string Foo::method() const{ return "A"; } 我创build了一个头文件“Foo.h”和源文件“Foo.cpp”。 但是由于函数非常小,我正在考虑把它放在头文件本身。 我有以下问题: 如果我把这些函数定义在头文件中,是否有任何性能或其他问题? 我会有很多这样的function。 我的理解是,编译完成后,编译器将扩​​展头文件并将其放在包含它的位置。 那是对的吗?

空指针与boost :: shared_ptr?

什么是相当于以下内容: std::vector<Foo*> vec; vec.push_back(NULL); 当处理boost::shared_ptr ? 它是下面的代码? std::vector< boost::shared_ptr<Foo> > vec; vec.push_back(boost::shared_ptr<Foo>()); 注意:我可能推回很多这样的对象。 我应该在哪里声明一个全局静态的nullPtr对象? 那样只有其中一个必须被修build: boost::shared_ptr<Foo> nullPtr;

使用ConfigureAwait(false)和Task.Run之间有什么区别?

我知道build议在库代码中使用ConfigureAwait(false)来await ,以便后续代码不会在调用者的执行上下文(可能是UI线程)中运行。 我也明白,出于同样的原因,应该使用await Task.Run(CpuBoundWork)而不是CpuBoundWork() 。 ConfigureAwait例子 public async Task<HtmlDocument> LoadPage(Uri address) { using (var client = new HttpClient()) using (var httpResponse = await client.GetAsync(address).ConfigureAwait(false)) using (var responseContent = httpResponse.Content) using (var contentStream = await responseContent.ReadAsStreamAsync().ConfigureAwait(false)) return LoadHtmlDocument(contentStream); //CPU-bound } Task.Run public async Task<HtmlDocument> LoadPage(Uri address) { using (var client = new HttpClient()) using (var httpResponse […]

什么时候应该处理数据上下文

我目前正在为应用程序编写一个数据访问层。 访问层大量使用linq类来返回数据。 目前为了将数据reflection回数据库,我添加了一个私有数据上下文成员和一个公共保存方法。 代码看起来像这样: private DataContext myDb; public static MyClass GetMyClassById(int id) { DataContext db = new DataContext(); MyClass result = (from item in db.MyClasss where item.id == id select item).Single(); result.myDb = db; return result; } public void Save() { db.SubmitChanges(); } 这是一个粗略的简化,但它提供了一般的想法。 有没有更好的方法来处理这种模式? 我应该实例化一个新的数据上下文,每次我想访问分贝?