小编Ozz*_*zah的帖子

Visual Studio 2010突然看不到命名空间?

我的C#WinForms解决方案有两个项目.一个DLL,它是我正在研究的主要项目,以及一个可执行的WinForms,我称之为"Sandbox",这样我就可以一次性轻松地编译/运行/调试DLL.

我在两个项目的.Net 4.0工作.

一切都工作正常,直到我添加了一些看似无辜的代码,并在DLL中引用了System.Web.现在我的Sandbox项目无法看到DLL项目的命名空间.我没有改变任何我认为应该影响这个的东西.

如果我从Sandbox引用中删除了对DLL的项目引用并重新添加它,那么红色下划线全部消失,颜色编码将返回给我所有的类等; 但是当我尝试构建解决方案时,整个事情再次崩溃.

当我右键单击Sandbox的引用中的DLL项目并在对象浏览器中查看时,我可以看到命名空间和所有内容.

我觉得这可能是某种错误?

这是某种VS2010的错误吗?几个月前我遇到了同样的问题,我当时只能通过制作一个全新的项目并重新导入我的文件来修复它.但是,这一次,我有一个bajillion文件,只会作为最后的手段!

编辑:经过惊慌失措并撤消所有我的更改后,试图找到导致问题的原因,似乎是这一行:

string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address);
Run Code Online (Sandbox Code Playgroud)

如果我注释掉这一行,那么我没有命名空间错误,项目构建正常.虽然我看不出这条线有什么不妥.

c# namespaces winforms

83
推荐指数
2
解决办法
4万
查看次数

Visual Studio 2010,2015 - 屏幕外的窗口

我之前使用的是带有24英寸显示器和笔记本电脑内置显示器的双显示器设置.

我已经连接了第二台24英寸显示器,而且根本不再使用笔记本电脑屏幕.(它被禁用).

在我的常规视图(编码等)中,属性窗口,解决方案资源管理器,工具箱等都是可见的,我只需要移动/调整它们以适应更大的屏幕尺寸.

不幸的是,调试视图不是这种情况.我需要调试一些东西,看起来我的本地人和其他窗户都在屏幕边缘.我已经尝试过Ctrl + D,L但它似乎不想提起它.

我无法在菜单中的任何地方找到重置窗口的命令.

知道我能做什么吗?

visual-studio-2010 visual-studio visual-studio-2015

52
推荐指数
2
解决办法
8907
查看次数

可以读/写.xls文件的.NET Excel库

我正在寻找一个读/写.xls(而不是.xlsx)文件的Excel库.

我正在使用excellibrary,但它非常多,我似乎无法打开我创建的文件.该问题已有近一年的历史,尚未得到修复.

我在另一个线程中看到有人建议使用EPPlus,但这只适用于2007/2010 .xlsx格式.

我过去曾经使用过Koogra,对它很满意,但我相信它只能读...不写.

如果您知道图书馆,请告诉我它的名称.

编辑:我很高兴用必要的内置Microsoft.Office.Interop.Excel创建我的Excel文件,但是我的机器有Office 2007而目标机器只有Office 2003.我注意到我有2个文件版本那个库:12和14.我检查了目标机器上的Excel版本,它是11.8169.8172 - 我假设内置的Excel互操作不能在目标上运行?

c# excel xls read-write

44
推荐指数
2
解决办法
11万
查看次数

C#静态变量 - 范围和持久性

我做了一个小实验:

public abstract class MyClass
{
  private static int myInt = 0;

  public static int Foo()
  {
    return myInt;
  }

  public static int Foo(int n)
  {
    myInt = n;
    return bar();
  }

  private static int bar()
  {
    return myInt;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我跑了:

MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(3).ToString());
MessageBox.Show(MyClass.Foo().ToString());
MessageBox.Show(MyClass.Foo(10).ToString());
MessageBox.Show(MyClass.Foo().ToString());
Run Code Online (Sandbox Code Playgroud)

我预期的结果是0,3,0,10,0.

令我惊讶的是,我得到了0,3,3,10,10.

这些变化持续多久了?程序执行的持续时间?调用静态方法的函数的持续时间?

c# static-methods static-members

34
推荐指数
4
解决办法
8万
查看次数

对于Xml,XSD元素不是空或空约束?

这是我的示例XML代码:

<bestContact>
<firstName><![CDATA[12345]]></firstName>
<lastName />
</bestContact>
Run Code Online (Sandbox Code Playgroud)

我在用:

<xs:element name="lastName" type="xs:string" minOccurs="1" nillable="false"/>
Run Code Online (Sandbox Code Playgroud)

XSD应该被验证lastName为非空或空.

xml xsd

23
推荐指数
4
解决办法
6万
查看次数

在C#中,引用数组变量是否较慢?

我有一个整数数组,我正在循环它们:

for (int i = 0; i < data.Length; i++)
{
  // do a lot of stuff here using data[i]
}
Run Code Online (Sandbox Code Playgroud)

如果我做:

for (int i = 0; i < data.Length; i++)
{
  int value = data[i];
  // do a lot of stuff with value instead of data[i]
}
Run Code Online (Sandbox Code Playgroud)

是否有任何表现收益/损失?

根据我的理解,直接访问C/C++数组元素,即整数的n元素数组具有长度为n*sizeof(int)的连续内存块,而程序访问元素i通过执行类似*data [i]的操作=*data [0] +(i*sizeof(int)).(请原谅我滥用符号,但你理解我的意思.)

所以这意味着C/C++在引用数组变量时应该没有性能增益/损失.

C#怎么样?C#有一堆额外的开销,如data.Length,data.IsSynchronized,data.GetLowerBound(),data.GetEnumerator().

显然,C#数组与C/C++数组不同.

那么判决是什么?我应该存储int value = data [i]并使用值,还是没有性能影响?

.net c# arrays optimization performance

19
推荐指数
2
解决办法
6188
查看次数

图表系列中的C#虚线?

我在我的C#WinForms应用程序中使用.net 4.0中的Chart控件.我有两个系列的数据显示为折线图.

我基本上将供需作为时间的函数.我希望需求是一种颜色的实线,并且供应是相同颜色的虚线.

我可以设置颜色很好,但我找不到任何可以将线条样式设置为虚线的地方.

c# charts mschart

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

C#中的高速字符串匹配

我有一个大约10,000个工作人员的列表,List<T>我有一个ListBox包含这些工作人员的子集,具体取决于文本框中的搜索词.

假设某个Staff对象具有以下公开公开的属性:

string FirstName
string LastName
string MiddleName
   int StaffID
   int CostCentre
Run Code Online (Sandbox Code Playgroud)

我可以写一个这样的函数:

bool staffMatchesSearch(Staff stf)
{
  if (tbSrch.Text.Trim() == string.Empty)
    return true; // No search = match always.

  string s = tbSrch.Text.Trim().ToLower();

  // Do the checks in the order most likely to return soonest:
  if (stf.LastName.ToLower().Contains(s))
    return true;
  if (stf.FirstName.ToLower().Contains(s))
    return true;
  if (stf.MiddleName.ToLower().Contains(s))
    return true;

  if (stf.CostCentre.ToString().Contains(s))
    return true; // Yes, we want partial matches on CostCentre
  if (stf.StaffID.ToString().Contains(s))
    return true; // …
Run Code Online (Sandbox Code Playgroud)

c# string search

13
推荐指数
1
解决办法
948
查看次数

C#编组来自C++ DLL的double*?

我有一个带有导出函数的C++ DLL:

extern "C" __declspec(dllexport) double* fft(double* dataReal, double* dataImag)
{
  [...]
}
Run Code Online (Sandbox Code Playgroud)

该函数计算两个双数组(实数和虚数)的FFT,返回单个双数组,实数为虚数组件交错:{Re,Im,Re,Im,...}

我不知道如何在C#中调用此函数.我在做的是:

[DllImport("fft.dll")]
static extern double[] fft(double[] dataReal, double[] dataImag);
Run Code Online (Sandbox Code Playgroud)

当我像这样测试它:

double[] foo = fft(new double[] { 1, 2, 3, 4 }, new double[] { 0, 0, 0, 0 });
Run Code Online (Sandbox Code Playgroud)

我收到MarshalDirectiveException异常:

无法封送"返回值":无效的托管/非托管类型组合.

我假设这是因为C++ double*与C#不完全相同double[],但我不确定如何解决它.有任何想法吗?

编辑:我已经更改了签名,以便我现在传递一些额外的信息:

extern "C" __declspec(dllexport) void fft(double* dataReal, double* dataImag, int length, double* output);
Run Code Online (Sandbox Code Playgroud)

我们总是知道长度output是2倍length

[DllImport("fft.dll")]
static extern void fft(double[] dataReal, double[] dataImag, int length, out double[] …
Run Code Online (Sandbox Code Playgroud)

c# c++ interop marshalling dllimport

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

亚行在Eclipse中崩溃

这个问题与这个线程有关,但该线程没有答案,所以这在技术上并不重复.

我已经使用ADT 10.0.1 SDK工具r10在我的Windows 7 x64和Eclipse SDK 3.6.2上运行了ADB 1.0.26,并且我已经安装了所有Android SDK版本.

当我以调试模式将手机连接到计算机并输入adb devices命令提示符时,我的手机会显示出来.这是一个Inspire 4G.我可以adb shell进入设备ls,所以我假设链的adb/driver/phone部分正常工作.

现在,如果我连接手机进入Eclipse,我会得到:

[2011-03-28 17:46:33 - DeviceMonitor] Adb连接错误:远程主机强行关闭现有连接

[2011-03-28 17:46:34 - DeviceMonitor]连接尝试次数:1

[2011-03-28 17:46:36 - DeviceMonitor]连接尝试次数:2

[...]

[2011-03-28 17:47:53 - DeviceMonitor]连接尝试次数:10

[2011-03-28 17:46:54 - DeviceMonitor]连接尝试次数:11

[2011-03-28 17:47:00 - adb]

[2011-03-28 17:47:00 - adb]此应用程序已请求Runtime以不寻常的方式终止它.

[2011-03-28 17:47:00 - adb]请联系应用程序的支持团队以获取更多信息.

[2011-03-28 17:47:04 - DeviceMonitor] Adb连接错误:远程主机强行关闭现有连接

[2011-03-28 17:47:05 - DeviceMonitor]连接尝试:1

[2011-03-28 17:47:07 - DeviceMonitor]连接尝试次数:2

等等...这永远循环.如果我启动Eclipse然后连接手机,或者如果我连接手机然后启动Eclipse,则无关紧要.

我认为这不重要,但我的手机是Inspire 4G,它根植于并运行Revolution 4G 3.2

eclipse android adb

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