小编Oma*_*mar的帖子

IsNullOrEmpty参数中的Concat字符串

我正在查看我在C#中编写的一段代码:

if(string.IsNullOrEmpty(param1) && string.IsNullOrEmpty(param2) && string.IsNullOrEmpty(param3))
{
       // do stuff
}
Run Code Online (Sandbox Code Playgroud)

并决定使其更具可读性/简洁性

if(string.IsNullOrEmpty(param1+param2+param3))
{
       // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但看着它我忍不住畏缩.你对此有何看法?你有没有做过这样的事情,你是否适用它?

注意:此行之前的代码将通过添加特定项来操作集合,具体取决于param(param1,param2,param3)是否为空.此if语句用于验证/错误处理.

c# string

4
推荐指数
1
解决办法
1287
查看次数

如何使用 EnvDTE 以编程方式运行自定义工具或保存文件?

我想在.tt扩展程序中的少数文件上保存/运行自定义工具。我不想遍历解决方案/项目中的所有文件,而是希望能够使用文件的相对(或完整)路径来执行保存/运行自定义工具。

有没有办法获取ProjectItem给定文件路径的对象($(SolutionDir)/MyProject/MyFile.tt),以便我可以在其上执行方法?

envdte visual-studio-extensions

4
推荐指数
1
解决办法
1222
查看次数

如何绘制自定义函数?

我有一个自定义函数,它返回01取决于两个给定的输入:

function val = myFunction(val1, val2)

  % logic to determine if val=1 or val=0

end
Run Code Online (Sandbox Code Playgroud)

如何在x,y由以下meshgrid生成的坐标上创建函数的等高线图?

meshgrid(0:.5:3, 0:.5:3);
Run Code Online (Sandbox Code Playgroud)

该图仅显示功能的位置01等高线图上.

matlab plot function contour

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

Ninject 2.2多重绑定

我最近更新了ASP.NET MVC 3应用程序到Ninject 2.2.

以前我在主应用程序中有以下接口实现绑定:

Bind(typeof(IMyInterface<>)).To(typeof(MyImplementation<>)).InRequestScope();
Run Code Online (Sandbox Code Playgroud)

另外,我在主应用程序加载的另一个程序集中有以下内容:

var arg = new ConstructorArgument("info", "something");
Bind<IMyInterface<MyClass>>().To<MyImplementation<BlogComment>>().WithParameter(arg);
Run Code Online (Sandbox Code Playgroud)

这在以前工作得很好,并且正在认识到更具体的实现(带有参数的实现).但是,当我升级到Ninject 2.2时,我收到以下错误:

Error activating IMyInterface{MyClass}
More than one matching bindings are available.
Activation path:
 2) Injection of dependency IMyInterface{MyClass} into parameter myParam of constructor of type SomeOtherClass
 1) Request for IMyInterface

Suggestions:
 1) Ensure that you have defined a binding for IMyInterface{MyClass} only once.
Run Code Online (Sandbox Code Playgroud)

从2.0到2.2的变化导致了这种变化,是否有解决方法?

asp.net-mvc ninject-2

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

Razor代码以编程方式隐藏全局菜单项?

我是一名经验丰富的.NET程序员,但我是这个整个网络编程的新手.我的ASP.NET MVC网站有一个全局布局,其中包含一些内容(页面顶部的菜单链接),我想在控制器代码动态检测的条件下隐藏这些内容.

我的倾向 - 使用我迄今为止学到的工具的简单方法 - 将布尔的HideGlobal值推入ViewBag,并将全局标记放在_Layout.cshtml中,我想隐藏在@ if(ViewBag.HideGlobal){}阻止.

我只是想知道这是否是"正确"的方式,或者是否有一些我应该使用的Razor魔法,原因对我来说还不明显?

asp.net-mvc razor

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

搜索数据库 - ASP.NET MVC C#

我正在尝试在我的ASP.NET MVC(C#,Linq-to-Sql)网站中实现完整的搜索功能.

该网站包含大约3-4个表,我想要搜索大约1-2列.

这是我到目前为止:

    public List<SearchResult> Search(string Keywords)
    {
        string[] split = Keywords.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        List<SearchResult> ret = new List<SearchResult>();
        foreach (string s in split)
        {
            IEnumerable<BlogPost> results = db.BlogPosts.Where(x => x.Text.Contains(s) || x.Title.Contains(s));

            foreach (BlogPost p in results)
            {
                if (ret.Exists(x => x.PostID == p.PostID))
                    continue;

                ret.Add(new SearchResult
                {
                    PostTitle= p.Title,
                    BlogPostID = p.BlogPostID,
                    Text=p.Text
                });

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

正如你所看到的,我有一个关键字的foreach和一个在表上运行的内部foreach(我会为每个表重复它).

这似乎是无用的,我想知道是否有更好的方法来创建数据库的搜索方法.

此外,我可以对数据库中的列执行哪些操作以便更快地搜索它们?我读了一些关于索引它们的东西,这只是我在SQL Management Studio中看到的"全文索引"真/假字段吗?

database asp.net-mvc search

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

Autofac FactoryScoped Linq to SQL数据上下文

什么是FactoryScoped用的LINQ to SQL数据上下文注册是什么意思?谁负责处置?

这是我看到的代码.对于ASP.NET应用程序,我认为FactoryScoped不建议用于数据上下文?

builder.Register(c => new MyDataContext("connectionString"))
       .As<MyDataContext>()
       .FactoryScoped();
Run Code Online (Sandbox Code Playgroud)

asp.net autofac linq-to-sql

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

使用C#将字符串转换为GSM 7位

如何将字符串转换为正确的GSM编码值以发送给移动运营商?

c# gsm

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

Python IO是否允许在Windows上删除/重命名打开的文件?

我想读/写一个文件,但允许其他进程删除/重命名.在C#你可以用一个打开文件FileShare.Delete,Python有一个等价的吗?

python windows io

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

我应该声明在给定方法的每个单元测试中调用依赖项的方法吗?

给这个班:

public class ClassToTest
{
    private IService _service;

    public ClassToTest(IService service)
    {
        _service = service;
    }   

    public Output MethodToTest(string input)
    {
        if (string.IsNullOrEmpty(input))
            throw new ArgumentNullException("input");

        var output = new Output();

        if (input == "Yes")
            output.Value = "X";
        else
            output.Value = "Y";

        _service.AnotherMethod(input);
        return output;
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否应断言_service.AnotherMethod(input)在下面的方法中为此方法的每个单元测试调用,或者只是在一种方法中测试它?

// Test #1
[Test]
public void ThrowsExceptionForEmptyInput()
{
    // Arrange
    var service = new Mock<IService>();
    var classToTest = new ClassToTest(service.Object);

    // Act
    var result = () => classToTest.MethodToTest("");

    // Assert …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing mocking

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