小编Ric*_*ich的帖子

如果DateTime对象不能为null,那么它在分配之前是什么?

如果尚未分配DateTime实例,它的值是多少?

看一个具体的例子:在下面的类中,"UnassignedDateTime == null"会返回true吗?

如果是这样,那么这样的引用肯定是空的,但是没有赋值为null,这绝对是不合逻辑的吗?

class TestClass
{
    public DateTime AssignedDateTime {get; set;}
    public DateTime UnassignedDateTime {get; set;}

    public TestClass()
    {
        AssignedDateTime=DateTime.Now;
        //Not assigning other property
    }

}
Run Code Online (Sandbox Code Playgroud)


我已经检查了类似问题的答案,但这是关于DateTime的?哪个是可空的.. 如何检查是否未分配DateTime对象?

c#

24
推荐指数
2
解决办法
8035
查看次数

在一个带有代码隐藏的ASP.NET网站中,.cs文件是在什么时候编译的?

简介:在一个带有代码隐藏的ASP.net网站中,*.cs文件在什么时候被编译?

上下文:一位从此离开的同事,将一个带有.cs代码隐藏的网站部署到共享服务器.我对.cs文件进行了一些小改动,我应该在其中一个页面上反映但尚未出现.我已经重新启动了应用程序池,但是我不愿重置服务器上的IIS,因为有很多其他团队的应用程序可能在同一台服务器上使用.

c# asp.net code-behind

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

heartbleed bug是C中经典缓冲区溢出漏洞的表现吗?

在我们关于安全性的第一次CS讲座中,我们讨论了C的问题,没有检查所谓的缓冲区长度以及可以利用此漏洞的不同方式的一些示例.

在这种情况下,它看起来像是恶意读取操作的情况,其中应用程序只读出了很多字节的内存

  1. 我是否正确断言Heartbleed错误是C缓冲区长度检查问题的表现?

  2. 为什么恶意使用在尝试读取其他应用程序的内存时不会导致分段错误?

  3. 在写入内存之前简单地将内存归零(然后随后从中读取)会导致分段错误吗?或者这在操作系统之间有所不同吗?或者其他一些环境因素?

  4. 显然无法识别漏洞的利用.是因为心跳功能在调用时不记录?否则对~64k字符串的任何请求肯定是恶意的?

c security computer-science heartbleed-bug

15
推荐指数
2
解决办法
4638
查看次数

存储来自数字流的最大5000个数字

鉴于以下问题:

"从数字流中存储最大的5000个数字"

我们想到的解决方案是二进制搜索树,它保持树中节点数量的计数,以及一旦计数达到5000就对最小节点的引用.当计数达到5000时,可以将每个要添加的新数字进行比较树中最小的项目.如果更大,则可以添加新数字,然后移除最小的数字并计算新的最小数量(这应该非常简单,已经具有前一个最小值).

我对这个解决方案的关注是二叉树自然会出现偏差(因为我只是在一边删除).

有没有办法解决这个问题,不会造成一个非常歪斜的树?

如果有人想要它,我已经为我的解决方案包括伪代码到目前为止:

process(number)
{
  if (count == 5000 && number > smallest.Value)
  {
    addNode( root, number)
    smallest = deleteNodeAndGetNewSmallest ( root, smallest)
  }
}

deleteNodeAndGetNewSmallest( lastSmallest)
{
  if ( lastSmallest has parent)
  {
    if ( lastSmallest has right child)
    {
      smallest = getMin(lastSmallest.right)
      lastSmallest.parent.right = lastSmallest.right
    }
    else
    {
      smallest = lastSmallest.parent
    }
  }
  else 
  {
    smallest = getMin(lastSmallest.right)
    root = lastSmallest.right
  }
  count--
  return smallest
}

getMin( node)
{
  if (node has left)
    return getMin(node.left) …
Run Code Online (Sandbox Code Playgroud)

algorithm binary-search-tree

11
推荐指数
1
解决办法
3902
查看次数

当.net程序因未捕获的异常而退出时,OS级别会发生什么?

实际问题:

当程序从未捕获的异常崩溃时,"在Windows中"会发生什么?

是否有一个dll函数,我可以挂钩,记录一些关于崩溃的基本信息?

语境:

我打算编写一个程序,它将收集有关在我的本地PC上崩溃的任何应用程序的一些非常基本的信息.我希望我可以执行一个简单的方法来记录有关崩溃的一些信息,其方式与Visual Studio生成对话框的方式类似,以便在程序崩溃时调试程序.

.net windows exception

10
推荐指数
1
解决办法
961
查看次数

使用PATINDEX在T-SQL中查找不同长度的模式

我想从一些varchars中拉出浮点数,使用PATINDEX()来发现它们.我知道在每个varchar字符串中,我只对存在的第一个浮点感兴趣,但它们可能有不同的长度.

例如

'some text 456.09 other text'
'even more text 98273.453 la la la'
Run Code Online (Sandbox Code Playgroud)

我通常会将这些与正则表达式匹配

  "[0-9]+[.][0-9]+"
Run Code Online (Sandbox Code Playgroud)

但是,我找不到PATINDEX接受的+运算符的等价物.所以他们需要(分别)匹配:

'[0-9][0-9][0-9].[0-9][0-9]' and '[0-9][0-9][0-9][0-9][0-9].[0-9][0-9][0-9]' 
Run Code Online (Sandbox Code Playgroud)

有没有办法将这两个示例varchars与一个有效的PATINDEX模式匹配?

sql t-sql sql-server

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

使用securestring进行sql连接

我想使用SecureString来保存数据库的连接字符串.但是,只要我将SqlConnection对象的ConnectionString属性设置为securestring的值,它肯定会对能够读取应用程序内存的任何其他应用程序可见吗?

我做了以下假设:
a)我无法在托管内存之外实例化SqlConnection对象
b)托管内存中的任何字符串都可以被Hawkeye等应用程序读取

.net c# securestring

7
推荐指数
2
解决办法
9173
查看次数

为什么"不要从派生类访问基类中定义的静态成员."

Microsoft关于C#编码约定的文章(C#编程指南)明确指出:

"不要从派生类访问基类中定义的静态成员."

为什么不访问静态成员?

似乎存在这种情况应该发生的有效场景,例如所有const成员都是静态的.派生类是否永远不能读取基类中定义的const成员?

c# inheritance static

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

有什么方法可以区分"人员用户帐户"和"计算机用户帐户"吗?

在为用户查询Active Directory时 - 有没有办法过滤掉为计算机创建的用户帐户?理想情况下,这种方式在大多数典型网络中都很常见.例如:

DirectorySearcher ds = new DirectorySearcher(new DirectoryEntry([Users_OU_root]));    
ds.filter = "(&(objectClass=User)([CRITERIA_TO_FILTER_OUT_COMPUTER_USER_ACCOUNTS]))";    
ds.FindAll();    
...
Run Code Online (Sandbox Code Playgroud)

.net c# active-directory

6
推荐指数
1
解决办法
1309
查看次数

为什么一起使用NOLOCK和NOWAIT?

一位同事写了一个使用提示"with(NOLOCK,NOWAIT)"的查询.

例如

select first_name, last_name, age
from people with (nolock,nowait)
Run Code Online (Sandbox Code Playgroud)

假设:

NOLOCK说"不要担心任何级别的锁定,现在只需读取数据"

NOWAIT说"不要等,如果表被锁定就会出错"

问题:
为什么同时使用两者?当然NOWAIT永远不会实现,因为NOLOCK意味着它不会等待锁定......?

t-sql sql-server

6
推荐指数
1
解决办法
7670
查看次数