小编Jam*_*mes的帖子

如何使用类作为基础,但是公开隐藏类类型?

我目前只是通过通用接口公开属性,例如

public interface IBaseClass
{
    int ID { get; set; }
}

internal class MyBaseClass : IBaseClass
{
    public MyBaseClass() { }
    public int ID { get; set; }
}

public class MyExposedClass : IBaseClass
{
    private MyBaseClass _base = new MyBaseClass();

    public int ID
    {
        get { return _base.ID; }
        set { _base.ID = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在我的主应用程序中我可以做到:

IBaseClass c = new MyExposedClass();
c.ID = 12345;
Run Code Online (Sandbox Code Playgroud)

但做不到:

MyBaseClass b = new MyBaseClass();
Run Code Online (Sandbox Code Playgroud)

这是我想要的行为.

但是,我只是想知道这是否是正确的方法?或者,如果有更好的方法?

c#

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

ASP.NET MVC2 - 在加载用户控件时检查IsPostBack似乎不正确?

我有一个用户控件,其中包含以下代码:

<form id="CurrencyForm" method="post" runat="server">    
    Display prices in&nbsp;
    <asp:DropDownList ID="currency" runat="server" AutoPostBack="true">
        <asp:ListItem Value="GBP">GBP (£)</asp:ListItem>
        <asp:ListItem Value="USD">USD ($)</asp:ListItem>
        <asp:ListItem Value="EUR">EUR (€)</asp:ListItem>
    </asp:DropDownList>
</form>
Run Code Online (Sandbox Code Playgroud)

此用户控件包含在我的母版页中,因此可在网站的每个页面上使用.

这是代码隐藏:

protected void page_load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        currency.SelectedValue = (string)Session["currency"];
    }
    else
    {
        session["currency"] = currency.SelectedValue;
        Response.Redirect(Request.RawUrl);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我更改下拉列表的选择时,将触发回发.然而,价值IsPostBack似乎总是错误的.我不能完全理解我在这里做错了什么?

在查看大多数帖子的建议之后,我了解到我使用code_behind代码等而不是控制器时出错了.我想出了如何使用一个动作基本上重定向回到同一页面,所以以下是我现在拥有的:

用户控制:

<% using (Html.BeginForm("ChangeCurrency", "Home", FormMethod.Post)) {%>    
    Display prices in&nbsp;
    <select id="currency" name="currency">
        <option value="GBP">GBP (£)</option>
        <option value="USD">USD ($)</option>
        <option value="GBP">EUR (€)</option>
    </select>
    <input type="submit" value="change" /> // …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-2

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

我可以将一个枚举定义为Razor视图吗?

进入C#.cshtml视图我有以下代码定义C#代码片段:

@{ 
    ViewBag.Title = "Edit";
    Layout = "~/Views/Shared/MasterPageMobile.cshtml";
}
Run Code Online (Sandbox Code Playgroud)

我还可以enum在此部分中定义一个吗?

asp.net-mvc razor

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

使用IPAddress.Address会导致异常

我有一个旧服务,我通过以下方式比较2个IP地址(当服务启动时):

if (IPAddress1.Address == IPAddress2.Address)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

它在2003服务器上安装并启动时始终工作正常,但现在当我尝试在2008服务器上安装它时,我得到以下异常:

服务无法启动.System.Net.Sockets.SocketException:System.Net.IPAddress.get_Address()引用的对象类型不支持尝试的操作

(奇怪的是,当尝试在客户端2008服务器上安装并启动它时,它工作).

问题是什么?

c#

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

0
推荐指数
1
解决办法
9057
查看次数

在Delphi中显示负时间

我正在Delphi 2009中开发一个计时器.我目前正在使用以下方法来格式化我的计时器显示:

Caption := Format('%.2d', [Hours]) + ':' + 
           Format('%.2d', [Minutes]) + ':' + 
           Format('%.2d', [Seconds]);
Run Code Online (Sandbox Code Playgroud)

这按预期显示时间为:

00:04:35
Run Code Online (Sandbox Code Playgroud)

但是,当我进入负面时间时,可以理解地将其显示为:

00:-04:-35
Run Code Online (Sandbox Code Playgroud)

我需要时间显示为:

-00:04:35
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

delphi delphi-2009

0
推荐指数
1
解决办法
476
查看次数

在两个不同子表上的LEFT OUTER JOIN上的SUM

我有以下表架构

在此输入图像描述

我想要做的是返回所有发票以及以下汇总总数

  • 所有订单项的UnitPrice*数量总计(例如SUM(UnitPrice * Qty))
  • 所有额外费用的总额(例如SUM(Amount))

鉴于发票可以在没有任何行项目或额外成本的情况下存在,我认为我在这里需要做的就是使用LEFT OUTER JOINie

SELECT i.*, SUM(li.UnitPrice * li.Qty) As [Sub Total], SUM(ac.Amount) As [AdditionalCosts]
FROM Invoice i
LEFT OUTER JOIN LineItem li ON li.InvoiceId = i.Id
LEFT OUTER JOIN AdditionalCost ac ON ac.InvoiceId = i.Id
GROUP BY i.Id
Run Code Online (Sandbox Code Playgroud)

但问题是,如果两个子表的长度不同(例如,我有4个行项目,但只有1个额外成本),额外成本的数据会在额外的行项目行中重复(反之亦然),您可以通过删除来验证这一点GROUP BY.

所以会有效地发生以下记录

Invoice
-------
400001

LineItem
---------
400001 | 2000 | 100 | 1
400001 | 2001 | 50  | 2
400001 | 2002 | 10  | …
Run Code Online (Sandbox Code Playgroud)

sql sqlite

0
推荐指数
1
解决办法
1573
查看次数

修剪字符串值的正确方法是什么?

以下是正确的做法?

它是第一个还是第二个,还是两个都是正确的?

string strName=" Avinash ";
strName=strName.Trim();
Run Code Online (Sandbox Code Playgroud)

(要么)

string strName="Avinash";
string strTrimmedname=string.empty;
strTrimmedname=strName.Trim();
Run Code Online (Sandbox Code Playgroud)

更新:

不需要原始值,我只需要修剪字符串.我只是感到困惑,因为它不正确java..

c# string trim

0
推荐指数
1
解决办法
94
查看次数

标签 统计

c# ×4

asp.net-mvc ×1

asp.net-mvc-2 ×1

cookies ×1

delphi ×1

delphi-2009 ×1

javascript ×1

php ×1

razor ×1

sql ×1

sqlite ×1

string ×1

trim ×1