如何确定.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) 使用将用于抽象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) 如何在没有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) 我这样做很麻烦.我正在创建一个在特定日期添加工作日的方法.例如,我想在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)
我不考虑计算上的特殊假期,我只是想在星期六和星期日之外添加日子..提前谢谢!=)
我只是想知道,在使用DataReader和DataAdapter从数据库中获取数据时我需要考虑哪些事情,而另外两个之间的区别是datareader需要打开连接而datadapter不需要...在我们的项目中,使用DataReader我们所有的DAL,我们从不使用dataadapter.所以我想知道使用DataAdapter + Datatable组合比使用DataReader更好的情况.提前致谢.
需要一些帮助.我需要计算一个特定日期的正常工作日,例如,在我们国家,我们星期一到星期五有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:伙计们请在下面投票选出最好/最快/最有效的答案.谢谢=)
我已经研究了好几个星期了.我目前正在使用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) 我已经使用完整的javascript完成了这个,但我怎么能在C#/ asp.net网站(不是winform)中这样做.谢谢..
我需要一些简化方法的帮助
我有这个方法
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)
有人能帮我吗.提前致谢...
可以用这种类型构造我的对象实体吗?
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
type参数必须具有公共无参数构造函数.与其他约束一起使用时,必须最后指定new()约束.
当需要这种约束时,你能给我一个示例场景吗?
想想这个,
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)