在两个对象相互引用的情况下,我关注垃圾收集......
public class A
{ public readonly B _b;
public A()
{ _b = new B(this);
}
}
public class B
{ public readonly A _a;
public B(A objA)
{ _a = objA;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,第三类可以参考A......
public class Foo
{ public A _a = new A(); // A and B are both created here.
public void Bar()
{ _a = new A();
} // Create a new A (and B)
}
Run Code Online (Sandbox Code Playgroud)
通常,垃圾收集器会处理不再具有任何活动引用的对象.但在这种情况下,A和B对象永远不会丢失所有活动引用,因为它们总是相互引用.
当Foo对象用new (和)替换当前A(和 …
我的SQL 2008 R2服务器已配置为进行Windows身份验证,但只有我的域管理员帐户才有权连接到对象资源管理器.
我还需要授予我的非管理员域用户访问权限,因此我可以从本地工作站登录.
我的位置可以大大提高我的代码的清晰度和维护需求.
我正在寻找的是这样的:
#define MY_MACRO(arg) #if (arg)>0 cout<<((arg)*5.0)<<endl; #else cout<<((arg)/5.0)<<endl; #endif
Run Code Online (Sandbox Code Playgroud)
这里的想法:
预处理器根据宏参数的编译时(常量)值替换不同的代码行.当然,我知道这种语法不起作用,因为它#被视为string-ize运算符而不是标准#if,但我认为这证明了我试图实现的预处理器功能.
我知道我可以if在那里放一个标准语句,然后编译器/运行时将检查该值.但是这对于应用程序来说是不必要的工作,当arg总是传递一个常量值时,10.8或者-12.5只需要在编译时进行评估.
这个数字运算应用程序的性能需求要求尽可能消除所有不必要的运行时条件,并且已经使用了许多常量值和宏(代替变量和函数)来实现这一点.在不必将预处理器代码与实际if条件混合的情况下继续这种趋势的能力将使这更加清晰 - 当然,代码清洁是使用宏时最大的问题之一,尤其是在这个级别.
我正在寻找一个.NET类,它将执行SendKeys所做的事情,但是对于鼠标输入.谢谢!
我正在 Excel 中处理数学的特殊字符。
(指数?、GR??K 和其他杂项 Unicode 字符。)
我想将常用的 Unicode 字符串存储为全局常量,因为这可能比CStr()每次需要时调用都要快得多(并且不易出错)。
例如,我在所有函数之外都有这些声明:
Public Const STRPOWER0 As String = CStr(ChrW(&H2070)) '0th power
Public Const STRPOWER1 As String = "¹" 'CStr(ChrW(&HB9)) 1st power
Public Const STRPOWER2 As String = "²" 'CStr(ChrW(&HB2)) 2nd power
Public Const STRPOWER3 As String = "³" 'CStr(ChrW(&HB3)) 3rd power
Public Const STRPOWER4 As String = CStr(ChrW(&H2074)) '4th power
Public Const STRPOWER5 As String = CStr(ChrW(&H2075)) '5th power
Public Const STRPOWER6 As String = CStr(ChrW(&H2076)) '6th power
Public …Run Code Online (Sandbox Code Playgroud) 我在语句中定义了以下生成的列CREATE TABLE:
NET_ROWS_ADDED NUMBER(18) GENERATED ALWAYS AS (ROW_COUNT - PREV_ROW_COUNT) /*STORED*/,
Run Code Online (Sandbox Code Playgroud)
ROW_COUNT和PREV_ROW_COUNT是NUMBER(18)先前在同一个表中定义的简单列。
一切都按照它所写的那样工作正常。
但如果我取消注释该STORED选项,我会得到:
ORA-00907: missing right parenthesis
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为STORED生成的列。
这里的语法有什么问题?在我看来这一切都是正确的......
此代码涉及递归存储过程调用和避免游标名称冲突的"不太好"的方法.最后我不在乎它是否使用游标.只是寻找最优雅的方法.我主要将它用作跟踪存储过程层次结构(不购买产品)的简单方法.我在"动态sql"中尝试了游标并且没有太多运气.我想深入10级.
所需的输出:
sp_Master_Proc_Name -- sp_Child_Proc_1_Name ---- sp_Sub_Proc_1_Name -- sp_Child_Proc_2_Name -- sp_Child_Proc_3_Name
它不漂亮,但这里是代码(它没有按预期工作)
CREATE PROCEDURE SP_GET_DEPENDENCIES
(
@obj_name varchar(300),
@level int
)
AS
DECLARE @sub_obj_name varchar(300)
IF @level = 1
BEGIN
PRINT @obj_name
END
IF @level = 1
BEGIN
DECLARE the_cursor_1 CURSOR FOR
SELECT DISTINCT REPLICATE('--', @level) + ' ' + c.name FROM dbo.sysdepends a
INNER JOIN dbo.sysobjects b ON a.id = b.id
INNER JOIN dbo.sysobjects c ON a.depid = c.id
WHERE b.name = @obj_name
OPEN the_cursor_1
SET @level = @level …Run Code Online (Sandbox Code Playgroud) 这是我最近想知道的,主要是出于好奇.我有兴趣学习一些旧的编码风格,FORTRAN似乎是一个很好的起点.
我想我应该通过提供一个好的起点来帮助你们.
那么如何用FORTRAN编写这个C程序呢?
int foo ( int x , int y )
{
int tempX = x ;
x += y / 2 ;
y -= tempX * 3 ; // tempX holds x's original value.
return x * y ;
}
Run Code Online (Sandbox Code Playgroud)
我知道整个功能可以是一行:
return ( x + ( y / 2 ) ) * ( y - ( x * 3 ) ) ;
Run Code Online (Sandbox Code Playgroud)
但我要问这个问题的关键是看看这四个陈述是如何在FORTRAN中单独写出来的,而不是必然合并成一个陈述.
我现在在大学,他们非常注重遵循他们的标准.
他们告诉我这个:
所有课程必须以大写字母开头
正确
public class MyClass {}
Run Code Online (Sandbox Code Playgroud)
不正确
public class myClass {}
public class _myClass {}
Run Code Online (Sandbox Code Playgroud)
所有方法都必须以小写字母开头
正确
public void doSomething() {}
Run Code Online (Sandbox Code Playgroud)
不正确
public void DoSomething() {}
public void _doSomething() {}
Run Code Online (Sandbox Code Playgroud)
所有变量必须以小写字母开头
正确
string myString;
Run Code Online (Sandbox Code Playgroud)
不正确
string MyString;
string _myString;
Run Code Online (Sandbox Code Playgroud)
然而,在我编程的最后一年,我发现人们正在使用不同的规则.如果只是少数人使用不同的规则并不重要,但几乎在任何地方我都看到这些不同的实践被使用.
所以我只是想知道上述标准背后的原因是什么以及为什么使用其中一些其他标准:(它们是错误/旧标准吗?)
我见过的大多数方法都是以大写字母而不是小写字母开头的 - 几乎是我从导入的命名空间中使用的任何微软方法.这可能是我见过的最常见的一个我不明白的
很多人使用_作为类变量.
我在变量上看过大写字母.string MyString;
我知道我也错过了一些,如果你能想到你可以添加的任何内容,并给出一个解释,这将是有帮助的.我知道每个人都在开发自己的编码风格,但其中许多实践都有其背后的理由,我宁愿坚持最有意义的东西.
谢谢,
马特
这个问题是基于 我的另一个问题 ,并使用了所有相同的基本信息.该链接显示了我的表格布局和简单连接的基本要点.
我想编写另一个查询,从Table1中选择每条记录,然后根据Value是否小于链接阈值对它们进行排序.
再一次,我感谢任何愿意接受这一点的人.数据库从来都不是我的强项.
sql ×4
.net ×2
c++ ×2
sql-server ×2
asp.net ×1
c ×1
c# ×1
conditional ×1
excel ×1
excel-2019 ×1
fortran ×1
function ×1
io ×1
memory-leaks ×1
oracle ×1
permissions ×1
recursion ×1
sql-order-by ×1
substitution ×1
syntax ×1
t-sql ×1
vba ×1
winforms ×1