Необходимо сказать C#, что объект переопределяет функцию от базового класса.
Вот статья MSDN о синтаксисе, в котором Вы нуждаетесь: http://msdn.microsoft.com/en-us/library/ebca9ah3 (По сравнению с 71) .aspx
public class SadObject: MoodyObject
{
override String getMood()
Это хорошее изложение того, как получить доступ к объектам Ruby из C: http://rubycentral.com/pickaxe/ext_ruby.html
inline do |builder|
builder.c "
static VALUE some_method(VALUE s) {
int s_len = RARRAY(s)->len;
int result = 0;
VALUE *s_arr = RARRAY(s)->ptr;
for(i = 0; i < s_len; i++) {
result += NUM2INT(s_arr[i]); // example of reference
}
return INT2NUM(result); // convert C int back into ruby Numeric
}"
end
Затем в ruby вы можете просто передать значения вроде:
object.some_method([1,2,3,4])
Надеюсь, это вам поможет.
Given the code from the above answer, here is the code that will work for Ruby 1.8.6 and 1.9.1:
inline do |builder|
builder.c "
static VALUE some_method(VALUE s) {
int s_len = RARRAY_LEN(s);
int result = 0;
int i = 0;
VALUE *s_arr = RARRAY_PTR(s);
for(i = 0; i < s_len; i++) {
result += NUM2INT(s_arr[i]); // example of reference
}
return INT2NUM(result); // convert C int back into ruby Numeric
}"
end
Hope this helps also :)