我想在window.location.href
链接更改时触发一些Javascript函数.可能吗?
像这样的东西:
$(window.location.href).on('change', function(){
doSomething();
});
Run Code Online (Sandbox Code Playgroud) 假设我们有几个库.核心库和普通库有什么区别.如何认识和组织两者的责任.
+Common
-Class1
+Core
-Class2
+Lib1 has : Common
+Lib2 has : Core, Common
Run Code Online (Sandbox Code Playgroud)
共同应该是普遍的(所有的库都使用它)?或者只对那些需要它的人来说是常见的?
重构/创建项目时的好习惯是什么?
我并没有真正感受到Core和Common之间的差异.
Hy,我的片段中有列表视图.我用我的其他片段替换这个listview片段但是当我想要回到我的列表时,它是空的.我以为我可以恢复我的列表项目,但我不知道如何.我假设与Fragment生命周期一致,我的适配器将是可重用的,但看起来并非如此.这是我的代码:
public class ThreadListFragment extends Fragment implements FragmentConnectionStatus, ListFragment, OnClickListener, OnItemClickListener{
private ListView ListView;
private PilotController Activity;
private Button ButtonStartNewThread;
private boolean Paused;
private ThreadInfoAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
/**
* Inflate the layout for this fragment
*/
super.onCreateView(inflater, container, savedInstanceState);
View view = inflater.inflate(R.layout.threads_list_fragment, container, false);
System.out.println(this.Paused);
if(this.Paused == false){
this.ListView = (ListView) view.findViewById(R.id.listViewActiveThreads);
ArrayList<Guid> strs = new ArrayList<Guid>();
adapter = new ThreadInfoAdapter(view.getContext(), strs, this);
}
this.ListView.setAdapter(adapter);
this.ListView.setItemsCanFocus(true);
this.ListView.setOnItemClickListener(this);
this.Activity = (PilotController) …
Run Code Online (Sandbox Code Playgroud) 我想问你一些双线性插值/缩放细节.我们假设我们有这个矩阵:
|100 | 50 |
|70 | 20 |
Run Code Online (Sandbox Code Playgroud)
这是一个2 x 2灰度图像.现在,我想将它缩放两倍,我的矩阵看起来像这样:
| 100 | f1 | 50 | f2 |
| f3 | f4 | f5 | f6 |
| 70 | f7 | 20 | f8 |
Run Code Online (Sandbox Code Playgroud)
所以如果我们想计算f4
,计算定义为
f1 = 100 + 0.5(50 - 100) = 75
f7 = 70 + 0.5(20 - 70) = 45
Run Code Online (Sandbox Code Playgroud)
现在终于:
f4 = 75 + 0.5(45 - 75) = 60
Run Code Online (Sandbox Code Playgroud)
但是,我无法真正理解f3或f1适合的计算
我们是否分别在每个方向进行双线性缩放?因此,这意味着:
f3 = 100 + …
Run Code Online (Sandbox Code Playgroud) interpolation image image-processing linear-interpolation image-scaling
教程有时会指向自己的异步方法的实现,例如以下代码:
async public static Task GetHttpResponseAsync()
{
using (HttpClient httpClient = new HttpClient())
{
HttpResponseMessage response = await httpClient.GetAsync(...);
Console.WriteLine(response.Something);
}
}
Run Code Online (Sandbox Code Playgroud)
我很清楚异步一般是如何工作的,但没有一个教程解释内部是如何实现的
httpClient.GetAsync(...);
Run Code Online (Sandbox Code Playgroud)
这对于详细了解异步代码的工作原理非常重要。让我好奇的是 GetAsync 的内部操作(那些方法或其他异步方法)是否在执行此代码的某种容器中注册?操作系统是否必须支持异步方法(fe 它使用 windows api)?如果我想实现我自己的异步文件下载器(从磁盘并且没有来自 .NET 框架的重要部分),我将如何实现它,我应该在某处注册我的方法以供进一步调用吗?
对我来说很清楚,在内部,编译器制作状态机,在 DoSomething() 方法完成它必须做的事情之后,它只是再次调用这个状态机以在等待后继续执行代码。
另外我不清楚的是异步代码如何在同一线程上运行。我认为维护状态机必须在同一个线程上,但是 httpClient.GetAsync() 中的代码如何可以在同一个线程上运行并且不中断其他操作(fe gui)。必须有一些东西使此代码在单独的线程上运行(在所有情况下)。我错了吗?我错过了什么?
我的问题的附加解释:在 JavaScript 中,据我所知和理解,异步方法的工作原理是将它们注册到某种容器中(在单独的线程上一个一个地运行它们),该容器执行此方法。方法执行完成后,结果返回到用户上下文,我很清楚,这里的工作方式是否相同?
我正在尝试通过执行以下操作来记录传递给控制器的模型:
_log
.ForContext("Id", "XXXXXX-XXXX-XXXX-XXXXXXXXX")
.ForContext("Email", email)
.ForContext("UserId", userId)
.ForContext("Parameters", parameters)
.ForContext("Errors", errors.ToArray())
.ForContext("ActionArguments", actionArguments)
.Information(message);
Run Code Online (Sandbox Code Playgroud)
其中actionArguments
是 类型IDictionary<string, object> actionArguments
。这被解释为
{
someProperty: "Some.Namespace.Dtos.Something.MyTypeDto"
}
Run Code Online (Sandbox Code Playgroud)
我真的希望someProperty
扩展到复杂类型所代表的内容。是否可以?怎么做?
我正在学习C#IL简单的例子而且无法理解.我有一个非常简单的程序:
void Main()
{
C c = new C(1);
}
class C
{
public C(){}
public C(int i){}
}
Run Code Online (Sandbox Code Playgroud)
有CIL:
IL_0001: ldc.i4.1
IL_0002: newobj UserQuery+C..ctor
IL_0007: stloc.0 // c
C..ctor:
IL_0000: ldarg.0
IL_0001: call System.Object..ctor
IL_0006: nop
IL_0007: nop
IL_0008: nop
IL_0009: ret
C..ctor:
IL_0000: ldarg.0
IL_0001: call System.Object..ctor
IL_0006: nop
IL_0007: nop
IL_0008: nop
IL_0009: ret
Run Code Online (Sandbox Code Playgroud)
我不明白,虚拟机将如何区分应该调用哪一个构造函数.有两个相同的标签,唯一的区别似乎是推动主要论证.调用构造函数时有更深层次的东西吗?也许编译器提供一些元数据来区分应该调用哪一个?
所以我们假设这个:
void Main()
{
C c = new C(1);
}
class C
{
public C(){}
public C(int i){ i += 1;}
} …
Run Code Online (Sandbox Code Playgroud) 我需要将所有属性映射到 Func。我该怎么做呢?
我有课
class A
{
public int SomeIntValue { get; }
public string SomeStringValue { get; }
public Dictionary<...> SomeDictionary { get; }
}
Run Code Online (Sandbox Code Playgroud)
和字典Dictionary<string, Func<A, object>>
。我正在尝试为 getter 方法创建委托,但我无法真正弄清楚如何做到这一点。
这样一来,它就行不通了,而且这是有道理的。我需要间接地做到这一点,但是怎么做呢?
(Func<TType, object>) Delegate.CreateDelegate(typeof(Func<TType, object>), null, property.GetGetMethod())
Run Code Online (Sandbox Code Playgroud) 这是我的应用程序文件夹的样子:
Application:
+ App.exe
+ App.exe.config
Application/Plugins:
+ Plugin1 (folder)
Application/Plugins/Plugin1:
+ Plugin1.dll
+ SomeDll.dll
Run Code Online (Sandbox Code Playgroud)
所以主应用程序 App.exe 寻找插件文件夹并将 {PluginName}.dll 加载到内存中以运行它。该插件通常使用它自己的必须加载的依赖程序集(如 SomeDll.dll)。看起来它有时会制造严重的麻烦。我收到异常,例如无法找到依赖程序集的依赖程序集,我不知道为什么。
例如,我的插件必须加载大量额外的 dll,因为插件运行 OwinSelfHost 服务。
所以它必须加载例如:
System.Web.Http.Owin
Owin
Microsoft.Owin
Microsoft.Owin.Host.HttpListener
Microsoft.Owin.Hosting
Run Code Online (Sandbox Code Playgroud)
当加载Microsoft.Owin.Hosting然后抛出无法加载Microsoft.Owin 的异常
异常看起来像:
Could not load file or assembly 'Microsoft.Owin, Version=2.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of it's dependencies. File not found.
Run Code Online (Sandbox Code Playgroud)