我是C#新手,所以请耐心等待我.
好的,所以我在不同的程序集中有两个需要互相引用的类:
namespace AssemblyA
{
class A
{
private B MyB { get; set; }
}
}
namespace AssemblyB
{
class B
{
private A MyA { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我知道不允许循环引用,所以我使用的是一个接口:
namespace AssemblyA
{
public interface IB
{
// whatever 'A' needs of 'B'
}
class A
{
private IB MyB { get; set; }
}
}
namespace AssemblyB
{
class B : AssemblyA.IB
{
private A MyA { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
这有效,但它的缺点是暴露IB给世界其他地方.我想做的是做IB …
我对在C#中删除事件处理程序的语法感到困惑.
Something += new MyHandler(HandleSomething); // add
Something -= new MyHandler(HandleSomething); // remove
Run Code Online (Sandbox Code Playgroud)
"new"在每一行上创建一个新对象,因此您添加一个对象,然后要求它删除另一个对象.
这可以起到什么作用?
从语法来看肯定不明显.
我一直在玩Moose,感受它.我想要一个像C++一样的纯虚函数的例子,但是用Moose的说法(特别是用C++看).我知道即使Moose强加了比普通Perl更严格的模型,仍然有不止一种方法可以做我想问的方法(通过方法修饰符或SUPER::调用).这就是为什么我要尽可能专门针对类似C++的实现.至于"为什么?" 这个限制?晴好奇,同时也计划到港的一些C++代码的方式,C++与驼鹿perl的-为中心的人可能大多认同.
我知道我的问题太难以回答,但让我给你一些背景资料.
去年我作为一名软件经理找到了一份新工作,我认为可以做得很好.我在许多不同的编程领域经验丰富,如GUI,Web,RIA,网络应用程序.我是一个很好的问题解决者.一般来说,我知道如何以干净的方式组织代码.而且我总是努力工作.
但是差不多一年之后,我不得不承认我的老板对我的工作非常不满.最重要的原因是他认为我的产品软件解决方案不够先进.我想我已经精心分解了系统,并且我为每个组件选择了最流行的平台,并且大多数代码都很健壮且干净.
但我的老板不这么认为.他真的觉得我们可以做得更好.他想要的不仅仅是好的,而是优秀的.具有几乎终极可扩展性的东西,看起来非常容易扩展,有些东西有一些很棒的概念和想法.
这是我从未遇到过的挑战.我不知道如何向我的老板展示当前系统是否足够好.我告诉他"我们使用xxx,yyy",但他不知道它们是什么.我发现他的UML来解释我们所做的一切,但他是C的超级乐趣,是怀疑论者对OO和UML.
那么你有没有见过一些你感觉很棒,非常好并且很容易扩展的软件架构师?我想我真的需要看一些优秀的软件架构意味着什么的例子.
说实话,我真的怀疑是否值得尝试建立一个架构来为一些尚不存在的要求做准备,但我必须让我的老板很高兴继续我的工作.
我不想将GET或POST变量传递给脚本.我想使用文件名并使用它从php脚本中查找产品,例如:
......./DELL1500.php
......./COMPAQ1213.php
我有三个问题:
PHP $_SERVER["SCRIPT_NAME"]从服务器或客户端浏览器获取数据的位置是什么?
谁能想到使用这个的任何安全问题?
无论如何,这可能与任何旧浏览器不兼容.我假设它不是由服务器提供的吗?
在操作DataGridView单元格时,通常会执行以下操作:
MyGrid.CurrentRow.Cells["EmployeeFirstName"].Value = "John";
Run Code Online (Sandbox Code Playgroud)
这一切都很好,花花公子,但随着复杂性的增加,你开始担心拼写错误,重构问题等.
从历史上看,我只是将列公开,所以我可以直接在类实例中访问它们,但是我必须与想要将它们保密的Windows Forms设计器进行斗争(据说这是一种很好的做法).
我目前的解决方案是有一个名为Cols的类,带有一串字符串:
public static class Cols
{
public static string EmployeeFirstName = "EmployeeFirstName";
...
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
MyGrid.CurrentRow.Cells[Cols.EmployeeFirstName].Value = "John";
Run Code Online (Sandbox Code Playgroud)
这给了我一些IntelliSense的好处,而不是等待运行时错误.尽管如此,它似乎仍然模糊不清.
有没有更方便的方法来做到这一点?
我试图将数字与包含%,/,等的字符串分开,例如(%2459348?:,或:2434545/%).我怎么能在VB.net中分离它
我有一个看起来像(*字面意思)的字符串:
clp*(seven digits)1*
Run Code Online (Sandbox Code Playgroud)
我想改变它,看起来像:
clp*(seven digits)(space)(space)1*
Run Code Online (Sandbox Code Playgroud)
我正在使用C#并构建我的搜索模式:
Regex regAddSpaces = new Regex(@"CLP\*.......1\*");
Run Code Online (Sandbox Code Playgroud)
我不知道如何告诉正则表达式保留前11个字符,添加两个空格然后用它封顶 1*
任何帮助表示赞赏.
直升机,
我的问题是我在SQL Server中有一个存储过程,它返回一个字段的计数.我想将此存储过程的结果存储在不同存储过程的变量(标量?)中.
sp_My_Other_SP:
CREATE PROCEDURE [dbo].sp_My_Other_SP
@variable int OUTPUT -- The returned count
AS
BEGIN -- SP
SET NOCOUNT ON;
SET @SQL = "SELECT COUNT(*) FROM blah"
EXEC(@SQL)
END -- SP
Run Code Online (Sandbox Code Playgroud)
我目前这样做:
DECLARE @count int
EXEC sp_My_Other_SP @count OUTPUT
Run Code Online (Sandbox Code Playgroud)
然后我就像使用它一样
IF (@count > 0)
BEGIN
...
END
Run Code Online (Sandbox Code Playgroud)
然而,它返回其他存储过程结果以及主要存储过程结果,这是我的.NET应用程序中的问题.
-----------
NoColName
-----------
14
-----------
MyCol
-----------
abc
cde
efg
Run Code Online (Sandbox Code Playgroud)
(上面是对返回的结果集的尝试表示)
我想知道是否有办法将存储过程的结果存储到一个不输出它的变量中.
谢谢你的帮助.
sql sql-server stored-procedures sql-server-2005 sql-server-2008
c# ×3
regex ×2
.net ×1
architecture ×1
c++ ×1
datagridview ×1
dpi ×1
events ×1
handler ×1
measurement ×1
moose ×1
oop ×1
perl ×1
php ×1
pixel ×1
sql ×1
sql-server ×1
vb.net ×1
winforms ×1