我对C#很陌生,我正在尝试做一些事情,但没有取得多大成功.我正在尝试使用该类Point(带坐标的那个).
这是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace app2{
class Program{
static void Main(string[] args){
Point p1 = new Point();
p1.X = 7;
p1.Y = 6;
Console.WriteLine(p1.X);
Console.WriteLine(p1.Y);
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
错误是:
找不到类型或命名空间Point
我一直在Java中以非常类似的方式使用这个类,我应该声明我自己的Point类/函数返回X和Y坐标吗?
这里有一点混乱.我不确定我是否正确地在整个WebApi中处理我的DbContext.我确实有一些控制器在我的数据库上执行某些操作(使用EF插入/更新),在执行这些操作后,我确实触发了一个事件.在我的EventArgs中(我有一个继承自的自定义类EventArgs)我传递了我DbContext,我在事件处理程序中使用它来记录这些操作(基本上我只记录经过身份验证的用户API请求).
在事件处理程序中,当我尝试提交我的更改(await SaveChangesAsync)时,我收到一个错误:"使用已处置的对象......等等"基本上注意到我第一次使用await我的async void(火灾和忘记)我通知调用者处置Dbcontext对象.
不使用async作品,我已经修改的唯一解决方法是通过获取EventArgs的SQLConnectionString传递DbContext来创建另一个DbContext实例.
在发布之前,我做了一个基于我的问题的小型研究, 实体框架在Web api/MVC中使用异步控制器进行处理
这就是我将参数传递给我的方法 OnRequestCompletedEvent
OnRequestCompleted(dbContext: dbContext,requestJson: JsonConvert.SerializeObject);
Run Code Online (Sandbox Code Playgroud)
这是OnRequestCompleted()声明
protected virtual void OnRequestCompleted(int typeOfQuery,PartnerFiscalNumberContext dbContext,string requestJson,string appId)
{
RequestCompleted?.Invoke(this,new MiningResultEventArgs()
{
TypeOfQuery = typeOfQuery,
DbContext = dbContext,
RequestJson = requestJson,
AppId = appId
});
}
Run Code Online (Sandbox Code Playgroud)
这就是我处理和使用我的方式 dbContext
var appId = miningResultEventArgs.AppId;
var requestJson = miningResultEventArgs.RequestJson;
var typeOfQuery = miningResultEventArgs.TypeOfQuery;
var requestType = miningResultEventArgs.DbContext.RequestType.FirstAsync(x => x.Id == typeOfQuery).Result;
var apiUserRequester = miningResultEventArgs.DbContext.ApiUsers.FirstAsync(x …Run Code Online (Sandbox Code Playgroud) 我有一个问题,一直阻碍我进一步前进,这个错误在我看来根本不符合逻辑,我从一本书中学习,代码来自那里.这是代码:
package test_area;
public class clzzz {
class SimpleCircle{
double radius;
SimpleCircle()
{
radius = 1;
}
SimpleCircle(double newRadius)
{
radius = newRadius;
}
double getArea()
{
return radius*radius*Math.PI;
}
double getPerimeter()
{
return 2*radius*Math.PI;
}
void setRadius(double newRadius)
{
radius = newRadius;
}
}
public static void main(String[] args)
{
SimpleCircle circle1 = new SimpleCircle();
}
}
Run Code Online (Sandbox Code Playgroud)
这是错误

如果我从void main中消除了静态,那么错误就会消失,但这样做我正在改变主方法的签名.....我真的很困惑,一步一步跟着书中的代码.
为什么以上帝的名义,我需要静态标签?我不需要让相应的类只有一个实例,因为我可以通过对象的名称控制它的实例,因此静态只是一个障碍?