c#的新手......我得到了这个问题并得到了答案,但我很困惑应该在哪里写答案(在主要或在班级本身)
问题: 给出以下类的实例圈:
public sealed class Circle
{
private double radius;
public double Calculate(Func<double, double> op) {
return op(radius);
}
}
编写代码来计算圆的周长,而不修改Circle类本身。
答案是:
circle.Calculate(r => 2 * Math.PI * r);
在这种情况下=>
究竟是什么意思
答案 0 :(得分:1)
与编写匿名代表
相同header
答案 1 :(得分:0)
所以,首先要做的事情。我不知道你是否熟悉Java或任何其他“常见”编程语言,但如果你想执行这段代码,你必须有一个主方法。您可以在 Circle 类中执行此操作,也可以创建 Main 类。
如果你选择创建另一个类,那就是这样的:
package com.Prasad.formdetails;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
//database version
private static final int Database_Version =1;
//database name
private static final String Database_Name = "persondetails";
//table name
private static final String Table_Name="persondetails";
//table column names
private static final String key_personName="Name";
private static final String key_mailId="mailID";
private static final String key_phone="Phone";
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String CREATE_DETAILS_TABLLE="CREATE TABLE" +
Table_Name + "(" + key_personName + "text" + key_mailId + "text primary key" + key_phone + "text" + ")";
db.execSQL(CREATE_DETAILS_TABLLE);
}
//constructor as no default constructor in super
public DatabaseHandler(Context context){
super(context,Database_Name, null, Database_Version);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
//delete the existing table while updating
db.execSQL("drop table if exists" + Table_Name);
//again create table
onCreate(db);
}
void addPerson(Person person) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(key_personName, person.getName()); // Person Name
values.put(key_mailId, person.getId()); // Person mail id
values.put(key_phone, person.getPhone()); // Person Phone
// Inserting Row
db.insert(Table_Name, null, values);
db.close(); // Closing database connection
}
Person getPerson(String id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor=db.query(Table_Name,new String[] {key_personName,key_mailId,key_phone}, key_mailId + "=?",
new String[]{id},null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Person person = new Person(cursor.getString(0),
cursor.getString(1), cursor.getString(2));
// return contact
return person;
}
}
此外,阅读 Lambda表达式:http://www.codeproject.com/Tips/298963/Understand-Lambda-Expressions-in-minutes非常重要(这个=&gt;你要问的是获取lambda表达式的参数并将其应用到一个函数。所以,在你的情况下,无论 r 的值是什么,该函数都将返回PI的两倍,即你提供的 r 的值。
希望它有所帮助!