小编p.s*_*w.g的帖子

如何在c#中将null值设置为int?

int value=0;

if (value == 0)
{
    value = null;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能设置valuenull上面?

任何帮助将不胜感激.

.net c# int null nullable

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

如何使所有文本大写/大写?

我想在所有文本TextBlock,Label,MenuItem.Header以大写形式显示.字符串取自ResourceDictionary例如:

<TextBlock Text="{StaticResource String1}"/>
<MenuItem Header="{StaticResource MenuItemDoThisAndThat}"/>
Run Code Online (Sandbox Code Playgroud)

等(也用于Label和其他控制)

我不能使用值转换器,因为没有绑定.我不想在字典本身中使字符串大写.

wpf formatting xaml textblock

35
推荐指数
5
解决办法
7万
查看次数

单元测试:如何访问文本文件?

我正在使用Visual Studio 2008和Microsoft测试工具.我需要从单元测试中访问文本文件.

我已经将构建操作设置为'Content'的文件配置并将输出目录复制到'Copy Always',但文件没有被复制到输出目录,根据System.Environment.CurrentDirectory

'{project_path}\TestResults\Pablo_COMPU 2009-11-26 15_01_23\Out'

此文件夹包含项目的所有DLL依赖项,但我的文本文件不存在.

从单元测试中访问文本文件的正确方法是什么?

unit-testing visual-studio-2008 visual-studio

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

三元运算符,使用赋值时出现语法错误

下面的3行代码编译好了.(请注意,此代码是"人工Java编码"的示例,因此在专业编写的代码中不会出现.)

int x, y;
boolean b=true;

x = b ? y=1 : 2;  // Compiles OK.
Run Code Online (Sandbox Code Playgroud)

如果我现在更改上面第3行中的代码,使其看起来像下面的代码行,编译器会生成错误.

// Change the position of the "y assignment", and now the code doesn't compile.
x = b ? 1 : y=2;  
Run Code Online (Sandbox Code Playgroud)

这是语法错误消息:

三元运算符语法错误

有人可以解释这种行为(对新手Java学习者)吗?谢谢.

java ternary-operator

27
推荐指数
1
解决办法
1240
查看次数

INSERT-OUTPUT包括来自其他表的列

我有一个存储过程需要插入到三个不同的表中,但我需要从一个输入中获取生成的ID并使用它插入到下一个表中.我对这个INSERT-OUTPUT结构很熟悉,但我不确定如何在这种特殊情况下使用它.

DECLARE @guids TABLE ( [GUID] UNIQUEIDENTIFIER );
DECLARE @contacts TABLE ( [ContactID] INT, [GUID] UNIQUEIDENTIFIER );
DECLARE @mappings TABLE ( [TargetID] INT, [GUID] UNIQUEIDENTIFIER );

INSERT @guids ( [GUID] ) ...

INSERT [Contacts] ( [FirstName], [LastName], [ModifiedDate] )
OUTPUT [inserted].[ContactID], g.[GUID]
INTO @contacts
SELECT [First_Name], [Last_Name], GETDATE()
FROM [SourceTable] s
JOIN @guids g ON s.[GUID] = g.[GUID]

INSERT [TargetTable] ( [ContactID], [License], [CreatedDate], [ModifiedDate] )
OUTPUT [inserted].[TargetID], c.[GUID]
INTO @mappings
SELECT c.[ContactID], [License], [CreatedDate], [CreatedDate]
FROM [SourceTable] …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-insert

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

编译时的C#连接字符串

请帮助理解这种行为.我用这个时:

bool a1 = (object)("string" + 1) == ("string" + 1);
Run Code Online (Sandbox Code Playgroud)

结果是 false

但是当我使用它时

bool a2 = (object)("string" + "1") == ("string" + "1"); 
Run Code Online (Sandbox Code Playgroud)

结果是 true

那么,为什么a1 != a2呢?

.net c# compiler-construction string concatenation

21
推荐指数
2
解决办法
675
查看次数

将所有加号(+)替换为字符串中的空格

我不确定如何在正则表达式中逃避'+'.Plus可以多次出现,i所以我们需要替换+字符串中的所有内容.这就是我所拥有的:

i.replace(new RegExp("+","g"),' ').replace(new RegExp("selectbasic=","g"),'').split('&');
Run Code Online (Sandbox Code Playgroud)

但这给了我这个错误:

未捕获的SyntaxError:无效的正则表达式:/ + /:无需重复

javascript regex

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

在C#泛型中,Java通配符的等价物是什么

我正在开发一个应用程序,我需要调用泛型类的方法,而不关心实例的实际类型.像下面的Java代码:

public class Item<T>{
  private T item;

  public doSomething(){...}
}

...
public void processItems(Item<?>[] items){
 for(Item<?> item : items)
   item.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

当时我很着急,所以我通过使用我需要调用的方法定义一个接口并使泛型类实现它来解决我的问题.

public interface IItem  
{
   void doSomething();
}

public class Item<T> : IItem {
  private T item;

  public void doSomething(){...}
}

...
public void processItems(IItem[] items)
{
 foreach(IItem item in items)
   item.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

这种解决方法工作正常,但我想知道实现相同行为的正确方法是什么.

编辑:

我忘了提到调用者processItems不知道实际的类型.实际上,这个想法是作为参数传递的数组processItems可能包含混合类型.由于在.Net中不可能有这样的数组,因此使用非泛型基类或接口似乎是唯一的方法.

c# generics wildcard

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

Group by,Count和Lambda Expression

我正在尝试翻译以下查询:

SELECT STATE, COUNT(*)
FROM MYTABLE
GROUP BY STATE;
Run Code Online (Sandbox Code Playgroud)

进入lambda表达式.我正在使用C#和EntityFramework,但似乎我无法使其工作.到目前为止,这是我在我的存储库中的内容:

public IEnumerable<object> PorcentajeState(Guid id)
{
    return _context.Sates.Where(a => a.Id == id)
                         .GroupBy(a => a.State)
                         .Select(n => new { n.StateId , n.Count() });
}
Run Code Online (Sandbox Code Playgroud)

当然它没有编译,我在谷歌搜索2小时后迷路了.请你帮助我好吗?

提前致谢

c# linq lambda entity-framework

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

双溢出

我有双重类型的问题.在MSDN上,我读到了以下最大双倍值:

超过Double.MaxValue的操作的结果是Double.PositiveInfinity.

我写了一些测试:

Console.WriteLine(double.MaxValue + 100000 - double.MaxValue);
Console.WriteLine(double.MaxValue);
Console.WriteLine(double.MaxValue + 100000);
Console.WriteLine(double.IsPositiveInfinity(double.MaxValue + 100000));
Run Code Online (Sandbox Code Playgroud)

并看到了这个结果:

0
1,79769313486232E+308
1,79769313486232E+308
False
Run Code Online (Sandbox Code Playgroud)

我不明白,double.MaxValue + 100000不是正无穷大,而是等于MaxValue的两倍.根据msdn文档,我认为它应该是PositiveInfinity.

我在VS2012,.NET 4.5中测试过它

.net c#

17
推荐指数
2
解决办法
4353
查看次数