目前的项目,突破了这个问题:
客户端存储库:
public class ClientRepository
{
// Members
private masterDataContext _db;
// Constructor
public ClientRepository()
{
_db = new masterDataContext();
}
public IEnumerable<ClientName> GetCorporateClientNames()
{
return _db.corporate_client_tbs.Select(o => new ClientName { id = o.id, name = o.company_name }).AsEnumerable();
}
public IEnumerable<ClientName> GetRetailClientNames()
{
return _db.retail_client_tbs.Select(o => new ClientName { id = o.id, name = o.name }).AsEnumerable();
}
// Define return type
public class ClientName
{
public int id { get; set; }
public string name { get; set; }
} …Run Code Online (Sandbox Code Playgroud) 出于性能原因,雅虎建议在HTML页面底部加载脚本.我使用符合规则的HTML5 Boilerplate.
这种方法的问题是jQuery也在底部加载.如果由于某种原因我需要编写包含jQuery代码的内联javascript,我不能,因为$在命名空间中还没有.
例如,使用galleria.js(jQuery图库引擎),这需要此标记:
<div id="gallery">
<img src="/media/img1.png" />
<img src="/media/img2.png" />
</div>
<script>
$('#gallery').css('height', '200px'); // this is required for galleria to work
Galleria.run('#gallery');
</script>
Run Code Online (Sandbox Code Playgroud)
设置高度的代码#gallery不起作用,因为稍后加载jQuery.Firebug控制台给出:
ReferenceError: $ is not defined
Run Code Online (Sandbox Code Playgroud)
是否可以在命名空间中找到符号,<script>直到$符号被执行为止?
在下面的代码中,我理解第二个初始化打印一个"外部"和三个"内部".但是为什么第一个根本不打印,我希望它打印一个"外面".
DeferExecution a = new DeferExecution(); // prints nothing
DeferExecution b = new DeferExecution(null); // print one "outside" and three "inside".
class DeferExecution
{
public IEnumerable<string> Input;
public DeferExecution()
{
Input = GetIEnumerable();
}
public DeferExecution(string intput)
{
Input = GetIEnumerable().ToArray();
}
public IEnumerable<string> GetIEnumerable()
{
Console.WriteLine("outside");
var strings = new string[] {"a", "b", "c"};
foreach (var s in strings)
{
Console.WriteLine("inside");
yield return s;
}
}
}
Run Code Online (Sandbox Code Playgroud) 如果你有一个既有.then和.always回调的函数,哪一个会先被执行?
可以放入defer子功能吗?
即,对于线12的FUNC〜16 test1()中
https://play.golang.org/p/evabhcjvNs(下面封闭)
是否有可能将它们置于子功能中?就像我尝试过的那样test2()(但这种行为不同于test1()).
我要问的原因是,对于func的第12~16行test1(),我的实际代码是从持久数据中恢复变量,然后defer在test1()完成时使用它来保存它.但是,有些情况下整个恢复/保存不是必需的,所以我正在考虑一种更好的方法来控制它.
谢谢
package main
import "log"
func main() {
test1()
log.Printf("==== \n")
test2()
}
func test1() {
r, err := Open("a")
if err != nil {
log.Fatalf("error opening 'a'\n")
}
defer r.Close()
r.Use()
}
func test2() {
r := subc()
r.Use()
}
func subc() *Resource {
r, err := Open("a")
if err != nil {
log.Fatalf("error opening 'a'\n")
}
defer r.Close() …Run Code Online (Sandbox Code Playgroud) 我想了解这段代码之间的区别:
(function() {
Run Code Online (Sandbox Code Playgroud)
而这段代码:
$(function() {
Run Code Online (Sandbox Code Playgroud)
第一个示例是否在文档就绪后运行代码,第二个示例是什么?或者仅仅是功能的范围,仅此而已?
我随机排序了一个IEnumerable.我继续打印出相同的元素,并获得不同的结果.
string[] collection = {"Zero", "One", "Two", "Three", "Four"};
var random = new Random();
var enumerableCollection = collection.OrderBy(e => random.NextDouble());
Console.WriteLine(enumerableCollection.ElementAt(0));
Console.WriteLine(enumerableCollection.ElementAt(0));
Console.WriteLine(enumerableCollection.ElementAt(0));
Console.WriteLine(enumerableCollection.ElementAt(0));
Console.WriteLine(enumerableCollection.ElementAt(0));
Run Code Online (Sandbox Code Playgroud)
每次写入都会给出不同的随机元素.为什么订单没有保留?
给出以下代码段:
public class Foo
{
public IEnumerable<string> Sequence { get; set; }
public IEnumerable<string> Bar()
{
foreach (string s in Sequence)
yield return s;
}
}
Run Code Online (Sandbox Code Playgroud)
以下代码片段在语义上是等价的,还是不同?如果不同,它们的功能如何不同?
public class Foo2
{
public IEnumerable<string> Sequence { get; set; }
public IEnumerable<string> Bar2()
{
return Sequence;
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题的灵感来自于这个问题,它提出了一个类似情况的不同问题.
c# ×4
javascript ×3
jquery ×3
linq ×3
ienumerable ×2
asp.net-mvc ×1
deferred ×1
go ×1
iterator ×1
linq-to-sql ×1
namespaces ×1
yield-return ×1