我知道这在社区的各个地方都被讨论了很多次,但我在Delphi中找不到一个简单的单例模式实现.我在C#中有一个例子:
public sealed class Singleton {
// Private Constructor
Singleton( ) { }
// Private object instantiated with private constructor
static readonly Singleton instance = new Singleton( );
// Public static property to get the object
public static Singleton UniqueInstance {
get { return instance;}
}
Run Code Online (Sandbox Code Playgroud)
我知道在Delphi中没有像这样优雅的解决方案,我看到很多关于无法在Delphi中正确隐藏构造函数的讨论(使其成为私有),因此我们需要覆盖NewInstance和FreeInstrance方法.我相信这是我在http://ibeblog.com/?p=65上找到的实现:
type
TTestClass = class
private
class var FInstance: TTestClass;
public
class function GetInstance: TTestClass;
class destructor DestroyClass;
end;
{ TTestClass }
class destructor TTestClass.DestroyClass;
begin
if Assigned(FInstance) then
FInstance.Free;
end;
class …
Run Code Online (Sandbox Code Playgroud) 这非常令人费解,我甚至不确定我应该在这里发布什么代码.然而问题很简单.我在JQuery模式对话框中有一个表单,我在做一些价格计算.其中,我有一个字段折扣.呈现为:
<div class="editor-label">
@Html.LabelFor(model => model.Discount)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Discount, new { size = 10 })
</div>
Run Code Online (Sandbox Code Playgroud)
我在Firebug调试器DOM选项卡中看到,该字段的值为20.当然,它在表单上可见.但是打电话:
$('#Discount').val()
Run Code Online (Sandbox Code Playgroud)
返回一个空字符串.这是唯一存在这个问题的领域.为其他字段调用val()会返回正确的值.即使单击提交和调试提交的模型的MVC操作,我也看到了Discount的值.只是JQuery函数返回一个空字符串,仅用于该字段.
我知道这是一个抽象的问题,但有没有人有这样的经历?
谢谢
生成的HTML:
<div class="editor-label">
<label for="Discount">Popust (%)</label>
</div>
<div class="editor-field">
<input id="Discount" class="text-box single-line valid" type="text" value="0" name="Discount" data-val-range-min="0" data-val-range-max="100" data-val-range="Vredonst mora biti izmedju 0 i 100" data-val-number="Polje Popust (%) mora biti broj" data-val="true" size="10">
</div>
Run Code Online (Sandbox Code Playgroud)
Firebug中用于此元素的DOM选项卡显示值:"20"
我应该用什么列表类型来存储枚举值?我已尝试使用TObjectList,我强制转换为TObject以添加值,但在从列表中读取时无法将其强制转换为枚举.
你用什么列表来存储枚举?
我在MVC3应用程序中的普通ASP.NET aspx页面上使用Crystal报表查看器.在控制器操作中,我只是重定向到aspx页面,报告显示正常.但问题在于动态图像.我找到了最简单的解决方案,将图像路径作为报表参数传递,并将此参数设置为图像源.在Visual Studio预览中,这工作正常但在执行时我在页面上看到此错误.
"NetworkError:404 Not Found - server /ReportWebForms/CrystalImageHandler.aspx?dynamicimage=cr_tmp_image_4fbcb73a-e001-4365-84fc-164788dd1605.png"
所以我假设,以前没有水晶报告的经验,问题出在CrystalImageHandler.aspx中.我在Web.config中有这些条目:
<httpHandlers><add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/></httpHandlers></system.web>
<handlers><add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/></handlers></system.webServer>
Run Code Online (Sandbox Code Playgroud)
这是MVC类型的问题吗?有人可以帮忙吗?
谢谢
我有一个 csv 文件,我正在使用 FileHelpers 进行解析,并且我遇到了引号和逗号都可以出现在字段中的情况:
逗号:
323,"PC","28/02/2014","UNI001","5000",0,"Return","Returned Goods, damaged",88.00,15.40,"T1","N",0.00,"R","-",
Run Code Online (Sandbox Code Playgroud)
引用
148,"SI","13/01/2014","CGS001","4000",1,"5","17" Monitor",266.00,45.39,"T1","Y",311.39,"R","-",
Run Code Online (Sandbox Code Playgroud)
我的班级是:
[DelimitedRecord(",")]
public class Transaction
{
public int TRAN_NUMBER;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string TypeText;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string DATE;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string TransactionAccount;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string NOMINAL_CODE;
public int DEPT_NUMBER;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string INV_REF;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string DETAILS;
public string NET_AMOUNT;
public string TAX_AMOUNT;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string TaxCodeName;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string PAID_FLAG;
public string AMOUNT_PAID;
[FieldQuoted('"', QuoteMode.OptionalForBoth)]
public string VatReconText;
[FieldQuoted('"', QuoteMode.OptionalForBoth)] …
Run Code Online (Sandbox Code Playgroud) 嗨我正在尝试在Delphi中设计模式,因为我在Delphi中找不到我喜欢的参考资料,我正在转换我在O'Reilly C#3.0设计模式书中的模式.但这不是问题.我已经从本书中创建了代理模式,但是有一些Delphi接口,构造函数和析构函数以及一般对象生命周期和行为的概念,我显然不明白.首先,我将发布我的代码:
unit Unit2;
interface
uses
SysUtils;
type
ISubject = interface
['{78E26A3C-A657-4327-93CB-F3EB175AF85A}']
function Request(): string;
end;
TSubject = class
public
function Request(): string;
constructor Create();
end;
TProxy = class (TInterfacedObject, ISubject)
private
FSubject: TSubject;
public
function Request(): String;
destructor Destroy(); override;
end;
TProtectionProxy = class (TInterfacedObject, ISubject)
private
FSubject: TSubject;
FPassword: String;
public
constructor Create();
destructor Destroy(); override;
function Authenticate(supplied: String): String;
function Request(): String;
end;
implementation
{ TSubjectAccessor.TProxy }
destructor TProxy.Destroy;
begin
if Assigned(Self.FSubject) then
FreeAndNil(Self.FSubject);
inherited;
end;
function …
Run Code Online (Sandbox Code Playgroud) 如果有人在此代码中使用http://oauth.googlecode.com/svn/code/java/core/和示例服务器的经验,也许您可以向我解释如何实现Authenticated Requests处理?参考:http://tools.ietf.org/html/rfc5849#section-3
因此,当用户通过身份验证并且受保护的资源服务器只想确认针对OAuth提供程序的真实性时.
我正在尝试执行GoF适配器模式,并且在C#示例中,我遵循Adapter类继承原始类和适配接口.在Delphi(2007)中,据我所知,这是不可能的,或者是这样吗?如果一个类继承了一个接口,它需要从TInterfacedObject继承,因为Delphi不允许多个类继承,这就是故事的结尾.我无法同时从自定义类和接口继承.
我对么?
谢谢.
我在http://delphipatterns.blog.com/2011/02/22/decorator-5/上实现了这种模式
我想知道,Delphi的RTTI中是否有与MemberwiseClone在C#中执行相同操作的原型模式的简单实现.我看到了这个模式的一些Delphi实现,其中正在创建一个新对象(TMyObject.Create),并且它的属性使用原型对象的值进行分配.我可能错了,但是如果我们以相同的基本方式创建对象,我看不到模式的好处.
谢谢.
我有一个没有脚手架的DateCreated值的模型。进入GET Edit控制器操作,我看到该模型具有传递给Edit视图的正确值。从视图的POST方法返回,DateCreated的值是默认的DateTime。迷路了 有人知道为什么吗?控制器和视图是脚手架。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Product product)
{
try
{
if (ModelState.IsValid)
{
product.DateEdited = DateTime.Now;
db.Entry(product).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch (DataException dex)
{
Console.Write(dex.Message);
ModelState.AddModelError("", reg6.Resources.UnableToSaveChanges);
}
return View(product);
}
@model reg6.Models.Product
@{
ViewBag.Title = "Edit";
}
<h2>Edit</h2>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Product</legend>
<table>
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
</td>
<td>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
<div>
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
</td>
<tr>
<tr>
<td>
<div class="editor-label"> …
Run Code Online (Sandbox Code Playgroud)