如果我有一个使用javascript的网站,如果他们启用了javascript,用户将获得最完整的网站体验,但即使javascript被禁用,它仍将完全正常运行.有没有办法检查用户是否为他们正在使用的浏览器禁用了javascript,因此我可以显示如下消息:"网站最好用javascript启用"
我在vb.net中有以下代码来计算税前税额:
Public Shared Function CalculateRateBeforeTax(ByVal rate As Decimal, ByVal tax As Decimal) As Decimal
Dim base As Decimal = rate / (1 + (tax / 100.0))
Return Math.Round(base,2)
End Function
Run Code Online (Sandbox Code Playgroud)
我设置的一些场景是:
费率= 107,税= 7%,基数= 100
费率= 325,税= 6.5%,基数= 305.16
费率= 215,税= 125%,基数= 95.55
我使用c#和使用nunit测试框架将上述场景放入一些单元测试中.第一个场景通过,但另一个失败,我不知道如何让它通过.这是我的测试:
[TestFixture]
class TaxTests
{
[Test]
public void CalculateRateBeforeTax_ShouldReturn100_WhenRateIs107AndTaxIs7Percent()
{
decimal expected = 100.0m;
decimal actual = TaxUtil.CalculateRateBeforeTax(107.0m, 7.0m);
Assert.AreEqual(expected,actual);
}
[Test]
public void CalculateRateBeforeTax_ShouldReturn305point16_WhenRateIs325AndTaxIs6point5Percent()
{
decimal expected = 305.16m;
decimal actual = TaxUtil.CalculateRateBeforeTax(325.0m, 6.5m);
Assert.AreEqual(expected, actual); …Run Code Online (Sandbox Code Playgroud) 如果我Math.Round(95.55555555,2)在VB.NET中,结果是95.56,但我想要它的结果95.55.有没有办法在VB.NET中执行此操作?我想我只是想保留小数位,但不要围绕它们
如果我有代码:
Dim x as Decimal = 100.0m
Run Code Online (Sandbox Code Playgroud)
是隐式地从双精度转换为十进制.我将如何在vb.net中明确地执行此操作?
我最近问过这个问题我是否应该实现接口或抽象类.斯科特给出了答案,建议我同时使用两者,但我仍然不确定为什么我会这样做.从长远来看是否有好处?这样做有什么好处?
我认为这有一些好处:
这是另一个问题.如果我实现了一个接口,那么接口是否只包含所有子类都可以做的方法?如果我需要额外的逻辑,我会创建一个具有更具体实现的具体类或抽象类.
在开发接口时,它们应该尽可能保持通用,还是应该尝试在接口中放置尽可能多的方法,属性以保持接口数量低:例如,哪个更好1或2:
1)客户和租赁拆分为2个接口(仅与租赁相关的数据在租赁界面中,仅与客户相关的数据在客户界面中)
interface ICustomer
{
public string Name { get; set; }
public string Address { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
}
interface IRental: ICustomer
{
string Title { get; set; }
decimal Cost{ get; set; }
void Rent();
}
Run Code Online (Sandbox Code Playgroud)
2)将所有数据放入一个界面.
interface IRental
{
string Title { get; set; }
decimal Cost{ get; set; }
void Rent();
public string Name { get; set; }
public string Address { …Run Code Online (Sandbox Code Playgroud) 我有一个预订系统,允许您预订,修改现有预订和取消现有预订.我正在研究接口隔离原理,我想知道我应该如何轻松地创建我的接口,如果我违反了单一责任原则.我的初始设计是:
interface IReservation
{
void Book();
void Modify();
void Cancel();
}
Run Code Online (Sandbox Code Playgroud)
但后来我想,如果一个预约系统,不需要为预约实现这些方法之一,并且只关注预订,那么我做了以下事情:
interface IBook
{
void Book();
}
interface IModify
{
void Modify();
}
interface ICancel
{
void Cancel();
}
Run Code Online (Sandbox Code Playgroud)
现在我可以这样做:
interface IReservation : IBooking
{
}
Run Code Online (Sandbox Code Playgroud)
要么
interface IReservation : IBooking, IModify
{
}
Run Code Online (Sandbox Code Playgroud)
所以问题就变成了我把它变得如此稀疏.此外,更难以考虑接口的名称,例如,我不喜欢IModify或ICancel(它们看起来像我应该在IReservation接口上的方法).你如何确定接口应该进入什么以及应该将哪些内容转移到另一个接口,类等等......
我将在SQL Server中的nvarchar(MAX)字段中存储故事,但我知道故事会比MAX允许的更长,所以我应该采取什么方法?我应该将故事分成多行,还是应该跳过使用数据库并使用文本文件?
是否可以在同一个HTML文件中使用2个具有相同名称的CSS类?如果是这样,你如何在造型元素之间区分两者?
我在类的顶部声明了一个布尔变量,当在页面上选择单选按钮时,变量设置为true,但是当重新加载页面时,变量将重置为false.我处理此问题的一种方法是使用static关键字,但我不确定这是否是处理此问题的最佳方法.这是我尝试在Page_Load事件中执行操作的类,但它仍然将变量重置为false.
public class SendEmail
{
bool AllSelected;
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
AllSelected = false;
}
}
protected void rbAll_SelectedIndexChanged(object sender, EventArgs e)
{
if(rbAll.SelectedValue == "All")
AllSelected = true;
}
public Send()
{
if(AllSelected)
{
//Send Email. Never runs because AllSelected is always false;
}
}
}
Run Code Online (Sandbox Code Playgroud) c# ×5
interface ×3
oop ×3
vb.net ×3
.net ×2
asp.net ×2
css ×1
inheritance ×1
javascript ×1
nunit ×1
sql-server ×1