小编Ant*_*ram的帖子

如何在C#和MVVM中实现异步操作?

什么是在WPF和MVVM上实现异步操作的最简单方法,让我们说如果用户在某个字段上输入时我想要启动命令然后返回,而线程将执行一些搜索操作然后返回更新属性,以便通知可以更新绑定.

谢谢!

c# wpf binding asynchronous mvvm

9
推荐指数
2
解决办法
5335
查看次数

Linq-to-Entities查询中的格式化日期会导致异常

我有提交日期时间的实体类,我想选择不同的'mon-yyyy'格式的datetime字段值并填充下拉列表.

以下代码给出了错误:

var env = db.Envelopes.Select(d => new
        {
            d.ReportDate.Year,
            d.ReportDate.Month,
            FormattedDate = d.ReportDate.ToString("yyyy-MMM")
        }).Select(d => d.FormattedDate)

    List<SelectListItem> _months = new List<SelectListItem>();         

    foreach (var mname in env)
    {
        _months.Add(new SelectListItem() { Text = mname, Value = mname });
    }
Run Code Online (Sandbox Code Playgroud)

错误信息:

LINQ to Entities无法识别方法'System.String ToString(System.String)'方法,并且此方法无法转换为商店表达式.

如何更正此错误消息?

谢谢SR

c# linq linq-to-entities entity-framework-4

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

不允许使用默认参数说明符

我有以下代码给出错误

不允许使用默认参数说明符

怎么解决这个问题?

bool listSubscribe(string apikey,
                   string id, 
                   string email_address,
                   string [] merge_vars,
                   string email_type="html",
                   bool double_optin=false,
                   bool replace_interests=true,
                   bool send_welcome=false);

bool listUnsubscribe(string apikey, 
                     string id, 
                     string email_address, 
                     bool delete_menber=false,
                     bool send_goodbye=true,
                     bool send_notify=true);
Run Code Online (Sandbox Code Playgroud)

.net c# .net-3.5 c#-3.0

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

如何将第二个集合中不存在的一个集合中的元素添加到第三个集合中?

我有3个通用列表:

List<string> input
List<string> compareTo
List<string> results
Run Code Online (Sandbox Code Playgroud)

我想获取输入列表并将每个值与比较列表进行比较,如果它不存在,请将其添加到结果列表中.

c# linq

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

为什么这个明显的无限递归没有给出编译器警告?

几个月前,我不得不修复一些导致一些问题的代码.代码看起来基本上是这样的:

int badFun() { return badFun(); }

这显然导致了堆栈溢出,即使在我正在使用的高级语言中(SilkTest中的4Test).这段代码无法被视为有益.问题的第一个迹象是脚本完成后看到的警告,但没有编译错误或警告.奇怪的是,我尝试用C++,C#和Python编写具有相同结构的程序,并且所有这些程序都编译/解释时没有语法错误或警告,即使在所有情况下都存在运行时错误.在任何这些情况下我都没有看到任何警告.为什么默认情况下这不是一个可能的问题?

编辑:我尝试在所有三种语言中编写相应的函数,所以我添加了这些函数标签.我对代码这样的代码没有任何警告的整体原因更感兴趣.如有必要,请重新登记.

c# c++ python compiler-construction recursion

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

为什么我不能在字节变量中存储负值?

我正在转换使用Java但不适用于C#的代码

byte[] buffer = new byte[64];
this.buffer[((int)this.count & 0x3F)] = -128;
Run Code Online (Sandbox Code Playgroud)

这会产生编译时错误"常量值'-128'无法转换为'字节'." 如何为一个字节存储负数?

c# byte

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

这个Singleton实现是否正确并且是线程安全的?

这个单例实现是否正确且是线程安全的?

class Class
{
    public static readonly Class Instance;

    static Class()
    {
        Instance = new Class();
    }

    private Class() {}
}
Run Code Online (Sandbox Code Playgroud)

c# singleton multithreading

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

扩展方法中的lambda何时做得太多?

我意识到这是部分主观的,但我一般好奇,社区的意见,并没有能够成功找到一个存在的问题是铲球这个问题.

我与同事就L2EF查询中的特定Select语句进行了一些宗教辩论.

.Select(r =>
{
    r.foo.Bar = r.bar;
    r.foo.Bar.BarType = r.Alpha;
    if (r.barAddress != null)
    {
        r.foo.Bar.Address = r.barAddress;
        r.foo.Bar.Address.State = r.BarState;
    }
    if (r.baz != null)
    {
        r.foo.Bar.Baz = r.baz;
        if (r.bazAddress != null)
        {
            r.foo.Bar.Baz.Address = r.bazAddress;
            r.foo.Bar.Baz.Address.State = r.BazState;
        }
    }
    return r.foo;
})
Run Code Online (Sandbox Code Playgroud)

注意事项:

  • 这是Linq-to-Entities
  • 这是执行并返回DB中的工作之后
  • 输入参数r是匿名的

就个人而言,我认为(a)选择条款不应该改变价值,它应该只是投射.他相反的观点是,他并没有改变什么,他只是确保一切正确初始化为DB查询的结果.其次,我认为一旦他开始进入完整的代码块和返回语句,它的时间来定义一个方法,甚至是Func<T, U>不要做这一切的内联.这里的复合器同样是输入是匿名的,因此需要定义一个类型.但是,尽管如此,我们仍在辩论一般性观点.

那么,lambda表达式什么时候做的太多了?你在哪里画出沙子中的模糊线?

c# linq lambda

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

使用深层嵌套依赖项进行单元测试和依赖注入

假设遗留类和方法结构如下所示

public class Foo
{
    public void Frob(int a, int b)
    {
        if (a == 1)
        {
            if (b == 1)
            {
                // does something
            }
            else
            {
                if (b == 2)
                {
                    Bar bar = new Bar();
                    bar.Blah(a, b);
                }
            }
        }
        else
        {
            // does something
        }
    }
}

public class Bar
{
    public void Blah(int a, int b)
    {
        if (a == 0)
        {
            // does something
        }
        else
        {
            if (b == 0)
            {
                // does …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing dependency-injection

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

如何使用动态OR语句构建Linq查询?

以下代码:

var dynamicQuery = from a in _context.Users select a;
string[] args = new string[] { "aa", "bb", "cc" };
foreach (string word in args)
    dynamicQuery = dynamicQuery.Where(x => x.Name.Contains(word));
return dynamicQuery.ToList();
Run Code Online (Sandbox Code Playgroud)

将允许我使用AND表达式的动态列表创建Linq查询.

但是假设我想做同样的事情,只有动态的OR表达式列表?

c# linq entity-framework

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