小编Mik*_*ebb的帖子

何时复制C#值/对象以及何时复制其引用?

我一遍又一遍地得到同样的问题,我想要引用的对象被复制,或者我想要复制的对象被引用.当我使用=运算符时会发生这种情况.

例如,如果我将对象发送到另一个表单,即:

SomeForm myForm = new SomeForm();
SomeObject myObject = new SomeObject();
myForm.formObject = myObject;
Run Code Online (Sandbox Code Playgroud)

...然后修改表单中的对象,原始对象不会被修改.就好像复制了对象而没有引用对象.然而,当我这样做时:

SomeObject myObject = new SomeObject();
SomeObject anotherObject = new SomeObject();
anotherObject = myObject;
Run Code Online (Sandbox Code Playgroud)

...然后修改anotherObject,也myObject进行修改.

最恶化的情况是当我尝试克隆我定义的一个对象时:

public class SomeObject
{
    double value1, value2;

    //default constructor here

    public SomeObject(val1, val2)
    {
        value1 = val1;
        value2 = val2;
    }

    public void Clone(SomeObject thingToCopy)
    {
        this.value1 = thingToCopy.value1;
        this.value2 = thingToCopy.value2;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做的时候......

SomeObject obj1 = new SomeObject(1, 2);
SomeObject obj2 = new …
Run Code Online (Sandbox Code Playgroud)

c# copy reference equals-operator

66
推荐指数
2
解决办法
8万
查看次数

如何使用MinGW gdb调试器在Windows中调试C++程序?

我已经找到了关于这方面的文档,一无所获.我安装了MinGW,效果很好.我只是不知道如何使用调试器.

给出一些简单的代码,比如名为"mycode.cpp"的文件:

int main()
{
    int temp = 0;

    for (int i = 0; i < 5; ++i)
        temp += i;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

...我该怎么调试呢 我在Windows中使用MinGW和GDB调试代码的命令是什么?我可以像在Visual Studio中那样通过命令行单步执行代码吗?如果是这样,我用什么命令来做到这一点?

有没有关于在那里使用GDB的教程?我找不到任何东西,但是如果有人能指引我去做一件很棒的话.我厌倦了编写大量的std::cout语句来调试复杂的代码.

c++ windows debugging gdb mingw

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

是否可以从VS C++中的C#DLL导出函数?

在VS C/C++中你可以使用extern "C" __declspec(dllexport) -function declaration-.

如何在C#dll中完成此操作?C#代码是否与上面的代码相同?

编辑:更多信息

我正在尝试为Notepad ++创建一个插件,我想使用C#,但到目前为止我看到的常见方法是使用传统的C++代码和上面的调用来导出Notepad ++期望导入的一些函数和呼叫.有一个使用C#的示例应用程序,但这仍然需要一个加载器DLL,我从下面的评论/答案中假设是C#的唯一方法.

c# c++ notepad++ dllexport

29
推荐指数
3
解决办法
5万
查看次数

使用jQuery,我如何灰显和禁用网页,然后在其上显示某种微调器?

当涉及到web开发和javascript/jQuery编程时,我仍然非常"绿色",所以任何帮助都表示赞赏.这就是我想要做的.

  1. 我想做一个jQuery UI对话框所做的事情,它将半透明图像放在整个页面上,并禁用单击下面的任何控件.

  2. 我想知道如何在顶部放置某种微调器覆盖以显示该网站在后台运行.如果我可以使用一个很好的动画GIF文件,但我不太确定最好的方法.

下面是一个带有对话框的灰显效果示例: jQuery UI示例.我想知道如何在没有顶部对话框的情况下产生这种效果.我没有关于微调器行为的好例子.

所有建议,网站推荐和代码表示赞赏.

编辑:我不是指"旋转控制".我将尝试通过微调器找到我想到的一个例子.

编辑:我的意思是"旋转器"是一个加载的GIF,如本网站上的"指标大"GIF:http://ajaxload.info/

overlay jquery-ui

27
推荐指数
3
解决办法
7万
查看次数

在C#中,有没有办法将内存中的文件作为内存中的SQLite数据库与System.Data.SQLite链接?

我想做的是以下几点:

using System.Data.SQLite;
using System.IO;

//My SQLite connection
SQLiteConnection myCon;

public void ReadAndOpenDB(string filename)
{
    FileStream fstrm = new FileStream(filename, FileMode.Open);
    byte[] buf = new byte[fstrm.Length];
    fstrm.Read(buf, 0, (int)fstrm.Length);
    MemoryStream mstrm = new MemoryStream(buf);

    //Do some things with the memory stream

    myCon = new SQLiteConnection(/*attach to my memory stream for reading*/);
    myCon.Open();

    //Do necessary DB operations
}
Run Code Online (Sandbox Code Playgroud)

我不打算写入内存数据库,但我需要能够在连接到程序之前在程序的内存中对文件做一些事情.

c# sqlite connection system.data.sqlite in-memory-database

26
推荐指数
1
解决办法
2035
查看次数

我可以在C#4.0中指定默认的Color参数吗?

这是一个示例函数:

public void DrawSquare(int x, int y, Color boxColor = Color.Black)
{
    //Code to draw the square goes here 
}
Run Code Online (Sandbox Code Playgroud)

编译器不断给我错误: Default parameter value for 'boxColor'must be a compile-time constant

我试过了

Color.Black, 
Color.FromKnownColor(KnownColor.Black), and 
Color.FromArgb(0, 0, 0)
Run Code Online (Sandbox Code Playgroud)

如何使Color.Black成为默认颜色?另外,我不想使用字符串Black来指定它(我知道它可以工作).我想要的Color.Black价值.

c# parameters colors default-value c#-4.0

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

有人可以指向我在线/免费的MATLAB编译器/解释器或解释这个MATLAB代码中发生了什么?

我提前为这个问题道歉.我不喜欢"解释此代码"的问题,但我找不到任何关于我的具体示例的文档.

背景
我的问题是这个.我试图将一些MATLAB代码翻译成C#,但我同时还要学习MATLAB.我不与任何知道MATLAB代码的人合作,我无法访问MATLAB,所以我无法测试任何代码,我找不到任何关于以下问题的文档.所以...

问题(S)

  1. 在某处可以使用免费的在线/桌面MATLAB编译器/解释器来测试MATLAB代码吗?

    ...要么...

  2. 是否有人可以解释以下代码段:

    someVar.member1=myValue1;
    someVar.member2=myValue2;
    if (myCondition)
        for i=1:myTotal
            someVar(i).member3=myValue3;
        end;
    end;
    
    Run Code Online (Sandbox Code Playgroud)

    这是否someVar成为一个数组?难道我失去了member1member2或者它救什么我已不知何故?

matlab matlab-compiler

18
推荐指数
4
解决办法
5万
查看次数

如何在VS2010中允许打破'System.NullReferenceException'?

我有一个VS 2010 C#.NET 4项目.问题是程序在调试期间没有破坏'NullReferenceException'错误.

输出窗口将显示以下内容:

A first chance exception of type 'System.NullReferenceException' occurred in myProgram.exe

...但是调试器将退出该函数并继续运行该程序的其余部分.

如何更改此行为以便调试器在这些异常中中断?

c# debugging break visual-studio-2010 nullreferenceexception

16
推荐指数
1
解决办法
2万
查看次数

如何使用Regsvr32注册用C#编写的COM DLL?

我有一个使用COM DLL的VB6应用程序.DLL是用C#编写的.在C#项目属性中,我选中了"Register for COM interop"选项.VB6应用程序在我的开发机器上运行良好.C#代码完全遵循以下格式:CodeProject C#COM示例

当部署到其他计算机时,Regsvr32.exe在我尝试注册DLL时出现以下错误:

The module "MyCOM.dll" was loaded but the entry-point DLLRegisterServer was not found.
Run Code Online (Sandbox Code Playgroud)

这是什么意思?没有教程/文档我读过关于COM DLL的任何关于"入口点DLLRegisterServer"的内容.

我们在不同的机器上使用RegAsm.exe时遇到了MAJOR问题,因此我们真的需要一个解决方案,我们可以运行regsvr32.exe,它将适用于我们部署到的任何机器(即XP,Vista,Windows 7,x86机器,x64)机器等)

我需要将哪些内容添加到我的C#代码中才能使其可以使用regsvr32.exe进行注册?

c# vb6 com regsvr32

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

在C#中,如何将XML从较旧的对象反序列化为更新的对象并忽略缺少的xml元素?

我有一个自定义设置文件,我使用一个序列化/反序列化XmlSerializer.我的对象定义中没有定义架构且没有序列化标签,只是直接对象序列化(尽管如果需要我会添加它们).

我的问题是我需要向对象添加数据成员.如果我这样做,我知道旧的设置文件不会反序列化.

有没有办法为添加的成员指定默认值,或者如果XML中缺少这些默认值,可以采用一些简单的方法来忽略它们?

c# xml-serialization defaults

14
推荐指数
2
解决办法
1万
查看次数