小编Vev*_*rke的帖子

什么时候派生类构造函数被强制使用base关键字?

约瑟夫·阿尔巴哈里和本·阿尔巴哈里(奥莱利)在果壳中的C#6.0.

版权所有2016 Joseph Albahari和Ben Albahari,978-1-491-92706-9.

在引入Implicit Calling of Parameterless Base-Class Constructor之后,在第96页说明以下内容:

如果基类没有可访问的无参数构造函数,则子类被强制base在其构造函数中使用关键字.

我正在尝试创建一个代码片段来证实这一点,但还没有成功.

我的片段:

public class X
{
    public int Num { get; set; }

    public void Method_1()
    {
        Console.WriteLine("X");
    }

    public virtual void Method_2()
    {
        Console.WriteLine(Num);
    }
}

public class Y : X
{
    public Y()
    {
        Num = 1000;
    }
}

private static void Main(string[] args)
{
    new Y().Method_2();
}
Run Code Online (Sandbox Code Playgroud)

我希望在书的肯定之后得到编译器错误,但我没有得到.代码运行并正确打印1000.

我的问题是:本书对于子类被强制使用base关键字意味着什么?我正在尝试重现这种情况.

我错过了什么?

c# constructor

6
推荐指数
2
解决办法
365
查看次数

LINQ按自定义类型分组不起作用

我有通过网络服务收到的数据HTTPWebRequest.在我使用NewtonSoft.Deserialize自定义类型(具有公共字符串属性的简单类)解析它之后,我想使用LINQ- 更具体地说,我想对数据进行分组来操纵这些数据.

我的问题是,如果我按单个字符串属性进行分组,则分组工作正常

from x in myList
group x by x.myStr into grp
select grp;
Run Code Online (Sandbox Code Playgroud)

由于我想按更多列分组,我将返回一个自定义类型

new MyType { a = ..., b = ... }
Run Code Online (Sandbox Code Playgroud)

然而,该小组没有工作.我认为原因必须是编译器不知道如何比较这些对象 - 所以如果这种类型实现IEqualityComparer<MyType>它将解决它.

但不,它仍然没有相应的分组,它创建了几个具有完全相同的字符串值的键.

我正在分组的自定义类型就像

public class MyType
{
    public string a;
    public string b;
    public string c;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么想法?

这是上述场景的具体示例:

//The type that models the data returned from the web service
public class MyClass
{
    public string a { get; set; }

    public string b …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-group

5
推荐指数
1
解决办法
3449
查看次数

在TFS登记之前是否执行Get Latest强制要求,以免覆盖/丢失代码?

在我的团队中有一个反复出现的问题让我疯狂.人们声称Team Foundation Server中的一些签到会覆盖以前的签入/存在代码.他们声称Get Latest Version在办理登机手续之前您总是需要做一件事.换句话说,运行get latest是正确办理登机手续的先决条件.

作为回应,我回复如下:TFS如果上面描述的确实发生,必须有一个我们遗漏的定义/设置/我们没有选中.有一个版本控制系统在登记时不会自动警告您有关代码冲突的问题(如果您在检查其他人检查的代码不同于您的代码之前)会有什么意义?我会理解是否存在设置此行为或该行为的设置(无论现在数据库中存在什么,都会检入,或者如果存在冲突并提示操作(合并)则发出警告).

我想明白:我错了吗?!这简直就是这样TFS吗?Get Latest在任何检查之前是强制性的,无论如何?!

作为旁注,如果在没有手动运行get latest的情况下签入是危险且危险的,为什么Microsoft不会将此作为默认行为?

提前致谢!

tfs

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

Visual Studio Code单元测试打上问号,不管结果是什么

在 Visual Studio Code 中,我有一个特定的单元测试,无论结果是什么- 都标有问号。

我添加了其他测试,它们的行为符合预期(用绿色勾号或红色 x 标记)。

问号是什么意思? 在此输入图像描述

[Fact]
public async Task LinuxHelper_ExecuteInvalidCommandBash_ShouldFail()
{
    //arrange
    
    //act
    //var bashExecutionResult = LinuxHelper.RunAsBash(@"dasda");
    
    //assert
    10.Should().Be(11);
    //bashExecutionResult.Succeeded.Should().BeFalse();
    //bashExecutionResult.Error.Should().NotBeNullOrEmpty();
    //bashExecutionResult.ExitCode.Should().NotBe(0);
}
Run Code Online (Sandbox Code Playgroud)

使用C#, .NET Core Test ExplorerVSC 扩展,以及xUnitFluentAssertions

c# xunit visual-studio-code

5
推荐指数
1
解决办法
1011
查看次数

umbraco 7如何访问数据库MVC

我有Umbraco 7网站和MVC.

我想对数据库执行一些自定义操作.

据我所知,我应该使用DbContext进行连接.

我已经引用了System.Data.Entity来获取DbContext类.但是,当我尝试使用DbContext时,我收到一个错误说法

The type or namespace name 'DbContext' could not be found (are you missing
a using directive or an assembly reference?)
Run Code Online (Sandbox Code Playgroud)

在我的模型名称空间中

public class umbracoDbDSN : DbContext
{
    //some code
}
Run Code Online (Sandbox Code Playgroud)

你能让我知道我错过了什么吗?

谢谢

sql-server asp.net-mvc database-connection umbraco dbcontext

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

Oracle NLS 设置中的会话与实例与数据库

Oracle中为什么有3个逻辑不同对视图Ñ大号anguage小号upport?

我可以理解需要区分会话和数据库 - 允许客户端自定义设置。

Session 与 Instance 呢?

我运行了一个查询来比较它们之间的值,这是结果(我注意到 NLS_DATABASE_SETTINGS 有更多的参数,其他的所有参数加上更多,因此我将它作为我的起点进行外连接):

SELECT
   db.parameter as parameter,
   db.value as database_value,
   s.value as session_value,
   i.value as instance_value
FROM
   nls_database_parameters db
LEFT JOIN 
   nls_session_parameters s
ON s.parameter = db.parameter
LEFT JOIN 
   nls_instance_parameters i
ON i.parameter = db.parameter
ORDER BY parameter
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我正在尝试深入挖掘并解决我的 pl/sql 开发人员客户端的问题,单独无法显示希伯来语字符。公司里的其他人都是。

更新:按照我在此处发布的解决方案,解决了希伯来语中显示字符的问题(这不是这里的问题)。

oracle plsqldeveloper

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

.NET的System.Type.GenericTypeArguments和System.Type.GetGenericArguments()之间的区别

.NET Framework为什么同时提供这两种功能

System.Type.GenericTypeArguments
Run Code Online (Sandbox Code Playgroud)

System.Type.GetGenericArguments()
Run Code Online (Sandbox Code Playgroud)

哪个都返回Type[]给定泛型类型的类型参数(都作为)?

似乎属性和方法具有完全相同的功能,这意味着API的接口具有冗余/重复的功能?

.net generics system.type

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

准确表达N个元素,而不是更少

我试图弄清楚用于查找的正则表达式与正确的N次出现匹配,而不是更少,而不是更多的一组字符.它看起来像一个非常简单的任务,但我无法找到适当的正则表达式.

更具体地说,我想要一个正则表达式,告诉一个给定的字符串是否包含正好3个数字 - 不是更少,而不是更多.

我以为我能够通过将3位数作为一组处理并在其后添加{1}的量词来实现它,但它不起作用.

或者,我预期[0-9] [0-9] [0-9]也能正常工作,但同样没有.两个正则表达式都返回相同的结果,输入设置为1,12,123,1234,12345.

下面是一个执行我尝试的代码示例,如上所述.

class Program
{
    static void Main(string[] args)
    {
        List<Regex> regexes = new List<Regex> { new Regex("\\d{3}"), new Regex("[0-9][0-9][0-9]"), new Regex("(\\d{3}){1}") };
        List<int> numbers = new List<int> { 1, 12, 123, 1234, 12345 };

        foreach(Regex regex in regexes)
        {
            Console.WriteLine("Testing regex {0}", regex.ToString());
            foreach (int number in numbers)
            {
                Console.WriteLine(string.Format("{0} {1}", number, regex.IsMatch(number.ToString()) ? "is a match" : "not a match"));
            }
            Console.WriteLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

上面程序的输出是: 在此输入图像描述

显然,从所有输入值中只有123是匹配.将"123"单独视为匹配的正则表达式是什么?

c# regex

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

如何确定一个Set是否包含一个没有引用的对象(在动态添加到集合中)在Javascript中(ECMAScript 6)

好吧,ECMAScript 6Set允许将对象添加到集合中.

喜欢

var s = new Set();
var o = {a: 1, b: 2};

s.add(o);
s.add("c");
Run Code Online (Sandbox Code Playgroud)

确定是否存在"标量"元素(如c)是直截了当的:

s.has("c"); // true
Run Code Online (Sandbox Code Playgroud)

那对象元素呢?我认为提供has()与对象的toString()值将返回true,但它不会

o.toString() // -> "[object Object]"
s.has("[object Object]") // -> false
Run Code Online (Sandbox Code Playgroud)

如果Sets可以包含对象,那么它has()必须知道确定是否包含给定对象.但是怎么样?

更新:虽然上面描述场景的解决方案也是直接的(s.has(o)),但是如果将动态添加到s,你没有参考?在这种情况下,你还能确定是否s包含该对象吗?

javascript ecmascript-6

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

有时 Visual Studio IDE0032 推荐是错误的应用吗?

Visual Studio 2019给出了以下关于 private 的建议_myNum:改为使用auto-property。起初我很想这样做,摆脱这个private变量并拥有带有private set. 但这并没有提供相同的功能:我想要一个公共属性来公开这条给定的信息,并且只在一个可以设置这条数据的地方 - 构造函数,因此是关键字readonly

换句话说,我是对的吗?这个建议并不总是正确的?

public class Foo
{
    public int MyNum { get { return _myNum; } }
    private readonly int _myNum;
    public Foo(int num)
    {
        _myNum = num;
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

应用自动完成建议,代码如下所示:

public int MyNum { get; }

public Foo(int num)
{
    MyNum = num;
}
Run Code Online (Sandbox Code Playgroud)

c# refactoring code-analysis visual-studio roslyn-code-analysis

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