小编Ste*_*edy的帖子

C#构造函数执行顺序

在C#中,当你这样做时

Class(Type param1, Type param2) : base(param1) 
Run Code Online (Sandbox Code Playgroud)

是先执行的类的构造函数,然后调用超类构造函数还是先调用基础构造函数?

c# inheritance constructor constructor-chaining

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

在JSON.NET中为反序列化转换接口

我正在尝试建立一个读取器,它将从各种网站中获取JSON对象(想想信息抓取)并将它们转换为C#对象.我目前正在使用JSON.NET进行反序列化过程.我遇到的问题是它不知道如何处理类中的接口级属性.所以有些本质:

public IThingy Thing
Run Code Online (Sandbox Code Playgroud)

会产生错误:

无法创建IThingy类型的实例.Type是接口或抽象类,无法实例化.

让它成为ITINGy而不是Thingy是相对重要的,因为我正在处理的代码被认为是敏感的,单元测试非常重要.对于像Thingy这样的完全成熟的对象,不可能对原子测试脚本的对象进行模拟.它们必须是一个接口.

我一直在研究JSON.NET的文档已有一段时间了,我在这个网站上找到的与此相关的问题都来自一年多以前.有帮助吗?

此外,如果重要,我的应用程序是用.NET 4.0编写的.

.net c# json json.net

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

粗粒度与细粒度

粗粒度和细粒度之间有什么区别?

我在谷歌搜索过这些术语,但我找不到他们的意思.

terminology granularity

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

nameof()是在编译时评估的吗?

在C#6中,您可以使用nameof()运算符来获取包含变量名称或类型的字符串.

这是在编译时评估,还是在运行时通过一些Roslyn API评估?

c# roslyn c#-6.0

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

C#如何检查URL是否存在/是否有效?

我在visual c#2005中创建一个简单的程序,在Yahoo!上查找股票代码 财务,下载历史数据,然后绘制指定股票代码的价格历史记录.

我知道获取数据所需的确切URL,如果用户输入现有的股票代码(或者至少有一个有关Yahoo! Finance的数据),它的工作完全正常.但是,如果用户编写了一个股票代码,我会遇到运行时错误,因为该程序试图从不存在的网页中提取数据.

我正在使用WebClient类,并使用DownloadString函数.我查看了WebClient类的所有其他成员函数,但没有看到任何可用于测试URL的内容.

我怎样才能做到这一点?

.net c# url-validation

111
推荐指数
8
解决办法
24万
查看次数

是否有MySQL选项/功能来跟踪记录更改的历史记录?

我被问到是否可以跟踪MySQL数据库中记录的更改.所以当一个字段被更改时,旧的和​​新的可用并且发生了这个日期.有这样的功能或常用技术吗?

如果是这样,我正在考虑做这样的事情.创建一个名为的表changes.它将包含与表相同的字段,但前缀为旧的和新的,但仅适用于实际更改的字段和TIMESTAMPfor.它将被编入索引ID.这样,SELECT可以运行报告以显示每条记录的历史记录.这是一个好方法吗?谢谢!

mysql database

109
推荐指数
6
解决办法
13万
查看次数

虚拟和抽象方法之间的区别

以下是MSDN的一些代码:

// compile with: /target:library 
public class D
{
    public virtual void DoWork(int i)
    {
        // Original implementation.
    }
}

public abstract class E : D
{
    public abstract override void DoWork(int i);
}

public class F : E
{
    public override void DoWork(int i)
    {
        // New implementation.
    }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释上面的代码关于抽象和虚方法之间的差异?

c#

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

Python中的"私有"(实现)类

我正在编写一个由两部分组成的小型Python模块:

  • 一些定义公共接口的函数,
  • 上述函数使用的实现类,但在模块外部没有意义.

起初,我决定通过使用它在函数内部定义它来"隐藏"这个实现类,但这妨碍了可读性,如果多个函数重用同一个类,则不能使用它.

那么,除了评论和文档字符串之外,是否有一种机制将类标记为"私有"或"内部"?我知道下划线机制,但据我所知它只适用于变量,函数和方法名称.

python access-modifiers

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

无法选择.NET 4.7

我正在尝试使用.NET 4.7开始一个新项目.我安装了Creators Update以及最新版本的Visual Studio 2017.当我启动项目和设备来选择.NET版本时,我所拥有的最新.NET框架版本是4.6.2.当我下载一个新的.NET框架时,它只列出4.6.2作为最新的MS,你可以下载.它说.NET 2017包含在VS 2017中.我缺少什么?

visual-studio-2017 .net-4.7

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

订购参数以利用currying

我有两次最近重构的代码,以便更改参数的顺序,因为有太多的代码,黑客喜欢flip\x -> foo bar x 42正在发生.

在设计功能签名时,哪些原则可以帮助我充分利用currying?

haskell functional-programming currying partial-application

92
推荐指数
2
解决办法
3934
查看次数