This topic is 2331 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

Recommended Posts

Hi, I've got a simple example where I'd like to call an overloaded method of a class that has an interface to avoid duplicating code but it returns the error 'error CS0120: An object reference is required for the non-static field, method, or property'

 public interface IFoo { uint Bar(string s); uint Bar(byte[] k); } public class Foo : IFoo { uint IFoo.Bar(string s) { System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); return IFoo.Bar(encoding.GetBytes(s)); } uint IFoo.Bar(byte[] b) { return (uint)b.Length; } } 

What is the correct way to call an overloaded function which is part of an interface? The error suggests to create an object, but in doing so the compiler errors saying there's no definition for Bar.

This one has me stumped.

Share on other sites
I forgot to add, I can obviously call a none interface function from both which gets around the problem but I'm still intrigued as to what the issue is.

Share on other sites
Ok, I was so wrapped up in how to impliment overrides of interfaces I qualified the members with IFoo which is clearly wrong in this case, if only I could delete this thread to hide my shame.