小编Pos*_*Man的帖子

属性构造函数或属性中的Nullable int

所以我有一个自定义属性,让我们调用它MyCustomAttribute,它有一个像这样的构造函数:

public MyCustomAttribute(int? i)
{
   // Code goes here
}
Run Code Online (Sandbox Code Playgroud)

并声明一个属性:

public int? DefaultProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

现在,如果我想使用该属性,我需要传入一个int或者null,这就是我所期望的.

但这会给编译器错误:

[MyCustomAttribute(1, DefaultProperty = 1)]
public int? MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

这样做:

[MyCustomAttribute(null,DefaultProperty = null)]
public int? MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

错误是:An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type对于构造函数和属性.

为什么是这样?如果我改变构造函数以获取一个int,我可以传入0,但不是null,哪种方法会破坏值的目的(有时可能为null)

c#

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

Mercurial仅合并某些变更集

好的,所以我们最近从SVN转换为Mercurial.
我们正在使用TortoiseHG.

在我们的一个存储库中,我们拥有所有项目,C++/.NET/ASP.我们有大约100个项目,都使用通用的图书馆项目.

因此,为每个项目创建多个repo将是非常困难的任务.

现在,我们有default分支,让我们说branchA.
我正在努力BranchA并添加我的超级更改,我更改了一个公共库,让我们说一个扩展方法

我要提交这branchAdefault,我怎么会去吗?

但是,我不希望将所有更改branchA合并到其中default,并且我不希望所有其他更改都来自default

希望这是足够的信息!

mercurial tortoisehg

12
推荐指数
3
解决办法
7824
查看次数

列表排序中的未处理异常

所以,我有一个包含自定义类的列表,MyClass
MyClass具有属性,这些属性可以为null(但并不意味着).

当使用自定义排序器对此类进行排序时,排序器访问此null属性并抛出异常,异常被视为未处理,即使sort方法周围存在try-catch块.

现在由于某种原因,异常仍然被写入控制台,这是异常处理程序正在做的事情.

我有一个真正的应用程序与同样的问题,导致我的单元测试失败,即使异常处理正确,我无法解释这一点.

所以我附上了一些示例代码来更好地解释自己,从VS运行它.

更新的代码
结果:
System.InvalidOperationException
无法比较数组中的两个元素.
完成!

所以它似乎是处理我的自定义异常,并抛出自己的?

using System;
using System.Collections.Generic;
using System.Data;

namespace TestSortException
{
    class Program
    {
        static void Main()
        {
            try
            {
                var list = new List<MyClass>
                                         {
                                             new MyClass("1"),
                                             new MyClass(null),
                                             new MyClass("fdsfsdf")
                                         };



                list.Sort(new MyClassSorter());
            }
            catch(Exception e)
            {
                Console.WriteLine(e.GetType());
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Done!");
            Console.ReadLine();

        }
    }

    class MyClassSorter : IComparer<MyClass>
    {
        public int Compare(MyClass x, MyClass y)
        {
//            try
//            {
                if (x.MyString == y.MyString) …
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
0
解决办法
2113
查看次数

CSS中网站的ASP.NET Root文件夹

所以,我以为我会在ASP.NET上试试运气.在我发现第一个问题之前,我没有走得太远.

我有一个像这样的文件夹布局:

\
->Admin
-->Admin.Aspx

->CSS
-->Style.css

->Images
-->bg.gif

Default.aspx
Default.master
Run Code Online (Sandbox Code Playgroud)

两者admin.aspxdefault.aspx用的default.master页面,其中包含了一行:

<link rel="stylesheet" type="text/css" href="CSS/Style.css" media="screen" />
Run Code Online (Sandbox Code Playgroud)

这适用于default.aspx页面,因为路径有效,但对于管理页面则不然.

是否有任何特殊字符,例如〜用于Linux中的家,以指示根路径?我不能只使用斜杠,因为托管时网站可能位于子文件夹下.

希望我已经解释过自己,所以你可以理解我需要做什么:)

我想这是一个HTML问题而不是ASP问题.

html css asp.net

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

Tortoise SVN作者在日志文件丢失

出于某种原因,无论我怎么做,我都无法让TortoiseSVN添加一个作者来记录消息.目前我们连接到运行svnserve的PC,因此它不是file:// Address.

我们尝试过使用svn:// Username @svnAddress,svn:// svnAddress

甚至设置svn:keywords $ Author:AuthorName $

我认为TortoiseSVN将使用Windows登录名,在从基于文件的repo升级之前,这些确实显示出来.

注意:如果这会影响任何内容,我们也会连接到域.此外,没有钩子脚本正在运行,svnserve.conf是默认的.

SVN Server正在使用SVN版本1.5.1(x86),Windows Server 2003.

客户正在使用最新版本的Tortoise,包括x86和x64.

任何帮助将非常感激.

哦,SVN用于源代码,因此它与编程有关:)(无论如何都是半相关的)

svn windows tortoisesvn

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

嵌套在LLBLGen中选择

所以,我有以下表格:

表

使用LLBLGen 2.6(适配器版本 - No Linq),SQL Server和.NET 3.5,如何编写以下查询?

SELECT o.ObjectID 
FROM Object o 
INNER JOIN ObjectDetail d ON i.ObjectID = d.ObjectID 
WHERE d.CreatedDate = ( SELECT MAX(CreatedDate) 
                        FROM ObjectDetail
                        WHERE ObjectID = o.ObjectID
                      )
Run Code Online (Sandbox Code Playgroud)

将有更多的过滤,但它与此无关,就像我有一个ObjectDetailType并且我想要特定类型的max ObjectDetail行.

此外,它不必选择o.ObjectID,任何/所有列都可以.

.net c# sql-server llblgenpro

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

Access数据库默认日期不能包含00小时,00分钟或00秒

所以,我们有许多年前编写的旧的VB 6应用程序.

它使用Access数据库来存储数据,而VB6 App作为此数据的接口现在,更改VB6应用程序将非常困难,而我正在努力避免这种情况.

问题是,当VB6将数据插入到访问数据库中的表中时,该表有一个使用"Now()"来设置默认值的列.

现在有关于此日期和时间值的计算,包括乘法.所以..当任何日期/时间成分为0时,最终结果为0.

IE dd*mm*yy*hh*n*s - 如果有的话为零,结果为零

为了克服这个问题我可以
•改变用于指定日期的代码(不是很理想)
希望在Access数据库的默认值中进行一些验证以确保时间中没有0值

是否有任何方法可以验证这样的默认值?就像是

If DatePart(‘hh’,date) == 0 OR DatePart(‘n’,date) = 0 OR DatePart(‘s’,Date) = 0
Then add one to all of them.
Run Code Online (Sandbox Code Playgroud)

编辑
这不是我的代码,这是我之前编写的代码,以及其他开发人员的开始.
我们无法确定我们的代码是生产中使用的代码.因此,为什么我宁愿不改变代码.我们计划在时间允许的情况下尽快重写.
问题每月只发生一次或两次,因此对应用程序的运行并不重要.

vb6 ms-access

0
推荐指数
1
解决办法
386
查看次数

标签 统计

c# ×3

.net ×2

asp.net ×1

css ×1

html ×1

llblgenpro ×1

mercurial ×1

ms-access ×1

sql-server ×1

svn ×1

tortoisehg ×1

tortoisesvn ×1

vb6 ×1

windows ×1