小编CSh*_*oob的帖子

.NET中A类(对象)的大小

如何确定.NET中的Class是大还是小?它是根据它的属性或字段的数量,其属性/字段的数据类型来衡量的吗?或返回类型的方法?它的方法的参数?访问其方法的修饰符,虚方法?谢谢..

 class A
{

  string x { get; set; }
}

class B 
{
  int x { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,如果我像这样实例化A类和B类

 A objA = new A();
 B objB = new B();
Run Code Online (Sandbox Code Playgroud)

类objA是更大的一个,因为它包含一个String属性而objB只包含一个Int?虽然我没有为它的财产设定任何价值.谢谢

编辑:只是为了澄清我的问题

假设我有一堂课

public class Member
{
    public string MainEmpId { get; set; }
    public string EmpId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和另一堂课

public class User
{
    public string AccessLevel { get; set; }
    public string DateActivated { get; set; }
    public string FirstName { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net c# class

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

使用接口实现CRUD

使用将用于抽象DAL操作的接口在BL上实现CRUD的最佳方法是什么?我需要你的意见...

这是我的选秀..

映射在数据库表中的数据实体

 public class Student
 {
    public string StudentId { get; set; }
    public string StudentName { get; set; }
    public Course StudentCourse { get; set; }
 }

 public class Course
 {
    public string CourseCode { get; set; }
    public string CourseDesc { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

我创建了一个CRUD接口来抽象对象的操作

public interface IMaintanable<T>
{
   void Create(T obj);
   T Retrieve(string key);
   void Update(string key);
   void Delete(string key);
 }
Run Code Online (Sandbox Code Playgroud)

然后是通过实现接口来管理实体及其操作的组件

public class StudentManager : IMaintainable<Student>
{
    public void Create(Student obj)
    {
        // inserts …
Run Code Online (Sandbox Code Playgroud)

c# architecture crud

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

泛型:如何检查T的确切类型,没有T的对象

如何在没有T的对象的情况下检查/评估T的确切类型.我知道我的问题可能令人困惑,但请考虑一下......

 public abstract class Business
    {
        public abstract string GetBusinessName();
    }

    public class Casino : Business  
    {
        public override string GetBusinessName()
        {
            return "Casino Corp";
        }
    }

    public class DrugStore : Business 
    {
        public override string GetBusinessName()
        {
            return "DrugStore business";
        }
    }


    public class BusinessManager<T> where T : Business
    {
        private Casino _casino;
        private DrugStore _drugStore;

        public string ShowBusinessName()
        {
            string businessName;
            if (T == Casino) // Error: How can I check the type?
            {
                _casino = new Casino(); …
Run Code Online (Sandbox Code Playgroud)

c# generics

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

C#:从cetain日期添加工作日

我这样做很麻烦.我正在创建一个在特定日期添加工作日的方法.例如,我想在2010年9月15日(星期三)之前增加3个工作日,该方法将于9月20日(下周一周一)返回.它无视周六和周日,因为它的非工作日..

在C#中有类似的东西:

DateTime AddWorkingDays(DateTime specificDate, int workingDaysToAdd)
{
   return specificDate + (workingDaysToAdd - (all saturdays and sundays))
}
Run Code Online (Sandbox Code Playgroud)

我不考虑计算上的特殊假期,我只是想在星期六和星期日之外添加日子..提前谢谢!=)

c# algorithm datetime

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

ADO.NET问题:何时使用DataReader,DataAdapter

我只是想知道,在使用DataReader和DataAdapter从数据库中获取数据时我需要考虑哪些事情,而另外两个之间的区别是datareader需要打开连接而datadapter不需要...在我们的项目中,使用DataReader我们所有的DAL,我们从不使用dataadapter.所以我想知道使用DataAdapter + Datatable组合比使用DataReader更好的情况.提前致谢.

c# ado.net sqldatareader

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

计算在给定时间段内的正常工作日

需要一些帮助.我需要计算一个特定日期的正常工作日,例如,在我们国家,我们星期一到星期五有5个正常工作日,然后在代码中我需要排除星期六和星期日,当我在我的计算中使用它时.

我需要在C#中使用类似的算法:

    int GetRegularWorkingDays(DateTime startDate, DateTime endDate)
    {

       int nonWorkingDays = ((endDate - startDate) % 7) * 2;

       return (endDate - startDate) - nonWorkingDays;
    }
Run Code Online (Sandbox Code Playgroud)

我知道我的选秀很开心:(.提前致谢.=)

PS:伙计们请在下面投票选出最好/最快/最有效的答案.谢谢=)

c# algorithm datetime

8
推荐指数
2
解决办法
7253
查看次数

创建松散耦合/可扩展的软件架构

我已经研究了好几个星期了.我目前正在使用n层(3层)方法和工厂设计方法设计松散耦合的架构设计.我的目标是将每个客户端的业务逻辑(ClientA.DLL,ClientB.DLL)放在单独的命名空间中,以便项目扩展,这意味着我可以修改/删除/添加特定客户端的业务逻辑而不会影响其他客户端,因为它们是不依赖于彼此.然后,我使用客户端的唯一标识符(在数据库中维护的字符串值)通过Factory命名空间调用客户端的名称空间/类.所述Factory.DLL隐藏的每个客户端的逻辑,而BusinessAbstract.DLL 用作每个客户端类将使用的布局或模板.

这是项目解决方案:

替代文字

这是实际的代码:

BusinessAbstract.DLL

namespace BusinessAbstract
{
   // the entity / data transfer object
   public class MemberDTO
   {
      public string MemberID { get; set; }
      public string MemberName { get; set; }
    }

   // the interface
   public interface IMaintainable
   {
      void Add();
      void Edit();
      void Delete();
   }

  // the base abstract class, implements the Entity and the Interface
  public abstract class Member : MemberDTO, IMaintainable
  {
    // Implement IMaintanable but change it …
Run Code Online (Sandbox Code Playgroud)

.net c# architecture design-patterns

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

使用C#和ASP.net的Konami代码

http://en.wikipedia.org/wiki/Konami_Code

我已经使用完整的javascript完成了这个,但我怎么能在C#/ asp.net网站(不是winform)中这样做.谢谢..

c#

5
推荐指数
1
解决办法
1260
查看次数

使用Func <T,TResult>作为参数的方法

我需要一些简化方法的帮助

我有这个方法

public double ComputeBasicAmount(double basicLimit, double eligibleAmt)
{
  return basicLimit * eligibleAmt;
}
Run Code Online (Sandbox Code Playgroud)

样品用量:

Foo foo = new Foo(100, 1000);
double basicAmt = ComputeBasicAmount(foo.BasicLimit, foo.EligibleAmt)
Run Code Online (Sandbox Code Playgroud)

这里的问题是我希望qualifiedAmt是动态的,因为有时候它不仅仅是我传递给方法的eligbleAmt ..就像这样

Foo foo = new Foo(100, 1000);
double basicAmt = ComputeBasicAmount(foo.BasicLimit, foo.EligibleAmt/foo.RoomRate)
Run Code Online (Sandbox Code Playgroud)

我的解决方案是使用Func委托作为参数,但我不知道如何正确使用它

我想要这样的功能

public double ComputeBasicAmount<T>(double basicLimit, Func<T, double> multiplier)
{

 return basicLimt * multiplier;
}

double basicAmt = ComputeBasicAmount<Foo>(foo.BasicLimit, x => x.EligibleAmt/x.RoomRate)
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗.提前致谢...

c# delegates functional-programming

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

可空类型作为属性

可以用这种类型构造我的对象实体吗?

   public class Patient
   {
        public Datetime? AdmissionDate { get; set; }
        public double? AdmissionFee { get; set }
        public int? RoomNumber { get; set }
    }
Run Code Online (Sandbox Code Playgroud)

如果我在我的所有实体中都实现了这个,有什么缺点,因为最近,我总是遇到我真的需要将值设置为 null 的情况,特别是在 DateTime 中。我当前的解决方案是在从数据库中获取空日期时间记录时放置 DateTime.MinValue,当我向 Ui 显示结果时,我只是像这样检查它。

    if (patient.AdmissionDate == Datetime.MinValue)
    {
         DisplayAdmissionDate(string.empty)
    }
    else
     {
        DisplayAdmissionDate(patient.AdmissionDate)
    }
Run Code Online (Sandbox Code Playgroud)

是的,在 gridview 中,我必须把它放在 Databound 事件上,所以当我有数百万数据要显示时,我认为检查每个日期时间的每个循环并不是最优雅的方式,所以,对于这个问题,我发现这个?type 我可以在其中放置空值的地方,并且我计划将我的所有属性都置入其中,因此在将来,将空值放置到此值类型将不是问题。有什么建议吗?TIA

c# datetime nullable

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

泛型:何时使用new()作为类型参数的约束?

type参数必须具有公共无参数构造函数.与其他约束一起使用时,必须最后指定new()约束.

当需要这种约束时,你能给我一个示例场景吗?

c# generics

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

Linq查询IEnumerable <T>扩展方法

想想这个,

     class Item
     { 
        public string ID { get; set;}
        public string Description { get; set; }
     }

     class SaleItem
     { 
        public string ID { get; set;}
        public string Discount { get; set; }
     }


     var itemsToRemoved = (List<Item>)ViewState["ItemsToRemove"];
     // get only rows of ID
     var query = from i in itemsToRemoved select i.ID;

     var saleItems= (List<SaleItem>)ViewState["SaleItems"];
     foreach (string s in query.ToArray())
     {
            saleItems.RemoveItem(s);
     }
Run Code Online (Sandbox Code Playgroud)

如何使用IEnumerable/List Extension方法编写此LINQ短语

  // get only rows of ID
   var query = from i in items …
Run Code Online (Sandbox Code Playgroud)

c# linq

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