我知道,我知道必须有一些线索涵盖这个主题.但我使用搜索并没有得到符合我需要的答案.所以我们走了:
如何检查一个变量,如果是null
或undefined
,是什么之间的差异null
和undefined
?
"=="和"==="之间有什么区别(Google很难搜索到==
)?
在Rails 3.1下,我试图找出如何将一些coffeescript类从我的控制器默认coffeescript文件(home.js.coffee
)移到另一个文件中,以便整体构建一下.
有谁知道如何将coffeescript文件"包含"到另一个?
我正在阅读Eric Evans撰写的精彩书籍"领域驱动设计".在他的书中,Eric描述了两个不同的概念:规范模式和策略.
以下是规范的示例:
public interface ProjectSpecification {
public boolean isSatisfiedBy(Project p);
}
public class ProjectIsOverdueSpecification implements ProjectSpecification {
public boolean isSatisfiedBy(Project p) { … }
}
//client:
if {
(projectIsOverdueSpecification.isSatisfiedBy(theCurrentProject) { … }
}
Run Code Online (Sandbox Code Playgroud)
以下是政策的示例:
public class CargoBooking {
private OverBookingPolicy overBookingPolicy = new OverBookingPolicy();
public int makeBooking(Cargo cargo, Voyage voyage) {
if (!overbookingPolicy.isAllowed(cargo, voyage))
return –1;
int confirmation = orderConfirmationSequence.next();
voyage.addCargo(cargo, confirmation);
return confirmation;
}
}
public OverBookingPolicy {
public boolean isAllowed(Cargo cargo, Voyage voyage) {
return (cargo.size() + …
Run Code Online (Sandbox Code Playgroud) System.Transaction程序集目前不是.net核心框架的一部分(请参阅https://github.com/dotnet/corefx/issues/2949).在我的应用程序(asp.net core mvc)中,我需要使用TransactionScope进行事务处理.
是否存在可与.net核心框架一起使用的备用事务处理?我曾尝试使用Castle.Transactions作为替代方案,目前也不支持.
我使用包含方法(测试中的方法)的TDD编写了一个类,它将一个简单的值对象作为参数(range
).
码:
测试中的方法如下所示:
public List<string> In(IRange range)
{
var result = new List<string>();
for (int i = range.From; i <= range.To; i++)
{
//...
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
此外,我有一个单元测试来验证我的测试方法:
[TestMethod]
public void In_SimpleNumbers_ReturnsNumbersAsList()
{
var range = CreateRange(1, 2);
var expected = new List<string>() { "1", "2" };
var result = fizzbuzz.In(range);
CollectionAssert.AreEqual(expected, result);
}
private IRange CreateRange(int from, int to)
{
return new Fakes.StubIRange()
{
FromGet = () => { return from; },
ToGet = () => …
Run Code Online (Sandbox Code Playgroud) 我有一个关于Spring4D框架的TObjectList类的行为的问题.在我的代码创建的几何图形,诸如列表square
,circle
,triange
,各自定义一个单独的类.为了在列表被破坏时自动释放几何图形,我定义了一个类型为TObjectList的列表,如下所示:
procedure TForm1.FormCreate(Sender: TObject);
var
geometricFigures: TObjectList<TGeometricFigure>;
geometricFigure: TGeometricFigure;
begin
ReportMemoryLeaksOnShutdown := true;
geometricFigures := TObjectList<TGeometricFigure>.Create();
try
geometricFigures.Add(TCircle.Create(4,2));
geometricFigures.Add(TCircle.Create(0,4));
geometricFigures.Add(TRectangle.Create(3,10,4));
geometricFigures.Add(TSquare.Create(1,5));
geometricFigures.Add(TTriangle.Create(5,7,4));
geometricFigures.Add(TTriangle.Create(2,6,3));
for geometricFigure in geometricFigures do begin
geometricFigure.ToString();
end;
finally
//geometricFigures.Free(); -> this line is not required (?)
end;
end;
Run Code Online (Sandbox Code Playgroud)
如果我运行此代码,geometricFigures
即使我没有Free
在列表中调用方法,也会自动从内存中释放列表(注意在finally块中注释掉了行).我期望一个不同的行为,我认为该列表需要显式调用Free(),因为局部变量geometricFigures
不使用接口类型.
我进一步注意到,如果列表中的项目没有在for-in循环中迭代(我暂时将其从代码中删除),则列表不会自动释放,并且我会收到内存泄漏.
这引出了以下问题:为什么TObjectList(geometricFigures
)类型的列表在迭代其项时会自动释放,但如果从代码中删除for-in循环则不会?
我按照塞巴斯蒂安的建议调试了析构函数.列表项被以下代码破坏:
{$REGION 'TList<T>.TEnumerator'}
constructor TList<T>.TEnumerator.Create(const list: TList<T>);
begin
inherited Create;
fList := list;
fList._AddRef;
fVersion := fList.fVersion;
end;
destructor TList<T>.TEnumerator.Destroy; …
Run Code Online (Sandbox Code Playgroud) 您好,我有一个关于数据库设计的简短问题.我也试过搜索但找不到我要找的东西.所以这是我的问题:
我有两个数据库表Idea和Media(1:N).所以基本上这意味着一个想法可以没有,一个或几个媒体.但我问自己是否有可能定义每个想法必须至少有一个媒体的表格.如果可以,我怎样才能用MS SQL Server 2008实现这一目标?
我希望有人可以帮助我.
很多你的帮助
更新: 这就是目前的样子:
基本上我想创建一个文件,如果不存在然后写入消息.
if (!File.Exists(filePath + fileName))
File.Create(filePath + fileName);
StreamWriter sr = new StreamWriter(filePath + fileName,false);
Run Code Online (Sandbox Code Playgroud)
如何处理这个错误?
该进程无法访问文件'c:\ blahblah',因为它正由另一个进程使用.
嘿伙计们,我试图获取用户正在使用的文件夹的选定文件.我有以下代码已经运行,但只在桌面文件上:
private string selectedFiles()
{
// get the handle of the desktop listview
IntPtr vHandle = WinApiWrapper.FindWindow("Progman", "Program Manager");
vHandle = WinApiWrapper.FindWindowEx(vHandle, IntPtr.Zero, "SHELLDLL_DefView", null);
vHandle = WinApiWrapper.FindWindowEx(vHandle, IntPtr.Zero, "SysListView32", "FolderView");
//IntPtr vHandle = WinApiWrapper.GetForegroundWindow();
//Get total count of the icons on the desktop
int vItemCount = WinApiWrapper.SendMessage(vHandle, WinApiWrapper.LVM_GETITEMCOUNT, 0, 0);
//MessageBox.Show(vItemCount.ToString());
uint vProcessId;
WinApiWrapper.GetWindowThreadProcessId(vHandle, out vProcessId);
IntPtr vProcess = WinApiWrapper.OpenProcess(WinApiWrapper.PROCESS_VM_OPERATION | WinApiWrapper.PROCESS_VM_READ |
WinApiWrapper.PROCESS_VM_WRITE, false, vProcessId);
IntPtr vPointer = WinApiWrapper.VirtualAllocEx(vProcess, IntPtr.Zero, 4096,
WinApiWrapper.MEM_RESERVE | WinApiWrapper.MEM_COMMIT, WinApiWrapper.PAGE_READWRITE);
try
{
for …
Run Code Online (Sandbox Code Playgroud) 我在C#中寻找一种生成随机MAC号的方法.谷歌在这方面相当薄弱.
多谢
解:
在Yahia的帮助下,我能够编写以下解决方案.再次!
public static string GenerateMACAddress()
{
var sBuilder = new StringBuilder();
var r = new Random();
int number;
byte b;
for (int i = 0; i < 6; i++)
{
number = r.Next(0, 255);
b = Convert.ToByte(number);
if (i == 0)
{
b = setBit(b, 6); //--> set locally administered
b = unsetBit(b, 7); // --> set unicast
}
sBuilder.Append(number.ToString("X2"));
}
return sBuilder.ToString().ToUpper();
}
private static byte setBit(byte b, int BitNumber)
{
if (BitNumber < 8 && …
Run Code Online (Sandbox Code Playgroud) c# ×4
asp.net-core ×1
coffeescript ×1
database ×1
delphi ×1
file ×1
java ×1
javascript ×1
networking ×1
null ×1
policy ×1
spring4d ×1
sql ×1
tdd ×1
transactions ×1
undefined ×1
unit-testing ×1
winapi ×1
windows ×1