小编Alb*_*nbo的帖子

使用反射循环IEnumerable <>中的值

给定一个可能包含一个对象的对象IEnumerable<T>,我如何检查一个IEnumerable<T>属性是否存在,如果存在,则IEnumerable<T>使用反射遍历所有值,对于任何T

c# generics reflection

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

构建存储过程的最佳实践

作为主要编写c#的开发人员,我在编写c#代码时采用了一些好的做法.当我有时编写存储过程时,我很难将这些实践应用于存储过程代码.

有几次我继承了噩梦存储过程代码,前三层或四层存储过程设置了一些临时表,并且主要是相互调用.没有真正的工作,只有几行代码.然后最后调用"最终"存储过程,一个3000-5000行SQL代码的大怪物.这段代码通常有很多代码味道,如代码重复,复杂的控制流程(又名意大利面条)和一种方法,它可以在彼此之后堆叠太多的东西,没有明确的分离,其中一块工作开始,它的结束(甚至不是作为除数评论).

我还注意到使用了从中间临时表中选择的注释选择语句.可以重新打开选择以进行调试,但需要在任何调用代码期望返回结果集的特定顺序之前将其删除.

显然,我的队友们也分享了我缺乏良好的SQL写作练习.

所以...(这是真正的问题)...编写模块化可维护存储过程的好方法是什么?

我们欢迎自制的做法和书籍/博客的参考.方法以及帮助完成某些任务的工具.

让我们总结一些我没有找到良好实践的领域

  • 模块化和封装(存储过程通过临时表进行通信真的要走了吗?)
    • 在c#中,我使用用访问修饰符修饰的程序集,类和方法来完成此任务.
  • 调试/测试(比修改调试目标更好?)
    • 调试工具?
    • 调试痕迹?
    • 测试夹具?
  • 使用代码结构代码强调代码/逻辑/数据/控制流程
    • 在c#中,我重构并打破了较小的方法,每个方法只执行一个逻辑任务.
  • 代码重复

大多数情况下,我遇到SQL Server作为DBMS,但DBMS不可知的答案或答案指出其他DBMS的功能:在上述情况下的帮助也是受欢迎的.

为了给出一些背景知识:我遇到的大多数大型存储过程都在报告场景中,其基础是从大型表中创建一些汇总值.但是一路上你需要排除一些异常表中的一些值,在一些尚未完成的东西表中添加一些值,与去年相比(你能想象处理产品变更部门的丑陋代码)年间?)等

sql stored-procedures

20
推荐指数
2
解决办法
9794
查看次数

将私有成员封装为属性和定义没有私有成员的属性之间的区别是什么?

封装像这样的私有成员之间有什么区别(性能,内存等)

private int age;
public int Age
{
  get { return age; }
  set { age = value; }
}
Run Code Online (Sandbox Code Playgroud)

并定义这样的属性

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

c# memory performance properties

12
推荐指数
2
解决办法
1584
查看次数

如何针对ListCollectionView编写linq查询?

这些似乎没有做到这一点:

var source = myViewModel.MyListCollectionView.Select(x => x as MyType);
var source = myViewModel.MyListCollectionView.Select<object, MyType>(x => x as MyType);
var source = myViewModel.MyListCollectionView.SourceCollection.Select<object, MyType>(x => x as MyType);
Run Code Online (Sandbox Code Playgroud)

c# linq wpf mvvm listcollectionview

11
推荐指数
2
解决办法
5398
查看次数

为ASP.NET网站编写可重用的c#代码

过去几天我一直在学习C#,用于ASP.NET创建网站.

我对C#很新,但我一直在考虑如何编写代码以使其尽可能可重用.

作为一个简单的例子,假设我想创建一段代码来检查用户登录详细信息,我可以随时将其放入另一个站点,并使其与所获得的数据一起使用.

记住我不知道我应该如何布置我的代码来实现这一点,这是我提出的想法(我会用某种伪代码保持简短):

首先我创建一个类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Module {
    public class Login {
        public static bool check_login(string usernameCheck = "", string passwordCheck = "") {
            if(usernameCheck == "user" && passwordCheck == "password") {
                return true;
            }

            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我会有一个登录表单的aspx页面,例如:

<asp:Content ContentPlaceHolderID="column1" runat="server">
    <asp:TextBox ID="usernameInput" runat="server"></asp:TextBox>
    <asp:TextBox ID="passwordInput" runat="server"></asp:TextBox>
    <asp:Button OnClick="check_login" Text="Login" runat="server" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

并且文件背后的代码如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Module { …
Run Code Online (Sandbox Code Playgroud)

.net c# reusability

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

解决资源分配问题的算法

嗨,我正在建立一个项目,学生正在报名参加在全国几个城市进行的考试.虽然报名学生提供了三个城市的列表,他们希望按照自己的喜好进行考试.所以学生可能会说他对考试中心的首选是纽约,其次是芝加哥,其次是波士顿.

现在请记住,由于考试中心的能力有限,他们无法容纳每个学生的第一选择.但是我们会尝试为第一或第二选择的中心提供尽可能多的学生,并尽可能避免学生必须给出第三选择以学生为中心

现在任何一种排序算法的想法都会使这个过程更加有效.这样做的简单方法是首先通过尽可能多的第一选择的学生列表,然后通过第二选择列表并分配.然而,这可能会导致排名第一的学生获得他们的第一个中心,最后一个学生获得他们的第三选择,或者更糟糕的是没有他们的选择.任何可以提高效率的东西

algorithm

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

我们可以用自定义异常做什么?

我不知道我们可以用自定义异常做什么,我们用内置异常做什么.这似乎是一个天真的问题,但我真的不知道这一点.你怎么看?

.net c# exception

8
推荐指数
3
解决办法
555
查看次数

如何查询MySql表以显示根及其子项.

UserID      UserName       ParentID      TopID
  1         abc            Null           Null
  2         edf             1             1
  3         gef             1             1
  4         huj             3             1
  5         jdi             4             1
  6         das             2             1
  7         new            Null           Null
  8         gka             7             7
Run Code Online (Sandbox Code Playgroud)

TopID和ParentID来自userID

我想获得用户记录及其子和子记录.这里userid1是root,其子节点是userid2和userid 3.所以如果用户id是1,我必须显示从userid 1到userid 6的所有记录,因为所有记录都是root的子节点和SUbchild.类似地,对于userid3,如果用户标识是3,我必须显示userid3及其子Userid 4和Userid用户4 Userid5

输出应该是

Userid  Username
3          gef
4          huj
5          jdi
Run Code Online (Sandbox Code Playgroud)

我将了解userid和topID,以便我如何进行查询以实现上述结果.

SELECT UserID, UserName  FROM tbl_User WHERE ParentID=3 OR UserID=3 And TopID=1;
Run Code Online (Sandbox Code Playgroud)

通过上面的查询,我能够显示用户ID 3和用户ID 4我无法显示用户ID 5,其中有种类.需要帮忙.谢谢

mysql sql parent-child hierarchy

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

如何在StackPanel中设置背景

请有人让我知道如何在xaml的堆栈面板背景中设置图像?我已经尝试了以下它抛出一个Background没有属性的错误Image

   <Button.ToolTip>
        <StackPanel Height="200" Width="200">
            <StackPanel Height="30" Width="200" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" >
                <StackPanel.Background>
                    <Image Source="E:\R\watermark9.bmp"></Image>
                </StackPanel.Background>
                <Image VerticalAlignment="Top"  Width="30" Height="30" Source="E:\My Projects\Interconnect_New\Interconnect\Resources\watermark9.bmp" Name="image1" />
                <TextBlock FontFamily="Aharoni" FontSize="24" FontWeight="Bold" Foreground="Black" TextWrapping="Wrap" VerticalAlignment="Top" Height="30" HorizontalAlignment="Right" Width="143">
                    <Run FontFamily="Andalus" FontSize="18" FontWeight="Normal" Text="Hello! Fancy Tip" />
                </TextBlock>
            </StackPanel>
          </StackPanel>
    </Button.ToolTip>
Run Code Online (Sandbox Code Playgroud)

c# wpf stackpanel

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

何时在C#中使用get和set属性

我们什么时候应该在C#中使用get和set属性?

c#

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