小编Jes*_*caB的帖子

关于函数的通用约束

我想写一个对类型有约束的泛型函数.具体来说,我想要这样的东西:

bool IsInList<T>(T value, params T[] args)
{
    bool found = false;
    foreach(var arg in args)
    {
        if(arg == value)
        {
            found = true;
            break;
        }
    }
    return found;
 }
Run Code Online (Sandbox Code Playgroud)

关键是您可以检查项目是否在参数列表中:

if(IsInList("Eggs", "Cheese", "Eggs", "Ham"))
Run Code Online (Sandbox Code Playgroud)

但是,编译器在平等线上呱呱叫.所以我想对它实现IEquatable的类型进行约束.但是,限制似乎只在班级有效.这是正确的,还是有某种方法来指定这一点?

c# generics type-constraints

10
推荐指数
2
解决办法
4948
查看次数

程序员编辑XAML的最佳方式

我想知道程序员如何选择编辑XAML.我与之交谈的大多数程序员似乎都在编辑原始XML,但这对我来说似乎很难见,因为对于更直观的编辑器来说这是很自然的事情(当然,你经常需要最终了解原始代码,但不是'有没有更好的方法来布局网格,编辑模板,或添加非c#触发器或管理命令?真正让我失望的是编辑菜单 - Visual Studio 1.0有一个更好的C++菜单编辑器而不是原始XAML编辑经验.)

当我编辑.aspx文件时,我会在很多时候使用可视化编辑器,然后对于原始内容我会进入html代码.

我知道Expression Blend,但这似乎更侧重于艺术类型和GUI专家而不是程序员.

有人建议为XAML提供比VS更好的编辑器吗?特别是因为VS似乎也有XAML编辑的真正令人讨厌的问题,比如bugginess和糟糕的表现?

感谢您帮助这个XAML新手.

silverlight wpf xaml visual-studio

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

在Visual Studio中禁止HTML验证错误

我有一个自定义属性,我在ASP.NET HTML标记中的各种元素中使用.显然它违反了DTD,我从Visual Studio得到了验证错误.我讨厌忽略错误输出窗口中的错误.有没有办法抑制此错误消息?例如:

<label id="MyId" cid="MyCID" runat="server" />
Run Code Online (Sandbox Code Playgroud)

cid是我用于各种目的的自定义属性,它会产生验证错误:

Validation (XHTML 1.0 Transitional): Attribute 'cid' is not a valid attribute of element label
Run Code Online (Sandbox Code Playgroud)

html asp.net validation

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

关于在Linq中重用db上下文的意见

我有一个使用linq访问数据库的类.一些方法称其他方法.例如:

class UserManager
{
   public User[] getList()
   {
       using(var db = new MyContext())
       {
             return db.Users.Where(item => item.Active == false);
       }
    }
    public User[] addUser(string name)
    {
       using(var db = new MyContext())
       {
           db.Users.InsertOnSubmit(new User() { id = Guid.NewId(),  name = name, active = false ...});
       }
       return getList();
    }
Run Code Online (Sandbox Code Playgroud)

...

在对addUser的调用中,我需要返回新列表.(我知道它不是很好的设计,但为了简单起见,我已经删除了细节.)但是,对getList的调用会创建第二个数据上下文.

我可以用额外的方法填写这个,即:

public getList()
{
     using(var db = new MyContext())
        return getList(db);
}
public getList(MyContext db)
{
      ...
}
Run Code Online (Sandbox Code Playgroud)

然后在addUser中替换我的调用,以保持相同的数据上下文.

我似乎在我的代码中看到了很多类型的东西,我担心创建和释放所有这些数据上下文的成本.有没有人对是否值得投入额外的工作以消除这些背景的创建和删除有意见?

c# linq datacontext

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

ASP.NET中的客户端时区

我有一个表需要在客户端的时区显示日期/时间.但是,我很难找到有效地做到这一点的方法.我知道我可以使用客户端javascript获取时区(并且这个方法有点不稳定),但我需要在Page_Load事件中,所以我不能事先调用javascript.

我可以从单独的页面(例如登录时)获取它,但这并不总是有效,因为有时人们会直接将书签用于内部页面,并绕过使用cookie的登录.

所以我留下了一些选择:1.为每个用户提供一个缓存,我会在每个机会填写一个回发,但不保证它是正确的)

  1. 尝试一些奇怪的IP地理定位黑客

  2. 拥有允许用户设置时区的用户个人资料(再次,如果他们旅行,这也不总是正确的)

  3. 尝试一些funkly页面重定向强制回发,(但有些浏览器禁用页面重定向)

  4. 让用户明确设置TZ

  5. 在Javascript中执行tz格式化

这些都不是理想的,在我看来,浏览器应该提供服务器的信息.有没有人有任何其他建议?

javascript asp.net timezone

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