小编Max*_*Max的帖子

在.Net中使用条件运算符的奇怪行为

这让我非常难过.也许我现在太累了.

    Rectangle rectangle = new Rectangle(0, 0, image.Width, image.Height);
    Rectangle cropArea = inputArea == null ? rectangle : inputArea.Value;

    if (inputArea == null)
        cropArea = rectangle;
Run Code Online (Sandbox Code Playgroud)

inputArea是一个可以为null的Rectangle,在我的特定情况下为null.

前两个语句将cropArea初始化为0.然而,第二个语句根据图像宽度和高度生成正确的cropArea.我是否误解了条件运算符的任何内容?当inputArea = null时,它似乎不返回矩形?使用值类型时是否有任何怪癖?

编辑:好吧,我应该先尝试一下:重启VS. 似乎调试器骗了我,或者其他东西.无论如何,现在工作.谢谢.

.net c# nullable value-type conditional-operator

7
推荐指数
1
解决办法
232
查看次数

关于程序入口的Eclipse cdt/gdb自动断点 - 如何禁用?

我正在使用eclipse cdt来开发一个c ++程序.让我疯狂的一件事是,它用于调试的eclipse cdt或gdb会在主方法条目上自动中断.我不想在那里打破!

在我遇到一些问题并且不得不从头开始重新创建我的项目之前,我设法禁用了这个功能(我想),但对于我的生活,我现在找不到它!问题似乎是在eclipse中可以找到调试设置的800万个不同的地方.

有谁知道如何禁用它?

gdb breakpoints eclipse-cdt

7
推荐指数
1
解决办法
3627
查看次数

链接时未定义C++虚函数 - 为什么?

我在使用C++中的虚函数时遇到了一些麻烦,我可能会在构造函数中滥用它们.问题是当将组件库lib(由我编写)链接到我的最终可执行文件时,虚拟函数被标记为未定义,即使我已经为它编写了实现,并将其链接.

我有以下课程:

template<class BufferType, class ConnectionType, class HandlerType>
class UdpConnection
{
public:
UdpConnection(size_t dispatchCount) : service(),
        listener(service),
        pool(dispatchCount), sysMsgHandlers(),
        bufferPool(), buffers()
    {
        assert(dispatchCount > 0);
        initBuffers(dispatchCount);
        initSysHandlers();
    }
protected:
    virtual void initSysHandlers() = 0;
}
Run Code Online (Sandbox Code Playgroud)

在我的子类中:

class UdpClient : public UdpConnection<SyncBufferHandler, UdpClient, ClientNetworkHandler>
{
    protected:
        void initSysHandlers();
}
Run Code Online (Sandbox Code Playgroud)

和子类源文件:

void UdpClient::initSysHandlers()
{

}
Run Code Online (Sandbox Code Playgroud)

如您所见,我在构造函数中调用虚函数.据我所知,这应该没问题,因为我知道我的子类构造函数不会被调用,所以我不能使用任何实例变量,但我只是添加一些子类特定的项目到的std ::地图.

Linking CXX static library libnetwork.a
[ 75%] Built target network                                                                                           
Scanning dependencies of target testclient
[ 87%] Building CXX object CMakeFiles/testclient.dir/src/test/testclient.cpp.o                                        
Linking CXX executable testclient …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance virtual-functions undefined

7
推荐指数
1
解决办法
5877
查看次数

如果模型未实现INotifyPropertyChanged,View Models如何从其基础模型传播更改通知?

阅读Josh Smiths关于MVVM的文章,他的视图模型CustomerViewModel实现INotifyPropertyChanged但不是基础Customer类.

在这种情况下,我只能看到一种(可行的)方法来进行变更通知工作 - 只更改CustomerViewModel而不是更改Customer.在这种情况下,我的程序的后端逻辑是否也只是针对ViewModels?这看起来很奇怪,毕竟他们是View Models.

有人可以澄清这一点吗?

谢谢!

澄清:

假设我有一个模型报价和行情列表.

public class Quote
{
    public string Name { get; set; }
    public decimal Value { get; set; }
}

public QuoteViewModel : INotifyPropertyChanged
{
    private Quote quote;

    public event EventHandler PropertyChanged;

    public decimal Value 
    { 
         get { return quote.Value; }
         set
         { 
               quote.Value = value;
               PropertyChanged("Value");
         }
    }                  
}
Run Code Online (Sandbox Code Playgroud)

现在,如果由于后台线程轮询Web服务而引用更改,则不会通知UI,因为除非系统的所有部分都使用ViewModel,否则引用不会实现INotifyPropertyChanged?

.net c# wpf mvvm

7
推荐指数
1
解决办法
1392
查看次数

输入后的断行没有html标记

我试图显示一些输入及其相应的标签.它们都是内联元素,我有一个工作解决方案,最后添加一个br标签就像这样

<label for="hello"></label>
<input id="hello" type="text" />
<br>
<label for="stackoverflow"></label>
<input id="stackoverflow" />
Run Code Online (Sandbox Code Playgroud)

我喜欢在没有多余HTML标记的情况下解决这个问题,即使用CSS.最简单的方法是什么?

我已经查看了与此类似的其他问题,但是按行而不是按列对齐.

html css label input alignment

6
推荐指数
1
解决办法
3万
查看次数

在C#中使用dynamic来访问匿名类型的字段 - 可能吗?

我有一个控制器方法:

public JsonResult CalculateStuff(int coolArg)
{
    if(calculatePossible)
       return Json(CoolMethod(coolArg));
    else return Json(new { Calculated = false });
}
Run Code Online (Sandbox Code Playgroud)

现在,我想测试一下.

public void MyTest
{
    var controller = GetControllerInstance();
    var result = controller.CalculateStuff().Data as dynamic;
    Assert.IsTrue(result.Calculated == false);        
}
Run Code Online (Sandbox Code Playgroud)

这会抛出一个RuntimeBinderException,表示未定义Calculated.有没有办法实现这个目标?

UPDATE

按照Jons的建议,我使用InternalsVisibleTo与我的测试组件交朋友.一切正常.谢谢Jon.

c# anonymous-types dynamic-keyword

5
推荐指数
1
解决办法
385
查看次数

是否有任何带C++绑定的开源,硬件加速的跨平台物理库?

我正在使用OpenGL和C++开发游戏.我真的很喜欢硬件加速物理,但跨平台.有没有什么,可能在OpenCL中实现?

c++ physics hardware-acceleration

5
推荐指数
1
解决办法
277
查看次数

设置给定位数的整数到字节

我不知道该怎么称呼这个,这使谷歌搜索变得更难.

比方说3,我有一个整数,并希望将其转换为11100000,即从最重要的位开始设置整数位数值的字节.

我猜它可以用:

byte result = 0;
for(int i = 8; i > 8 - 3; i--)
    result += 2 ^ i;
Run Code Online (Sandbox Code Playgroud)

但有什么更快/更好,或者最好是.net中包含标准库?

.net c#

5
推荐指数
2
解决办法
144
查看次数

我应该将什么类型的指针传递给C++ 11中的方法?

我之后有两种不同的情景:

  1. 你有一个 shared_ptr
  2. 你有一个 unique_ptr

答案可能是相同的.

考虑一种方法,它使用指针但不承担所有权:

void use_pointer(T ptr)
{
    ptr->act();
}
Run Code Online (Sandbox Code Playgroud)

应该是

  • my_type * (原始指针)
  • const shared_ptr<my_type> & (发送const ref,如果使用shared_ptr)
  • const unique_ptr<my_type> & (发送const ref,如果使用unique_ptr)
  • weak_ptr<my_type> (为方法调用构造weak_ptr)

别的什么?谢谢!

c++ pointers smart-pointers

5
推荐指数
2
解决办法
172
查看次数

确保在移动构造函数存在时永远不会调用复制构造函数

在设计可以移动但不能复制的类时,将复制构造函数声明为私有是很自然的.当只有可移动和平凡的可复制对象作为实例成员时,允许编译器隐式生成移动构造函数是有意义的.

但是,当支持VS11和G ++ 4.7时,我发现了一个不兼容的问题:

  • VS11需要明确定义的移动构造函数
  • G ++要求显式移动构造函数具有匹配的公共复制构造函数或noexcept关键字.
  • VS11不支持noexcept关键字.

正如你所看到的,这让我陷入了困境.我的班级不得复制.我必须支持 VS11和MinGW/GCC.我需要我的班级可移动.

我误解了什么,或者是否有解决这个小问题的方法?如果生成对复制构造函数的调用,是否可以使编译失败?这个问题有什么更好的解决方案

c++ copy-constructor move-semantics c++11

5
推荐指数
1
解决办法
342
查看次数