给定一个可能包含一个对象的对象IEnumerable<T>,我如何检查一个IEnumerable<T>属性是否存在,如果存在,则IEnumerable<T>使用反射遍历所有值,对于任何T?
作为主要编写c#的开发人员,我在编写c#代码时采用了一些好的做法.当我有时编写存储过程时,我很难将这些实践应用于存储过程代码.
有几次我继承了噩梦存储过程代码,前三层或四层存储过程设置了一些临时表,并且主要是相互调用.没有真正的工作,只有几行代码.然后最后调用"最终"存储过程,一个3000-5000行SQL代码的大怪物.这段代码通常有很多代码味道,如代码重复,复杂的控制流程(又名意大利面条)和一种方法,它可以在彼此之后堆叠太多的东西,没有明确的分离,其中一块工作开始,它的结束(甚至不是作为除数评论).
我还注意到使用了从中间临时表中选择的注释选择语句.可以重新打开选择以进行调试,但需要在任何调用代码期望返回结果集的特定顺序之前将其删除.
显然,我的队友们也分享了我缺乏良好的SQL写作练习.
所以...(这是真正的问题)...编写模块化可维护存储过程的好方法是什么?
我们欢迎自制的做法和书籍/博客的参考.方法以及帮助完成某些任务的工具.
让我们总结一些我没有找到良好实践的领域
大多数情况下,我遇到SQL Server作为DBMS,但DBMS不可知的答案或答案指出其他DBMS的功能:在上述情况下的帮助也是受欢迎的.
为了给出一些背景知识:我遇到的大多数大型存储过程都在报告场景中,其基础是从大型表中创建一些汇总值.但是一路上你需要排除一些异常表中的一些值,在一些尚未完成的东西表中添加一些值,与去年相比(你能想象处理产品变更部门的丑陋代码)年间?)等
封装像这样的私有成员之间有什么区别(性能,内存等)
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) 这些似乎没有做到这一点:
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#,用于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) 嗨,我正在建立一个项目,学生正在报名参加在全国几个城市进行的考试.虽然报名学生提供了三个城市的列表,他们希望按照自己的喜好进行考试.所以学生可能会说他对考试中心的首选是纽约,其次是芝加哥,其次是波士顿.
现在请记住,由于考试中心的能力有限,他们无法容纳每个学生的第一选择.但是我们会尝试为第一或第二选择的中心提供尽可能多的学生,并尽可能避免学生必须给出第三选择以学生为中心
现在任何一种排序算法的想法都会使这个过程更加有效.这样做的简单方法是首先通过尽可能多的第一选择的学生列表,然后通过第二选择列表并分配.然而,这可能会导致排名第一的学生获得他们的第一个中心,最后一个学生获得他们的第三选择,或者更糟糕的是没有他们的选择.任何可以提高效率的东西
我不知道我们可以用自定义异常做什么,我们用内置异常做什么.这似乎是一个天真的问题,但我真的不知道这一点.你怎么看?
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,其中有种类.需要帮忙.谢谢
请有人让我知道如何在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# ×7
.net ×2
sql ×2
wpf ×2
algorithm ×1
exception ×1
generics ×1
hierarchy ×1
linq ×1
memory ×1
mvvm ×1
mysql ×1
parent-child ×1
performance ×1
properties ×1
reflection ×1
reusability ×1
stackpanel ×1