小编tva*_*son的帖子

扩展方法性能

            /*I have defined Extension Methods for the TypeX like this*/ 
        public static Int32 GetValueAsInt(this TypeX oValue)
        {
            return Int32.Parse(oValue.ToString());
        }
        public static Boolean GetValueAsBoolean(this TypeX oValue)
        {
            return Boolean.Parse(oValue.ToString());
        }


         TypeX x = new TypeX("1");
         TypeX y = new TypeX("true");


         //Method #1
         Int32 iXValue = x.GetValueAsInt();
         Boolean iYValue = y.GetValueAsBoolean();

         //Method #2
         Int32 iXValueDirect = Int32.Parse(x.ToString());
         Boolean iYValueDirect = Boolean.Parse(y.ToString());
Run Code Online (Sandbox Code Playgroud)

不要被TypeX带走,说我应该在TypeX中定义那些方法而不是扩展)我无法控制它(实际类我定义它在SPListItem上.

我想将TypeX转换为Int或Boolean,这个操作是我在代码中的很多Places中做的一件常见的事情.我想知道这会导致性能下降.我试图使用Reflector解释IL代码,但我并不擅长.可能对于上面的例子,不会有任何性能降低.总的来说,我想知道在使用Extension方法时对Regard对Performance的影响.

.net-3.5 c#-3.0

8
推荐指数
1
解决办法
2083
查看次数

你如何为命名空间设置名称?

我将在前言中说我通常在C#/ .Net中工作.

通常,我使用命名方案将常见的可重用组件放入命名空间,该命名空间将我们的组织和项目特定组件反映到与项目相关联的命名空间中.我这样做的原因之一是我有时会与我所在部门以外的其他人共享我的组件,但在组织内部.特定于项目的命名空间通常以部门的名称或缩写开头.当我在项目之间重用代码时,我通常会将其迁移到一个基于组织的命名空间中.

例如:

UIOWA.DirectoryServices 包含处理Active Directory特定实现的类.

UIOWA.Calendar 包含处理大学主日历的课程.

LST.Inventory.Datalayer 拥有实现Learning Spaces Technology组清单应用程序数据层的类.

我现在正在开展一个项目,这个项目与Unviersity(一个举办慈善活动的学生团体)有着更加模糊的联系,有可能在我们大学以外的地方销售,因此它并不适合进入我的正常命名约定,即部门只是可能使用该项目的许多人的第一个客户.

我倾向于去组织命名路线并为此应用程序创建"组织项目"名称空间.我想听听其他人如何处理这个以及你可能有的任何建议.

谢谢.

另请参阅有关命名空间组织的相关问题.

编辑

我最终创建了org/project命名空间UIOWA.MasterEvent并从那里派生了更多的命名空间.对未来项目的其他意见仍然感兴趣.

language-agnostic project-organization

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

Basecamp中最大的缺失功能,用于软件开发管理和协作

如果我们采用Basecamp进行错误跟踪,任务跟踪,外部文档,协作和项目管理,我们的团队可能会发现哪些功能缺乏?

我之前使用过免费版本,并认为37Signals制作出色的产品 - 但我想听听你们的缺点是什么.

collaboration project-management basecamp

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

循环遍历数据表并删除行

我已经从2个不同的服务器填充了一个Datatable.我可以在我的长度> 0的地方进行调整,我想要做的是删除未击中的行.以下是我所拥有的内容摘要

DataRow[] dr = payments.dtPayments.Select(myselect);

if (dr.Length > 0)
{
   for (int a = 0; a < dr.Length; a++)
   {
      if (thisOption == true)
         dr[0].Delete();
      else if (otherOption == true)
      {
         dr[0]["Date"] = myDataReader["date"].ToString().Trim();
         dr[0]["Pay"] = payTypeName(myDataReader["ccdsrc"].ToString()
                                                          .Trim());
      }
   }
}
if (dr.Length == 0)
{                        
   if (LastOption == true)
   {
     //DataRow should be removed
   }                        
}
Run Code Online (Sandbox Code Playgroud)

.net c# sql asp.net

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

使用ASP.NET Web表单中的纯HTML控件来表单发布值

我有一个简单的表单,有一些简单的html输入,如使用ASP.NET Web Forms(不是MVC)的bellow

<table id="tbl_SchoolDetails">
    <tbody id="tbody_SchoolDetails">
        <tr>
            <td>
            School Name
        </td>
        <td>
            <input id="SchoolDetails_SchoolName" type="text" value="<%= ViewModel.School.Name %>" />
        </td>
    </tr>
    <tr>
        <td>
            Head Teacher
        </td>
        <td>
            <input id="SchoolDetails_HeadTeacher_Name" type="text" value="<%= ViewModel.School.HeadTeacher.Name %>" />
        </td>
    </tr>
    <tr>
        <td>
            Head Teacher Email
        </td>
        <td>
            <input id="SchoolDetails_HeadTeacher_Email" type="text" value="<%= ViewModel.School.HeadTeacher.Email %>" />
        </td>
    </tr>
    <tr>
        <td>
            Regent/Placement Contact
        </td>
        <td>
            <input id="SchoolDetails_Regent_Name" type="text" value="<%= ViewModel.School.Regent.Name %>" />
        </td>
    </tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

当我回发到服务器时,文本框的值不包含在Request.Form元素中.有什么理由让我失踪.我不愿意使用asp.net控件,因为该页面后来需要相当数量的javascript来更改ui和其他东西.

我知道我可以轻松地使用MVC做到这一点,但不幸的是,此时的更改不是一个选项.

干杯科林G.

html asp.net webforms

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

ASP.NET MVC导航和用户界面设计

简短版本:


你知道有什么方法可以获得一个输入按钮(提交)和一个锚标签来使用CSS和没有Javascript直观地呈现相同的内容吗?

长版:


我正在开发一个ASP.NET MVC应用程序.该站点包含用于查看或创建或更新模型的详细信息的页面.页面操作包含在表单的底部,通常包括" 更新"和" 取消"或" 编辑"," 删除"和" 列表"(如果在详细信息视图页面上).该更新,编辑删除行为从形式到服务器的数据发布,同时取消列表动作是/可以由适当的GET请求处理.值得注意的是,我的设计目标之一是,如果Javascript被禁用,则启用Javascript时,网站的工作方式尽可能相同.我还希望UI元素在视觉上呈现相同的元素是否导致回发或触发GET请求.

为了使表单提交在没有Javascript的情况下工作,我想我必须使用提交按钮.我用CSS重写了按钮的视觉样式,使其呈现出与SO页面顶部的"按钮"非常相似 - 平面,纯色和纯文本.我希望生成GET请求的操作可以使用锚标记来处理,但是我在使用这些标记和样式化按钮进行相同渲染时遇到了问题.对齐和字体大小似乎存在问题.我能够让它们接近但不完全相同.

编辑: 使用按钮和锚点的样式差异包括无法使字体在相对于边界框内的基线的相同位置渲染,并使边界框本身呈现相对于容器的相同大小和对齐.无论我的调整如何,事情都只有几个像素.如果你能够让它工作,请告诉我.知道它可能会让我更容易继续尝试,直到我能够让它工作.

我试过的一件事是围绕一个按钮包裹GET动作,其形状类似于表单按钮.这在Firefox中很有用,但在IE7中却没有.单击IE7中的这样一个按钮并不会将点击返回到锚点.我现在想出的是使用与所需操作相关联的method ="GET"为GET创建一个新表单.我将它包装在一个提交按钮周围,该按钮具有一个onclick处理程序,location.href该处理程序设置为所需操作的URL.这在视觉上呈现相同并且似乎有效,即使表单嵌套在另一种形式中也是如此.一个小问题是,如果Javascript被禁用,那么我的GET url包含一个?最终,而不是你想要的漂亮的干净网址.

我想知道的是,是否有其他人以不同的方式解决了这个问题,以便更好地工作(并且可能需要更少的HTML)?你还有其他想法吗??当Javascript关闭时,当请求作为帖子提交时,有什么方法可以修复GET URL吗?

详细信息视图中的示例代码.我意识到我可以(并且可以说应该)通过javascript添加onclick处理程序,但是当我内联时代码实际读取更好.我正在使用HtmlHelper扩展来生成下面的所有标记.我重新格式化它以提高可读性.

    <form action="../Edit/2" class="inline-form" method="get">
        <input class="button"
               onclick="location.href='../Edit/2';return false;"
               value="Edit"
               type="submit" />
    </form>
    <form action="../Delete/2" class="inline-form" method="post">
         <input class="button"
                value="Delete"
                type="submit" />
    </form>
    <form action="../List" class="inline-form" method="get">
        <input class="button"
               onclick="location.href='../List';return false;"
               value="List Donors"
               type="submit" />
    </form>
Run Code Online (Sandbox Code Playgroud)

html css navigation asp.net-mvc user-interface

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

ASP.MVC防伪令牌和加密错误

我正在使用ELMAH来处理我的MVC网站中的错误,并且在过去的几周里我注意到我收到了一些CryptographicExceptions.消息是:

System.Security.Cryptography.CryptographicException:填充无效,无法删除.

System.Web.Mvc.HttpAntiForgeryException:未提供所需的防伪标记或无效.---> System.Web.HttpException:viewstate MAC验证失败.如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法.AutoGenerate不能在群集中使用.--->

应用程序未在群集中运行,我似乎无法重现这些错误.它们看起来像是有效的请求 - 而不是手工制作的帖子 - 并且包含__RequestVerificationToken cookie.我在页面上的表单(我的登录表单)中有所需的HTML帮助器.

我还没有任何用户投诉,所以我假设最终它适用于任何试图登录的人,但我不知道为什么会发生这种情况.

其他人看到这种行为或对如何诊断异常有任何想法 - 就像我说的,我不能让它失败.删除FF中的cookie会出现不同的错误.修改cookie(更改或删除内容)也会导致不同的错误,修改页面上隐藏令牌输入的内容也会导致错误.

asp.net-mvc exception antiforgerytoken

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

如何在JavaScript中使所有单词的第一个字符大写?

我已经搜索了解决方案,但还没有找到.

我有以下字符串.

1. hello
2. HELLO
3. hello_world
4. HELLO_WORLD
5. Hello World
Run Code Online (Sandbox Code Playgroud)

我想将它们转换为以下内容:

1. Hello
2. Hello
3. HelloWorld
4. HelloWorld
5. HelloWorld
Run Code Online (Sandbox Code Playgroud)

如果字符串中没有空格和下划线,则首先是大写,而所有其他都是小写.如果单词由下划线或空格分隔,则每个单词的大写第一个字母,并删除空格和下划线.我怎么能用JavaScript做到这一点.

谢谢

javascript string

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

Linq查询以获取子列表中的共享项

我有一个具有List属性的类,我将这个类命名为A.然后我有一个List<A>.

我需要为对象,以让所有的图标B是存在上的所有项目一个LINQ List<A>.

示例澄清:

var list = new List<A>
           {
             new A { B = new List<B> { B1, B2, B3, B4 } }
             new A { B = new List<B> { B3, B4, B5, B6 } }
             new A { B = new List<B> { B2, B3, B4, B5, B6 } }
           };
Run Code Online (Sandbox Code Playgroud)

查询必须返回对象B3和B4,因为它们是包含在所有List<A>对象上的唯一对象.

.net c# linq linq-to-objects

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

在sql server中重新排序Identity主键

是的,我非常清楚后果.但我只是想重新排序它们.从1开始到结束.

如何使用单个查询重新排序密钥?

它是聚簇主键索引

像重新排序一样

First record Id 1 
second record Id 2
Run Code Online (Sandbox Code Playgroud)

主键是Int

sql-server identity primary-key

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