以下示例中的List1是SortedList(Of MyClass)并包含251个成员.
前两个代码块在15.5秒内执行.
For cnt As Integer = 1 To 1000000
For Each TempDE In List1
Dim F As String = TempDE.Key
TempDE.Value.x1 = 444
Next
Next
Run Code Online (Sandbox Code Playgroud)
For cnt As Integer = 1 To 1000000
For Each TempDE As KeyValuePair(Of String, phatob) In List2
Dim F As String = TempDE.Key
TempDE.Value.x1 = 444
Next
Next
Run Code Online (Sandbox Code Playgroud)
这个在5.6秒内执行.
For cnt As Integer = 0 To 999999
For cnt2 As Integer = 0 To 250
Dim F As String = List1.Keys(cnt2)
List1.Values(cnt2).x1 …Run Code Online (Sandbox Code Playgroud) 我有一个简单的C函数,我声明为:
int strLen(const char* str_)
{
str_ = (char*) 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译时我感到非常惊讶!这是为什么?
虽然这个onedoes没有编译(这是有道理的):
int str(const int i_)
{
i_ = 0;
return 0;
}
Run Code Online (Sandbox Code Playgroud) a value class和reference classC#的定义是什么?
这与a value type和reference type?有什么不同?
我问这个问题是因为我在MCTS Self-Paced Training Kit(考试70-536)中读到了这个问题.第1章,第1课,课程回顾4:
您需要创建一个仅包含值类型的简单类或结构.您必须创建类或结构,以使其尽可能高效地运行.您必须能够将类或结构传递给过程,而无需担心过程将对其进行修改.您应该创建以下哪项?
参考类
B参考结构
C值类
D值结构
正确答案:D
不正确:你可以创建一个引用类; 但是,它可以在传递给程序时进行修改.
B不正确:您无法创建参考结构.
C不正确:您可以创建一个值类; 但是,结构往往更有效率.
D正确:价值结构通常是最有效的.
假设我有'Car'模型和控制器'cars',以及方法'display'.
我有多个属性,如:
in_production,year,make
我可以轻松地做这样的事情来找到符合所有传递参数的汽车:
def display
@cars = Car.find(:all, :conditions => { :in_production => #{params[:in_production]}, :year => #{params[:year]}, :make => #{params[:make]} })`
end
Run Code Online (Sandbox Code Playgroud)
所以我正在做的是在菜单中编写硬链接,所以如果我想找到2009年生产的所有日产汽车,我会将这些值作为参数传递给我的链接.
在另一页上,我想展示2009年的每辆车都是in_production,只有两辆车而不是三辆车.什么是动态改变条件的最佳方式,以便它可以使用一个,两个或三个参数,同时使用相同的动作?
有任何想法吗?
对不起这个糟糕的头衔,想不出一个简洁的方式把这个..
我正在考虑拥有一个对象列表,这些对象都是特定的接口.然后,这些对象中的每一个都可以实现其他接口,但是不能保证哪个对象将实现哪个.但是,在单个循环中,我希望能够调用其进一步子类型的方法.
即3个接口:
public interface IAnimal { ... }
public interface IEggLayer { public Egg layEgg(); }
public interface IMammal { public void sweat(); }
Run Code Online (Sandbox Code Playgroud)
然后将其存储为
private List<IAnimal> animals= new ArrayList<IAnimal>();
Run Code Online (Sandbox Code Playgroud)
因此,添加到列表中的实例也可能是类型,IEggLayer或者IMammal具有完全不相关的方法.
我最初的本能就是这样做
for(IAnimal animal : animals) {
if(animal instanceof IEggLayer) {
egg = ((IEggLayer)animal).layEgg();
}
if(animal instance of IMammal) {
((IMammal)animal).sweat();
}
}
Run Code Online (Sandbox Code Playgroud)
但我总是被告知类型检查是代码应该真正被重构的标志.
由于单个对象可能同时执行[platypus],意味着单个doFunction()不适合这种情况,在这种情况下是否可以避免使用类型检查,或者这是一个类型检查是被归类为可接受的?
是否有可能迎合这种设计模式?
我为这个人为的例子道歉...
[忽略任何语法错误,请 - 它只是为了类似Java的伪代码]
我已经为EggLayer使用添加了左值,以表明有时返回类型很重要
使用本机SQL我使用如下语句获取数据库时间:
SELECT CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)
使用JPQL我得到相同的结果:
SELECT CURRENT_TIMESTAMP
FROM Customer c
WHERE c.id=1
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱最后两行?
谢谢,
String product = Integer.toString(w);
char[] original = String.toCharArray(product);
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码.错误说我不能在String上使用toCharArray,但我查看了文档,这是一个列出的方法,所以我有点卡住了.
我根本无法让Visual Studio 2005找到System.Configuration.ConfigurationManager类.这是代码:
using System.Configuration;
...
x = ConfigurationSettings.AppSettings["MySetting"]
// The name 'ConfigurationManager' does not exist in the current context
x = System.Configuration.ConfigurationManager.AppSettings["MySetting"]
// The type or namespace name 'ConfigurationManager' does not exist in the
// namespace 'System.Configuration' (are you missing an assembly reference?)
Run Code Online (Sandbox Code Playgroud)
我绝对,积极做有一个参考System.Configuration项目,它肯定是在正确的项目.DLL版本为2.0.0.0,运行时版本为2.0.50727 - 与其他版本完全相同.我试过删除引用并重新添加它.奇怪的是,当它显示在项目的References'文件夹'中时,它显示为'System.configuration' - 带有小写'c'.
Visual Studio可以找到System.Configuration.ConfigurationSettings类,除了它已过时的警告之外没有任何问题.该项目是一个Web项目,代码位于WebControl的代码隐藏中.
有什么想法在这里发生了什么?
目前,我只是将单词插入到字典(ArrayList<String>)中,然后对字典进行排序,如下所示:
dictionary.add(newWord);
Collections.sort(dictionary, new Comparator<String>(){
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
});
Run Code Online (Sandbox Code Playgroud)
我试图确定这种方式是否真的是最好的.当然,另一种方法是在字典中找到正确的点,然后在那里插入单词.问题是,我无法想出一种有效/可靠的方法来在字典中找到这一点.我脑子里浮现出一些想法,但把纸笔放在纸上真是太棘手了.
如果您对如何操作有所了解,请不要发布任何大量的代码答案.这是作业的一部分,所以你可以告诉我你是怎么做的,而不是张贴代码吗?(也许是伪代码?)
谢谢.
我知道目录只是unix中的一个文件,其中包含inode编号和文件名.我该如何看待这个?我不能在目录上使用cat或更少,并在vi中打开它只显示文件列表...没有inode编号.
java ×4
.net ×3
c ×1
c# ×1
const ×1
containers ×1
dictionary ×1
dir ×1
hibernate ×1
inode ×1
interface ×1
jpa ×1
jpql ×1
oop ×1
orm ×1
ruby ×1
sortedlist ×1
terminology ×1
typechecking ×1
unix ×1
vb.net ×1